本人目前在实习测试工程师,23 年毕业应届生,前段时间自己写公司巡检网站的脚本,于是拿起了 selenium,但是发送腾讯邮箱时,如何也定位不到(抄送人、收件人等)元素,造成了不小的麻烦,把我的经验放在这里,希望能帮助到大家,代码如下:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_helper import * # 这个是一个第三方库,它会自动安装selenium和对应浏览器驱动,很是方便
# 安装的命令是:pip install webdriver- helper==1.*
import csv
import time
# 腾讯邮箱
# 登录
url = 'https://exmail.qq.com/login'
dr.get(url)
dr.implicitly_wait(10)
dr.find_element(By.XPATH,'//a[text()="帐号密码登录"]').click()
dr.find_element(By.XPATH,'//*[@id="inputuin"]').send_keys('你的账号')
dr.find_element(By.XPATH,'//*[@id="pp"]').send_keys('你的密码')
dr.find_element(By.XPATH,'//*[@id="btlogin"]').click()
# 填写收件信息
dr.find_element(By.XPATH,'//a[text()="写信"]').click() # 点击写信按钮,
dr.switch_to.frame('mainFrame') # 就是这个frame表单,原来主题、收件人等元素都在这个表单下,所以定位不到,需要先进入框架
dr.find_element(By.XPATH,'//input[@id="subject"]').send_keys('你的主题') # 主题
dr.find_element(By.XPATH, '//*[@id="toAreaCtrl"]/div[2]/input').send_keys('收件人的邮箱') # 收件人
dr.find_element(By.XPATH,'//*[@id="AttachFrame"]/span/input').send_keys('D:/Email.csv') # 上传文件,这是我在D盘的CSV文件
time.sleep(2) # 上传文件暂停
dr.find_element(By.XPATH,'//*[@id="toolbar_bottom"]/div/div/input').click()
time.sleep(2) # 发送文件暂停