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 相关文章推荐
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
python表格存取的方法
Mar 07 Python
python实现简单的单变量线性回归方法
Nov 08 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
简单了解python反射机制的一些知识
Jul 13 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
python基础之停用词过滤详解
Apr 21 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
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
面向对象的javascript(笔记)
2009/10/06 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
python 性能提升的几种方法
2016/07/15 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
python 装饰器的基本使用
2021/01/13 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
巴西购物网站:Onofre Agora
2020/06/08 全球购物
医学院学生的自我评价分享
2013/11/19 职场文书
2014植树节活动总结
2014/03/11 职场文书
道德之星事迹材料
2014/05/03 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
监护人证明
2015/06/19 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers
Go语言编译原理之源码调试
2022/08/05 Golang