1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python3+Selenium3自动化测试 - 实例 - 登录QQ邮箱并自动发送邮件

Python3+Selenium3自动化测试 - 实例 - 登录QQ邮箱并自动发送邮件

时间:2018-12-03 08:03:37

相关推荐

Python3+Selenium3自动化测试 - 实例 - 登录QQ邮箱并自动发送邮件

Python3+Selenium3自动化测试 - 登录QQ邮箱并自动发送邮件

前言一、登录QQ邮箱并自动发送邮件总结

前言

提示:本文是自行研究的成果,其中可能存在许多不足之处,仅供参考

一、登录QQ邮箱并自动发送邮件

#!/usr/bin/env python # -*- coding:utf-8 -*-import timefrom selenium import webdriverfrom mon.by import By'''登录QQ邮箱并发送邮件'''driver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(20)def login():# 打开QQ邮箱网址driver.get('/')# 切换到iframe 注:iframe里面的元素无法直接定位,切换到iframe后也是无法继续定位父元素的,需要调用driver.switch_to.default_content()driver.switch_to_frame('login_frame')# 切换到账户密码登录driver.find_element(By.ID, 'switcher_plogin').click()# 填写信息并登录driver.find_element(By.ID, 'u').send_keys('xxxxxxx')driver.find_element(By.ID, 'p').send_keys('.xxxxxxx')driver.find_element(By.ID, 'login_button').click()# 强制休眠3秒(太快了会导致获取不到登录异常提示)time.sleep(3)# 判断异常文本是否加载出来if is_exist('#err_m'):err_text = driver.find_element(By.ID, 'err_m').textprint('登录异常:', err_text)# 格式化当前时间 也可以这么写time.strftime('%Y%m%d%H%M%S', time.localtime()))nowtime = time.strftime('%Y%m%d%H%M%S')# 保存异常图片driver.get_screenshot_as_file('E://PythonFile/异常截图_' + nowtime + '.png')else:print('登录成功')write()def write():print('开始写信')driver.find_element(By.ID, 'composebtn').click()driver.switch_to_frame('mainFrame')# 收件人文本比较特殊,so我直接选择已有联系人driver.find_element(By.ID, 'to_btn').click()# 跳出iframe,进入父级定位元素driver.switch_to.default_content()driver.find_element(By.XPATH, '//*[@id="add_address_QMDialog_left"]/div/div/input').send_keys('2275389460')driver.find_element(By.CLASS_NAME, 'lm_name').click()driver.find_element(By.ID, 'add_address_QMDialog_ok').click()# 再次进入iframedriver.switch_to_frame('mainFrame')driver.find_element(By.ID, 'subject').send_keys('自动化测试 之 发送邮件')driver.find_element(By.XPATH, '/html/body').send_keys('你好呀,我是python,很高兴认识你。')driver.find_element(By.NAME, 'sendbtn').click()# 判断元素是否存在def is_exist(ele):try:driver.find_element(By.CSS_SELECTOR, ele)return Trueexcept:return Falseif __name__ == '__main__':login()

比较值得关注的几个点:

切入iframe

driver.switch_to_frame('idXXX')

切回父层

driver.switch_to.default_content()

获取当前时间并保存截图

# 格式化当前时间 也可以这么写time.strftime('%Y%m%d%H%M%S', time.localtime()))nowtime = time.strftime('%Y%m%d%H%M%S')# 保存异常图片driver.get_screenshot_as_file('E://PythonFile/异常截图_' + nowtime + '.png')

防止以后qq邮箱更新,元素发生变化导致该代码无法运行,这里留下自动运行的步骤截图,加强印象

总结

小白学习,留存记录,文章不足之处欢迎指出,共同探讨

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。