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 判断一个进程是否存在
Apr 09 Python
python基础教程之获取本机ip数据包示例
Feb 10 Python
python图片验证码生成代码
Jul 02 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 Python
python抓取网站的图片并下载到本地的方法
May 22 Python
python使用matplotlib画饼状图
Sep 25 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python 字符串的驻留机制及优缺点
Jun 19 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通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
ES7之Async/await的使用详解
2019/03/28 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Python中作用域的深入讲解
2018/12/10 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
python代码如何注释
2020/06/01 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
接口可以包含哪些成员
2012/09/30 面试题
2014年教研活动总结范文
2014/04/26 职场文书
退税申请报告怎么写
2015/05/18 职场文书
小学远程教育工作总结
2015/08/13 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技