实现一个入门级的UI自动化测试,实现163邮箱登录,及发送邮件功能。基于最基本的代码,元素定位,切换iframe。基于测试框架-unittest实现,最后生成测试报告。
1. 代码编写
直接上代码:
from selenium import webdriver
from time import sleep
import unittest
class Wangyi(unittest.TestCase):
def test_wang(self):
driver=webdriver.Chrome()
'''访问163网店'''
driver.get('https://email.163.com/#module=welcome.WelcomeModule%7C%7B%7D')
'''将窗口最大化'''
driver.maximize_window()
'''等待1秒'''
sleep(1)
'''断言页面标题正确'''
dl_title='网易免费邮箱'
self.assertIn(dl_title,driver.title,'网易免费邮箱')
'''切换到登录框的iframe'''
driver.switch_to.frame(0)
sleep(2)
'''清空帐号输入框'''
driver.find_element_by_name('email').clear()
'''输入帐号及密码'''
driver.find_element_by_name('email').send_keys('XXXX')
driver.find_element_by_name('password').send_keys('XXXX')
sleep(1)
'''点击登录按钮'''
driver.find_element_by_id('dologin').click()
sleep(2)
'''点击写信按钮'''
driver.find_element_by_id('_mail_component_132_132').click()
sleep(2)
'''收件人中填写收拾人邮箱'''
driver.find_element_by_class_name('nui-editableAddr-ipt').send_keys('315474291@qq.com')
sleep(1)
'''填写想要输入的主题'''
driver.find_element_by_xpath("//div[@class = 'bz0']/div/input[@class = 'nui-ipt-input']").send_keys('这是一封测试邮件')
sleep(1)
'''退出当前iframe'''
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@class,'APP-editor-iframe')]"))
'''点击邮件内容,并输入想要输入的邮件详情'''
driver.find_element_by_xpath('/html/body').send_keys('测试网易登录和写邮件')
sleep(1)
'''退出当前iframe'''
driver.switch_to.default_content()
'''点击发送按钮,邮件发送成功'''
driver.find_element_by_xpath('//*[@class="jp0"]/div[@role="button"][1]').click()
sleep(2)
'''关闭浏览器'''
driver.quit()
if __name__ == '__main__':
'''当前测试用例的路径,./表示当前目录'''
yl=r'./'
'''加载用例'''
discover = unittest.defaultTestLoader.discover(yl,'test_poium.py')
'''指定位置保存测试报告'''
file_path='./report/send_email.html'
with open(file_path,'wb') as rf:
'''指定测试输出报告,及标题,描述'''
runner=HTMLTestRunner.HTMLTestRunner(stream=rf,title='163邮件登录及发送邮件的测试报告',description='基于unittest的selenium自动化测试')
'''运行测试用例并输入测试报告'''
runner.run(discover)
2. 运行结果
1. 代码运行成功
2. 目录中生成测试报告
3. 查看测试报告详情
用浏览器中打开测试报告,查看运行详情。
ps: 这是最普通的入门操作,很有很多优化空间,下一篇将对senium的代码优化,当下最流行地的POM设计模式,再次实现163邮箱的登录及发送邮件。