邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传。还是以腾讯企业邮箱为例,进行实际案例操作。
文件上传的实现大体分为两种,一种是input标签,一种非input标签。腾讯企业邮箱里的附件上传都是input标签,如下图所示:
编写邮件,首先登陆邮箱,进入写信页面,按照一般习惯我们会先写收件人、主题、添加附件和正文。
对于input标签类型的文件上传,操作简单粗暴,使用send_keys()直接把需要上传的文件路径正确的写进去即可。上传成功如下图所示:
代码参考:
# -*- coding: UTF-8 -*-
from selenium import webdriver
import time
def login(driver, user, pwd):
# 打开腾讯企业邮箱
driver.get("https://exmail.qq.com/login")
# 点击 账号密码登陆
driver.find_element_by_class_name("js_show_pwd_panel").click()
# 输入 账户
driver.find_element_by_id("inputuin").send_keys(user)
# 输入 密码
driver.find_element_by_id("pp").send_keys(pwd)
# 点击 登录
driver.find_element_by_id('btlogin').click()
#点击 写信
driver.find_element_by_id("composebtn").click()
#进入 iframe
driver.switch_to.frame("mainFrame")
#定位 收件人
time.sleep(3)
driver.find_element_by_css_selector("#toAreaCtrl .addr_text [type='input']").send_keys("[email protected]")
#定位 主题
driver.find_element_by_id("subject").click()
driver.find_element_by_id("subject").send_keys("这是一个测试主题")
#driver.find_element_by_id("subject").send_keys(Keys.TAB)
#添加 附件 input标签属性的操作方法
driver.find_element_by_xpath("//span[@id='AttachFrame']//input[@name='UploadFile']").send_keys("D:\接口测试.jpg")
#退出 iframe
driver.switch_to.default_content()
def logout(driver):
# 登录成功 等待页面加载
time.sleep(4)
# 退出登录
driver.find_element_by_partial_link_text("退出").click()
# 用于关闭浏览器,一般测试结束时需要使用
driver.quit()
if __name__ == "__main__":
driver = webdriver.Firefox()
driver.implicitly_wait(20)
user = input("请输入您的邮箱账户:")
pwd = input("请输入您的邮箱密码:")
# 调用login函数
login(driver, user, pwd)
# 调用 logout函数
#logout(driver)