python3+selenium实现qq邮箱登陆并发送邮件功能


Posted in Python onJanuary 23, 2019

本文实例为大家分享了python3实现qq邮箱登陆并发送邮件功能的具体代码,供大家参考,具体内容如下

基于selenium,使用chrome浏览器,完成qq邮箱登陆并发送发邮件功能,暂时未封装。qq邮箱和126邮箱登陆还是有一些区别的。

#encoding=utf-8
from selenium import webdriver
import time
 
#启动chrome浏览器
driver = webdriver.Chrome()
#进入qq邮箱登陆首页
driver.get("https://mail.qq.com/")
time.sleep(1)
 
#窗口最大化
driver.maximize_window()
#切换到登陆frame(!!!!!!!!必须先切换!!!!!!!!)
driver.switch_to.frame('login_frame')
driver.find_element_by_xpath("//*[@id='switcher_plogin']").click()
time.sleep(3)
#########登陆
#输入用户名
username = driver.find_element_by_xpath("//*[@id='u']")
username.clear()
#将xxxxxxxxxx换成qq邮箱账户
username.send_keys('xxxxxxxxxx')
#输入密码:将1111111111替换为自己的邮箱密码
driver.find_element_by_id('p').send_keys('1111111111')
#点击登陆
driver.find_element_by_id('login_button').click()
time.sleep(10)
#断言登陆成功
assert '退出' in driver.page_source
 
#########写信
#单击写信按钮
driver.find_element_by_link_text("写信").click()
time.sleep(2)
#切换到mainFrame
driver.switch_to.frame('mainFrame')
time.sleep(2)
#输入收件人
driver.find_element_by_xpath("//*[@id='toAreaCtrl']/div[2]/input").send_keys('123456789@qq.com')
#输入主题
driver.find_element_by_id('subject').send_keys('test')
#输入正文
o=driver.find_elements_by_class_name("qmEditorIfrmEditArea")
o[0].click() #!!!!!!!must click!!!!!!!
o[0].send_keys("abc")
 
#点击发送按钮
driver.find_element_by_xpath("//*[@id='toolbar']/div/a[1]").click()
time.sleep(3)
##driver.find_element_by_xpath('//a[@name="sendbtn" and @tabindex="9"]').click()
time.sleep(3)
#断言发送成功
assert u"再写一封" in driver.page_source
#关闭浏览器
driver.quit()

小编再为大家分享一段代码:python+selenium自动登录QQ邮箱发送邮件

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
url =("https://mail.qq.com/")
name=("874**5483")
key = ("Zly1****612X")
out_name=("65750**8@qq.com")
#
#打开浏览器
driver.get(url) 
driver.implicitly_wait(10)

#最大化窗口
driver.maximize_window()

#切换iframe
driver.switch_to.frame("login_frame")



# #定位至账号密码登录
# driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()

# #账号,密码输入
# driver.find_element_by_xpath('//*[@id="u"]').send_keys(name)
# driver.find_element_by_xpath('//*[@id="p"]').send_keys(key)

# #点击登录
# driver.find_element_by_xpath('//*[@id="login_button"]').click()

#点击头像登录
driver.find_element_by_xpath('//*[@id="img_out_874335483"]').click()
time.sleep(5)

#点击写信
driver.find_element_by_xpath('//*[@id="composebtn"]').click()
time.sleep(3)

#切换iframe至写信
driver.switch_to.frame("mainFrame")
#driver.switch_to.frame(driver.find_element_by_id('mainFrame'))
time.sleep(3)

#添加收件人
driver.find_element_by_xpath('//*[@id="toAreaCtrl"]/div[2]/input').send_keys(out_name)

#添加主题
driver.find_element_by_xpath('//*[@id="subject"]').send_keys("TestCase1")

#退出当前编辑Iframe
driver.switch_to.default_content()


#切换Iframe至编辑正文
driver.switch_to.frame("mainFrame")
#Body_frame=driver.find_element_by_xpath('//iframe[@scrolling="auto"]')
Body_frame=driver.find_element_by_class_name("qmEditorIfrmEditArea")
driver.switch_to.frame(Body_frame)

#添加正文
driver.find_element_by_xpath('/html/body').send_keys("I LOVE Python")
time.sleep(3)

#退回大Frame再点击发送
driver.switch_to.parent_frame()
driver.find_element_by_xpath('//*[@id="toolbar"]/div/a[1]').click()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
python编程羊车门问题代码示例
Oct 25 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Django接收自定义http header过程详解
Aug 23 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
Python 依赖库太多了该如何管理
Nov 08 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
Python爬虫获取页面所有URL链接过程详解
Jun 04 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 #Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 #Python
python3实现逐字输出的方法
Jan 23 #Python
对Python w和w+权限的区别详解
Jan 23 #Python
Python中文件的写入读取以及附加文字方法
Jan 23 #Python
python write无法写入文件的解决方法
Jan 23 #Python
Python 支付整合开发包的实现
Jan 23 #Python
You might like
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
javascript document.images实例
2008/05/27 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
Python猜数字算法题详解
2020/03/01 Python
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
库房主管岗位职责
2013/12/31 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
公司租房协议书
2014/10/14 职场文书
骨干教师个人总结
2015/02/11 职场文书
PHP命令行与定时任务
2021/04/01 PHP
正确的理解和使用Django信号(Signals)
2021/04/14 Python