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三元运算符实现方法
Dec 17 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 Python
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
Python实现插入排序和选择排序的方法
May 12 Python
python-jwt用户认证食用教学的实现方法
Jan 19 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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中extract()函数的定义和用法
2012/08/17 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
Js基础学习资料
2010/11/23 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
node.js的事件机制
2017/02/08 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python模拟enum枚举类型的方法小结
2015/04/30 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
django允许外部访问的实例讲解
2018/05/14 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
高级护理专业大学生求职信
2013/10/24 职场文书
电气个人求职信范文
2014/02/04 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
迟到检讨书范文
2015/01/27 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
基于redis+lua进行限流的方法
2022/07/23 Redis