邮箱的主要功能就是邮件消息的收发阅读,之前的文章写了邮件的查收,本篇介绍邮件的编写及正文富文本的定位。
还是以腾讯企业邮箱为例,进行实际案例操作。
编写邮件
登陆邮箱后,点击左侧控制台中的“写信”,进入邮件编辑窗口,需要输入收件人、主题和正文,有时候还需要选取附件、添加图片等操作。
富文本定位
邮件编辑窗口在一个iframe,需要先进入iframe才可以定位收件人、主题和正文等元素。
正文通常为富文本,使用查看器在下图中可以看到正文是在一个iframe里,就需要首先是进入iframe,然后进行定位正文元素。
由于iframe的id不是固定的,所以进入时,不能再使用id,这里使用class。企业邮箱的正文编辑框属于div式的editor框,写入文本比较简单粗暴,直接写入即可。
全部源码如下:
# -*- coding: UTF-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
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("123456@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)
#定位 正文 进入 iframe
zw_fram= driver.find_element_by_class_name("QMEditorIfrmEditArea")
driver.switch_to.frame(zw_fram)
#定位 正文
driver.find_element_by_tag_name("body").send_keys("测试微服务!")
#退出 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)