Selenium+python3实现登录网易邮箱发送邮件

#coding=utf-8
from selenium import webdriver
import time

#chromedriver.exe驱动存放地址
path = 'D:/Language/Python/Python38/chromedriver.exe'
driver = webdriver.Chrome(path)
#隐式等待,所有元素最长等待10s
driver.implicitly_wait(10)
try:
    #窗口最大化
    driver.maximize_window()
    #网易邮箱地址
    driver.get('https://mail.163.com/')
    #点击账号密码登录
    driver.find_element_by_id('lbNormal').click()
    #进入框架,此处涉及selenium动态元素的获取
    driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
    #输入邮箱
    driver.find_element_by_name('email').send_keys("邮箱名")
    #输入密码
    driver.find_element_by_name('password').send_keys("用户密码")
    #点击登录
    driver.find_element_by_id('dologin').click()
    #退出框架
    driver.switch_to.default_content()
    #点击写信
    driver.find_element_by_xpath('/html/body/div[1]/nav/div[1]/ul/li[2]/span[2]').click()
    #输入收件人邮箱
    driver.find_element_by_xpath('//input[@class="nui-editableAddr-ipt"]').send_keys("收件人邮箱")
    #输入主题
    driver.find_element_by_xpath("//*[contains(@id, 'subjectInput')]").send_keys("主题")
    #选择附件进行发送
    driver.find_element_by_xpath("//*[@class = 'by0 ej1']/input[1]").send_keys("附件在PC本地的地址")
    #进入APP-editor-iframe框架
    driver.switch_to.frame(driver.find_element_by_class_name("APP-editor-iframe"))
    #输入写信内容
    driver.find_element_by_xpath("/html/body").send_keys("内容")
    #退出框架
    driver.switch_to.default_content()
    #前面有附件上传,为避免上传文件页面缓存导致用例失败,等待两秒
    time.sleep(2)
    driver.find_element_by_xpath('//*[@class="jp0"]/div[1]').click()

finally:
    a = "n"
    while a == "n":
        a = input("是否关闭浏览器驱动?y/n
")
        if a == "n":
            pass
        else:
            time.sleep(3)
            driver.quit()

感谢:
1、selenium定位动态id元素

原文地址:https://www.cnblogs.com/loveniko/p/12855454.html