邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收和编写,本篇介绍邮件的附件上传。还是以腾讯企业邮箱为例,进行实际案例操作。
文件上传的实现大体分为两种,一种是input标签,一种非input标签。腾讯企业邮箱里的附件上传都是input标签,如下图所示:
编写邮件,首先登陆邮箱,进入写信页面,按照一般习惯我们会先写收件人、主题、添加附件和正文。
对于input标签类型的文件上传,操作简单粗暴,使用send_keys()直接把需要上传的文件路径正确的写进去即可。上传成功如下图所示:
参考代码:
# -*- coding: UTF-8 -*-from selenium import webdriverimport timedef 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("45@qq.com") #定位 主题 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)