上面已经对页面元素进行了封装,接下来就是动手写脚本了。
这里写了2个脚本,直接上代码:
1、test_baidu_news.py
# -*- coding:utf-8 -*- import unittest import sys,os from framework.browser_engine import BrowserEngine from pageobjects.home_baidu import Home_Baidu from pageobjects.news_page import News_Page import traceback class test_Baidu_News(unittest.TestCase): def setUp(self): browser = BrowserEngine() self.driver = browser.getdriver() browser.open_browser() def tearDown(self): test_method_name = self._testMethodName runlog_path = r'F:\python_autotest\runlog' os.chdir(runlog_path) method_path = runlog_path + test_method_name print(method_path) if sys.exc_info()[0]: if os.path.exists(method_path): os.chdir(method_path) self.driver.get_screenshot_as_file('fail.png') with open('log.txt', 'w') as e: e.write(str(traceback.format_exc())) else: os.mkdir(test_method_name) os.chdir(test_method_name) self.driver.get_screenshot_as_file('fail.png') with open('log.txt', 'w') as e: e.write(str(traceback.format_exc())) super(test_Baidu_News, self).tearDown() self.driver.quit() def test_news_zhaolei(self): hb = Home_Baidu(self.driver) hb.news_ele().click() hb.sleep(1) np = News_Page(self.driver) np.news_input_ele().send_keys(u"赵雷") np.news_submit_ele().click() hb.sleep(2) if __name__ == '__main__': unittest.main()
这里的重点在于tearDown方法,我增加了脚本执行失败自动截图并打印出错误信息的功能,用于脚本失败原因定位。
这里多说下,测试用例最好都以test_开头,因为涉及到后面批量执行脚本,具体原因自行百度。
下面把另一个脚本的代码也贴出来吧,其实是一样的。
2、test_baidu_vedio.py
# -*- coding:utf-8 -*- import unittest import sys import os import traceback from framework.browser_engine import BrowserEngine from pageobjects.home_baidu import Home_Baidu from pageobjects.vedio_page import Vedio_Page class test_baidu_vedio(unittest.TestCase): def setUp(self): browser = BrowserEngine() self.driver = browser.getdriver() browser.open_browser() def tearDown(self): test_method_name = self._testMethodName runlog_path = r'F:\python_autotest\runlog' os.chdir(runlog_path) method_path = runlog_path + test_method_name print(method_path) if sys.exc_info()[0]: if os.path.exists(method_path): os.chdir(method_path) self.driver.get_screenshot_as_file('fail.png') with open('log.txt','w') as e: e.write(str(traceback.format_exc())) else: os.mkdir(test_method_name) os.chdir(test_method_name) self.driver.get_screenshot_as_file('fail.png') with open('log.txt', 'w') as e: e.write(str(traceback.format_exc())) super(test_baidu_vedio, self).tearDown() self.driver.quit() def test_vedio_zhoujielun(self): hb = Home_Baidu(self.driver) hb.vedio_ele().click() hb.sleep(1) vp = Vedio_Page(self.driver) vp.vedio_input_ele().send_keys(u"周杰伦") vp.vedio_submit_ele().click() vp.sleep(2) if __name__ == '__main__': unittest.main()