#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元素