def _open(self, url): try: self.driver.get(url) self.driver.implicitly_wait(10) except Exception as e: log.info(e) raise ValueError('%s address access error, please check!' % url)
def test_login_username_incorrect(self): """用户名不正确,密码正确,登录失败""" self.login.loginFunc(self.login.updowm[1][0], self.login.updowm[1][1]) time.sleep(2) attr_text = self.login.getFailloginText() expect_text = "用户名或者密码错误" self.login.assertEqual(expect_text, attr_text) log.info("run completed! please check the test report")
def clickLogBtn(self): """ :return: """ element = self.find_element_by_xpath(self.loginBtn) element.click() log.info("loginning...")
def test_login_failed_username_password_error(self): """用户名和密码都错误,登录失败""" self.login.loginFunc(self.login.updowm[3][0], self.login.updowm[3][1]) time.sleep(2) attr_text = self.login.getFailloginText() expect_text = "用户名或者密码错误" self.login.assertEqual(expect_text, attr_text) log.info("run completed! please check the test report")
def test_login_failed_username_blank(self): """空的用户名,正确的密码,登录失败""" self.login.loginFunc(self.login.updowm[2][0], self.login.updowm[2][1]) time.sleep(2) attr_text = self.login.getFailloginText() expect_text = "用户名或者密码错误" self.login.assertEqual(expect_text, attr_text) log.info("run completed! please check the test report")
def tearDown(self): """ :return: """ self.driver.refresh() log.info( '************************test case run completed************************' )
def find_elements(self, by, arg, driver=None, timeout=30): driver = driver or self.driver try: element = WebDriverWait( driver, timeout).until(lambda driver: driver.find_elements(by, arg)) return element except Exception as e: log.info('finding element timeout!, details')
def setUp(self): """ :return: """ self.login = LoginPage(self.driver) self.login.open() log.info( '************************starting run test cases************************' )
def ieDriver(self): try: self.driver = webdriver.Ie() except Exception as e: log.info( 'IEDriverServer.exe executable needs to be in PATH. Please download!' ) raise e else: log.info("found the IE driver successed !") return self.driver
def getValues(self, elements): value_list = [] try: for element in elements: value = elements.text value_list.append(value) except Exception as e: log.info('read value failed') raise e else: return value_list
def fireFoxDriver(self): try: self.driver = webdriver.Firefox() except Exception as e: log.info( "FireFoxDriverServer.exe executable needs to be in PATH. Please download!" ) raise e else: log.info("found the Firefox driver successed") return self.driver
def chromeDriver(self): try: self.driver = webdriver.Chrome() except Exception as e: log.info( 'ChromeDriverServer.exe executable needs to be in PATH. Please download!' ) raise e else: log.info("found the webdriver driver successed") return self.driver
def getValue(self, element): try: value = element.text except Exception: value = element.get_attribute("value") log.info('reading the element [%s] value [%s]' % (element, value)) return value except: log.logger.exception('read value failed') raise Exception else: log.logger.info('reading the element [%s] value [%s]' % (element, value)) return value
def inputValue(self, element, value): """ :param element: element参数是要页面元素的 :param value: :return: """ try: element.clear() element.send_keys(value) except Exception as e: log.info('typing value error!') raise e else: log.info('inputValue:[%s] is receiveing value [%s]' % (element, value))
def test_login_success_correct_username_password(self): """用户名正确,密码正确,登录成功""" self.login.loginFunc() time.sleep(2) currUrl = self.driver.current_url #获取当前的url地址 self.login.delete_all_cookies() try: self.assertIn("home", currUrl, "main not in current url") except Exception: self.login.saveScreeenShot("correct_username_password_fail.png") raise else: self.login.saveScreeenShot('correct_username_password_pass.png') log.info("run completed! please check the test report")
def testreport(): """ :return: """ currTime = time.strftime('%Y-%m-%d %H_%M_%S') fileName = conf.reportDir + r"\report" + currTime + ".html" try: fp = open(fileName, 'wb') except Exception: log.info('[%s] open error cause Failed to generate test report' % fileName) else: runner = HTMLTestRunner.HTMLTestRunner\ (stream=fp,title="采购系统测试报告", description="电脑配置待定" ) log.info('successed to generate test report [%s]' % fileName) return runner, fp, fileName
def open(self): self._open(self.base_url) log.info('%s loading successed!' % self.base_url) return self.base_url
def saveScreeenShot(self, filename): """ :param filename: :return: """ list_value = [] list = filename.split('.') for value in list: list_value.append(value) if list_value[1] == 'png' or list_value[1] == 'jpg' or list_value[ 1] == "PNG" or list_value[1] == "JPG": if "fail" in list_value[0].split('_'): try: self.driver.save_screenshot( os.path.join(conf.failImagePath, filename)) except Exception: log.info("save screenshot failed") else: log.info( 'the file [%s] save screenshot successed under [%s]' % (filename, conf.failImagePath)) elif 'pass' in list_value[0]: try: self.driver.save_screenshot( os.path.join(conf.pasImagePath, filename)) except Exception: log.info("save screenshot failed") else: log.info( 'the file [%s] save screenshot successed under [%s]' % (filename, conf.passImagePath)) else: log.info( 'save screenshot failed due to [%s] format incorrect' % filename) else: log.info( 'the file name of [%s] format incorrect cause save screenshot failed, please check!' % filename)
def tearDownClass(cls): cls.driver.quit() log.info('quit the browser success!')
def getFailloginText(self): info = self.find_element_by_xpath(self.errMessage).text log.info("login fail") return info
def getFailaccountText(self): info = self.find_element_by_xpath(self.accountNull).text log.info("login failed") return info
def getFailpassText(self): info = self.find_element_by_xpath(self.passwordNull).text log.info("login failed") return info
def setUpClass(cls): #一个测试类(文件)执行一次打开浏览器, 节约每个用例打开一次浏览器的时间 cls.driver = WDriver().chromeDriver() cls.driver.maximize_window() log.info("opened the browser successed!")