python3+selenium实现qq邮箱登陆并发送邮件功能

yipeiwu_com6年前Python基础

本文实例为大家分享了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中的Socket 与 ScoketServer 通信及遇到问题解决方法

Socket有一个缓冲区,缓冲区是一个流,先进先出,发送和取出的可自定义大小的,如果取出的数据未取完缓冲区,则可能存在数据怠慢。其中【recv(1024)】表示从缓冲区里取最大为1024...

在Python中使用成员运算符的示例

在Python中使用成员运算符的示例

下表列出了所有Python语言支持的成员运算符。  例如: 试试下面的例子就明白了所有的Python编程语言提供会员运算符: #!/usr/bin/python a...

django-filter和普通查询的例子

pythong在使用中,尤其是django的查询过程中插件还是不少的,最近发现了一个插件django-filter ,还挺好用的 1.最原始直接根据条件查询 def search(r...

Flask之flask-script模块使用

Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用...

使用Python脚本生成随机IP的简单方法

需求 在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出。 实现 经过艰苦卓绝的调试,下面的代码是可以用的: RAND...