想要系统学习python selenium自动化测试,请关注我的专栏: https://blog.csdn.net/column/details/29112.html
注明:转载请注明https://blog.csdn.net/huang1600301017/article/details/83858106
功能:利用selenium自动快捷登录邮箱,自动添加收件人等内容及附件,自动发送邮件
代码:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://mail.qq.com/')
driver.switch_to.frame(0) #含有frame,需要加这条语句
driver.find_element_by_id('switcher_plogin').click() #点击账号密码启动
time.sleep(0.5)
driver.find_element_by_class_name('inputstyle').send_keys('QQ号码')
#driver.find_element_by_class_name('inputstyle password').send_keys('shdsifkjds55') 为错误定位法
driver.find_element_by_css_selector('.inputstyle.password').send_keys('QQ密码')
#driver.find_element_by_css_selector("[class='inputstyle password']").send_keys('shdsifkjds55') #输入密码
driver.find_element_by_id('login_button').click() #点击登录
time.sleep(2) #设置等待时间,不然定位不到
driver.find_element_by_id('composebtn').click() #点击写信
#driver.switch_to.frame('mainFrame')
driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="mainFrame"]')) #切换到frame,两个都可以
#driver.find_element_by_id('toAreaCtrl').send_keys('收件人邮箱') #填写收件人,这种方法不行
#address = driver.find_element_by_id('toAreaCtrl')
address = driver.find_element_by_css_selector('.noime.div_txt') #定位发件人的输入框,两个都可以
time.sleep(1)
ActionChains(driver).move_to_element(address).send_keys('收件人邮箱').send_keys(Keys.RETURN).perform() #填写收件人,不加click()
driver.find_element_by_id('subject').send_keys('你好,我是来自火星的咯里吧嗦,阿里稀巴') #填写主题
time.sleep(2)
driver.find_element_by_name('UploadFile').send_keys('C:\\Desktop/text.txt') #上传附件,注意修改附件地址
time.sleep(1)
#添加正文
#driver.find_element_by_xpath('/html/body').send_keys('这只是个测试,不要太高兴哦') #此方法不管用
text = driver.find_element_by_xpath('/html/body')
ActionChains(driver).move_to_element(text).click().send_keys('这只是个测试,不要太高兴哦').send_keys(Keys.RETURN).perform() #需要添加click()
#注意,有时不加click(),有时加,具体情况具体操作,多试试
#当文本框书不进去,有两个解决办法,
# 1.是否有frame,
# 2选用下面的形式添加
# text = driver.find_element_by_xpath('/html/body')
# ActionChains(driver).move_to_element(text).click().send_keys('这只是个测试,不要太高兴哦').send_keys(Keys.RETURN).perform()
driver.find_element_by_name('sendbtn').click() #发送邮件
#为什么此例没有切换到主文档呢?我也不是很清楚,可能这些操作都是在一个frame里面的,如果哪位兄弟知道,请留言