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 相关文章推荐
Django中几种重定向方法
Apr 28 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 Python
Python搜索引擎实现原理和方法
Nov 27 Python
简述Python2与Python3的不同点
Jan 21 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
python二元表达式用法
Dec 04 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
python有几个版本
Jun 17 Python
Python读取yaml文件的详细教程
Jul 21 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 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
如何做到多笔资料的同步
2006/10/09 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
python实现的希尔排序算法实例
2015/07/01 Python
python保存数据到本地文件的方法
2018/06/23 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
乐观自信演讲稿范文
2014/05/21 职场文书
禁烟标语大全
2014/06/11 职场文书
班主任寄语2015
2015/02/26 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
《所见》教学反思
2016/02/23 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书