python自动化测试(八):QQ邮箱-发送邮件-练习

前置条件:

本地部署:ECShop的版本是3.0.0、Google版本是

Google Chrome 65.0.3325.162 (正式版本) (32 位) 

py的selenium版本是3.11.0

目录

一、前置代码

二、操作

2.1 登录(快捷登录-点击头像登录)

2.2 写信按钮,进入写信页面

2.3 输入收件人、主题

2.4 输入正文

2.5 返回父级-发送

2.6 检查是否已发送


一、前置代码

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Chrome()
url = "https://mail.qq.com"
driver.get(url)
# 最大化浏览器窗口
driver.maximize_window()
# 添加全局的等待时间

打开QQ邮箱页面

二、操作

2.1 登录(快捷登录-点击头像登录)

# 切换到子页面
ele = driver.find_element_by_xpath(
    "//*[@id=\"QQMailSdkTool_login_loginBox_qq\"]/iframe")
driver.switch_to.frame(ele)
driver.switch_to.frame("ptlogin_iframe")
# 点击头像图标
driver.find_element_by_id("img_out_13195717xx").click()
time.sleep(5)

(这里: driver.find_element_by_id("img_out_13195717xx").click())img_out_快捷登录头像的QQ号

python自动化测试(八):QQ邮箱-发送邮件-练习_第1张图片

(这里切到子页面后,还有一个子页面,所以切两次)

python自动化测试(八):QQ邮箱-发送邮件-练习_第2张图片

(运行,登录成功)

2.2 写信按钮,进入写信页面

# 2、点击写信按钮,进入子页面
driver.find_element_by_id("composebtn").click()
# # 切换子页面
driver.switch_to_frame("mainFrame")
time.sleep(5)

python自动化测试(八):QQ邮箱-发送邮件-练习_第3张图片

(这里需要停5秒,前面2.1也需要停5s,因为有一个抽象的弹窗,会找不到元素按钮)

python自动化测试(八):QQ邮箱-发送邮件-练习_第4张图片

设置时停5s左右它就会自动关闭了

2.3 输入收件人、主题

# 3、输入收件人、主题
ele = driver.find_element_by_id("toAreaCtrl")
action = ActionChains(driver)
action.click(ele).send_keys("[email protected]")
action.perform()
# 输入主题
driver.find_element_by_id("subject").send_keys("自动化测试-QQ邮箱发送练习")

python自动化测试(八):QQ邮箱-发送邮件-练习_第5张图片

2.4 输入正文

# 4、输入正文内容,需要进入到正文子页面
ele = driver.find_element_by_class_name("qmEditorIfrmEditArea")
driver.switch_to.frame(ele)
# 输入正文内容
driver.find_element_by_css_selector("[accesskey=q]").send_keys("报告文档")

python自动化测试(八):QQ邮箱-发送邮件-练习_第6张图片

2.5 返回父级-发送

# # 返回父级页面
driver.switch_to.parent_frame()
# 点击发送按钮
driver.find_element_by_name("sendbtn").click()
time.sleep(5)

python自动化测试(八):QQ邮箱-发送邮件-练习_第7张图片

2.6 检查是否已发送

# 检查页面是否有“已发送”字样
try:
    driver.find_element_by_id("sendinfomsg") #将不确定是否能找到的元素放到try语句里面
except:   #没有找到元素会执行的语句
    print("自动化操作用例失败")
else:     #找到了元素会执行的语句
    print("自动化用例操作成功")
finally:  不管成功还时失败都会执行的语句
    time.sleep(10)
    driver.quit()

你可能感兴趣的:(23年软测实训,python,开发语言)