#encoding=utf-8

import unittest

import time

from selenium import webdriver

from selenium.webdriver import ActionChains

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.common.exceptions import TimeoutException, NoSuchElementException

import traceback

class Visit163ByFirefox(unittest.TestCase):

def setUp(self):

#启动IE浏览器

self.driver=webdriver.Firefox(executable_path='d:\\geckodriver')

#self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")

def test_HandleIFrame(self):

url = "https://mail.163.com/"

# 访问自动以测试网页

self.driver.get(url)

try:

#显示等待

wait=WebDriverWait(self.driver,15,0.2)

#切换frame

self.driver.switch_to.frame(self.driver.find_element_by_xpath("//*[@id='x-URS-iframe']"))

#self.driver.switch_to.frame("x-URS-iframe")

#显示等待获取用户名输入框元素

name=wait.until(lambda x:x.find_element_by_xpath("//*[@class='j-inputtext dlemail']"))

name.send_keys("xxxxx")

#显示等待获取密码输入框元素

passwd=wait.until(lambda x:x.find_element_by_xpath("//*[@class='j-inputtext dlpwd']"))

passwd.send_keys("xxxxx")

#登录

login=wait.until(lambda x:x.find_element_by_id("dologin"))

login.click()

#切回到默认framae

self.driver.switch_to.default_content()

#获取写信按钮元素

iwrite=wait.until(lambda x:x.find_element_by_xpath("//li[@id='_mail_component_74_74']/*[@class='oz0']"))

iwrite.click()

#获取收件人输入框元素

receiver=wait.until(lambda x:x.find_element_by_xpath("//input[@class='nui-editableAddr-ipt' and @role='combobox']"))

#receiver.click()

receiver.send_keys("367224698@qq.com")

#获取主题输入框元素

theme=wait.until(lambda x:x.find_element_by_xpath("//input[@class='nui-ipt-input' and @type='text' and @maxlength='256']"))

#theme.click()

theme.send_keys(u"这是夏晓旭的第一个自动化发邮件脚本!")

#切到写信内容部分的frame

self.driver.switch_to.frame(self.driver.find_element_by_xpath("//*[@class='APP-editor-iframe']"))

#获取写信区域的元素

editBox = wait.until(lambda x:x.find_element_by_xpath("/html/body"))

editBox.click()

editBox.send_keys(u'这是夏晓旭的第一个自动化发邮件脚本!')

#切回到默认frame

self.driver.switch_to.default_content()

#获取发送按钮元素

send=wait.until(lambda x:x.find_element_by_xpath("//*[@class='jp0']//*[@role='button']//*[.='发送']"))

send.click()

except TimeoutException, e:

# 捕获TimeoutException异常

print traceback.print_exc()

except NoSuchElementException, e:

# 捕获NoSuchElementException异常

print traceback.print_exc()

except Exception, e:

# 捕获其他异常

print traceback.print_exc()

if __name__ == '__main__':

unittest.main()

python webdriver 登陆163邮箱给QQ邮箱发送一个邮件,显示等待的更多相关文章

  1. python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式

    配置文件:UiObjectMapSendMap.ini用来存放配置信息 GetOptionSendMail.py 用来读取配信息 #encoding=utf-8from selenium.webdri ...

  2. Python+ Selenium自动化登录腾讯QQ邮箱实例

    学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...

  3. 发送邮件(单独文字)的方法(网易邮箱 OR QQ邮箱)

    # coding:utf-8import smtplibfrom email.mime.text import MIMEText # 发邮件相关的参数# 网易邮箱用这个# smtpserver=&qu ...

  4. 公司企业邮箱被qq邮箱拒绝后

    公司新弄了服务器,建了exchange server,通知全公司试用时发现给客户群发邮件会被拒绝,返回的错误信息是 550 Mail content denied 出错原因:该邮件内容涉嫌大量群发,并 ...

  5. 关于企业邮箱无法提醒解决办法(未安装邮件客户端可添加至网易邮箱大师/qq邮箱等)

    关于企业邮箱无法提醒解决办法: 一.使用现有的邮箱客户端,以下以网易的邮箱大师为例mail.exe 点击客户端左边的添加邮箱账号,在出现的对话框中输入账号和密码后,点击登陆按钮后,等待添加完成即可,邮 ...

  6. 验证你的邮箱是不是qq邮箱

    Console.WriteLine("请输入你的qq邮箱"); string yx = Console.ReadLine(); int a = yx.LastIndexOf(&qu ...

  7. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...

  8. python qq邮箱发送邮件

    使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...

  9. jeakins配置邮件通知,附带解决535报错:authentication failed,如果发现测试邮件可以发出,项目构成无法发出邮件,请开启SSL认证,端口号改为(465),qq邮箱、163邮箱通用

    535报错解决方案:调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授权码替代上面代码部分的passwd即可成功发送邮件 如果设置的邮箱 ...

随机推荐

  1. django的queryset和objects对象

    1. queryset是查询集,就是传到服务器上的url里面的内容.Django会对查询返回的结果集QerySet进行缓存,这里是为了提高查询效率. 也就是说,在你创建一个QuerySet对象的时候, ...

  2. 关于Thinkphp访问不正常的问题

    最近遇见了个蹩脚的问题,我放在服务器的项目(thinkphp框架)只能访问默认路径内容,不管你url怎么写的,他就访问默认那个文件.. 对于有强迫症的我来说实在是欺人太甚!!! 于是乎我就抓耳挠腮了. ...

  3. 【紫书】【重要】Abbott's Revenge UVA - 816 bfs 复杂模拟 带方向参数的迷宫

    题意:一个迷宫,每个交叉路口有一路标,限制了你从某方向进入该路口所能进入的路口. 题解:1.对于方向的处理:将node多增加一维dir,通过一个const 字符数组 加 上dir_id函数 以及一个方 ...

  4. hadoop第一部分-安装、测试

    一.hadoop安装(本地模式及伪分布式安装) hadoop历史版本下载网站:http://archive.apache.org/dist/运行模式:    本地模式    yarn模式 hadoop ...

  5. stress test - volume test

    D:\wamp64\bin\mysql\mysql5.7.11\bin>mysqlslap --delimiter=";" --query=" INSERT I N ...

  6. sql 对某列取值进行if判断

    select  if(area_id =350000, 1, 2)  as area_id from my_table 取地区编号为350000的设置成 1, 其他的设置成2

  7. 谷歌技术"三宝"之MapReduce(转)

    原文:http://blog.csdn.net/opennaive/article/details/7514146   目录 MapReduce是干啥的 例子统计词频 map函数和reduce函数 M ...

  8. dedecms首页调用随机文章全自动时时更新

    dedecms织梦系统是全站生成静态html的,这个对搜索引擎比较友好,但是有时我们要调用文章,让蜘蛛每次来访问都感觉像是有添加新内容一样,要如何做到呢? 可以添加以下dedecms随机文章调用的参数 ...

  9. memcached-session-manager 教程实现session共享

    1简单介绍     1.1决定用什么序列化策略.     1.2配置tomcat         1.2.1加入 memcached-session-manager jar 包到tomcat中.    ...

  10. android加载gif图片

    Android加载GIF图片的两种方式 方式一:使用第三开源框架直接在布局文件中加载gif 1.在工程的build.gradle中添加如下 buildscript { repositories { m ...