在整个自动化测试过程中需要分为及部分:
1、初始化 2、结束 3、异常处理 4、截图 5、对弹窗的处理 6、测试用例 整个过程中需要包括测试报告,自动生成 生成测试报告后需要加上备注,方便注释哪些用例通过
# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.common.exceptions import NoAlertPresentExceptionimport unittest, time, reimport HTMLTestRunnerimport funclass Baidu(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://www.baidu.com/" self.verificationErrors = [] self.accept_next_alert = True def test_baidu(self): driver = self.driver driver.get(self.base_url + "/") driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() def test_HB(self): driver = self.driver driver.get('http://www.haibian.com') for k,v in fun.zidian().items(): try: driver.find_element_by_id('loginname').send_keys(k) driver.find_element_by_id('password').send_keys(v) driver.find_element_by_id('J-submit').click() except:#这里的图片可以使用成变量 driver.get_screenshot_as_file(r"E:\ytxu\python\test_jpg\sss.jpg") def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException, e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException, e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors)if __name__ == "__main__": testunit = unittest.TestSuite() testunit.addTest(Baidu("test_baidu")) testunit.addTest(Baidu("test_HB")) file_name =r'E:\ytxu\python\test_result\result.html' fp = file(file_name,'wb') runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title='Report_title', description='Report_description') runner.run(testunit)