#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. ThreadLocal的实现和使用场景

    ThreadLocal 内部实现.应用场景和内存泄漏 深入理解线程局部变量:ThreadLocal <Java源码分析>:ThreadLocal /ThreadLocalMap Threa ...

  2. Root Motion的脚本处理

    一.Apply RootMotion的作用 Apply RootMotion:控制角色在场景中动画的运动.角色动画驱动角色运动,类似于在游戏中直接使用动画,提高了动画的使用效率. Root Motio ...

  3. Spark2 ML包之决策树分类Decision tree classifier详细解说

    所用数据源,请参考本人博客http://www.cnblogs.com/wwxbi/p/6063613.html 1.导入包 import org.apache.spark.sql.SparkSess ...

  4. Oracle数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述) Select table_Name As Name,Comments As Value From User_Tab_Comments Where table_Type='T ...

  5. POJ-2181 Jumping Cows(贪心)

    Jumping Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7329 Accepted: 4404 Descript ...

  6. codeforces 355C - Vasya and Robot

    因为在允许的情况下,必然是左右手交替进行,这样不会增加多余的无谓的能量. 然后根据不同的分界点,肯定会产生左手或右手重复使用的情况,这是就要加上Qr/Ql * 次数. 一开始的想法,很直接,枚举每个分 ...

  7. 2018No-java面试知识

    1.框架 1. springboot比spring的优点? 2. Springmvc的基本流程? 3. 微服务之间调用不会慢吗? 4. 大图片和大数据库怎么存储? 5. spring事物?四大特征, ...

  8. The third column indicates whether subclasses of the class declared outside this package have access to the member.;

    总结1.modifier 改性剂 修饰符 修饰语 调节器access modifier 访问修饰符 存取权限 存取修饰词 存取修饰字官网“can”Access level modifiers dete ...

  9. logback多环境配置

    现在项目基本都是要区分测试开发等等一系列环境的,也因此maven,spring之类的都具有profile这类功能,可以针对不同的环境采用不同的配置.因此日志也可能根据不同的环境需要不同的配置.恰巧手头 ...

  10. 洛谷P5021 赛道修建 NOIp2018 贪心+二分答案

    正解:贪心+LCA+二分答案 解题报告: 想先港下部分分qwq因为我部分分只拿到了10ptsQAQ(时间不够不是理由,其实还是太弱,所以要想很久,所以才时间不够QAQ m=1 找直径长度,完 一条链 ...