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 相关文章推荐
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
在Python中操作文件之seek()方法的使用教程
May 24 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
python输入中文的实例方法
Sep 14 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
基于Python实现nc批量转tif格式
Aug 14 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 表单数据的获取代码
2009/03/10 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
python字典DICT类型合并详解
2017/08/17 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python如何调用php文件中的函数详解
2020/12/29 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
《七颗钻石》教学反思
2014/02/28 职场文书
外国人聘用意向书
2014/04/01 职场文书
质量负责人任命书
2014/06/06 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
python基础入门之字典和集合
2021/06/13 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL