本人目前在实习测试工程师,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)   # 发送文件暂停


↙↙↙阅读原文可查看相关链接,并与作者交流