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编写检测数据库SA用户的方法
Jul 11 Python
Python实现文件复制删除
Apr 19 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
python pygame实现2048游戏
Nov 20 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
python已协程方式处理任务实现过程
Dec 27 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
python3 logging日志封装实例
Apr 08 Python
如何通过安装HomeBrew来安装Python3
Dec 23 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中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
2015年学校党支部工作总结
2015/04/01 职场文书
公司车队管理制度
2015/08/04 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
python异步的ASGI与Fast Api实现
2021/07/16 Python
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs