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 23 Python
Python入门篇之字符串
Oct 17 Python
Python基于DES算法加密解密实例
Jun 03 Python
浅谈用VSCode写python的正确姿势
Dec 16 Python
python爬虫增加访问量的方法
Aug 22 Python
python安装scipy的步骤解析
Sep 28 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
python实现猜单词游戏
May 22 Python
python os模块在系统管理中的应用
Jun 22 Python
python实现计算器简易版
Dec 17 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 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
php join函数应用
2011/05/04 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
JSON相关知识汇总
2015/07/03 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python实现猜拳小游戏
2020/04/05 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
找工作最新求职信
2013/12/22 职场文书
政府门卫岗位职责
2014/04/29 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL