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追加元素到列表的方法
Jul 28 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
python对html过滤处理的方法
Oct 21 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
python3实现点餐系统
Jan 24 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
python实现简单石头剪刀布游戏
Oct 24 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
JavaScript原生数组函数实例汇总
2020/10/14 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
pycharm 使用心得(三)Hello world!
2014/06/05 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Python列表list操作相关知识小结
2020/01/29 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
8种常用的Python工具
2020/08/05 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
小学班主任寄语大全
2014/04/04 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
关于清明节的演讲稿
2014/09/13 职场文书