selenium学习笔记(11)——利用selenium自动快捷登录QQ邮箱,自动添加收件人等内容及附件,自动发送邮件(附多种问题解决方案)

想要系统学习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里面的,如果哪位兄弟知道,请留言

猜你喜欢

转载自blog.csdn.net/huang1600301017/article/details/83858106
今日推荐