def switch_parent_frame(self, img_desc, wait_time=0): do_log.info("切换到父 '{}' frame".format(img_desc, wait_time)) time.sleep(wait_time) try: self.driver.switch_to.parent_frame() do_log.info("切换到 '{}' 的frame成功".format(img_desc)) except: do_log.info("切换到 '{}' 的frame失败".format(img_desc)) self.save_error_screenshot(img_desc) raise
def wait_page_contains_ele(self, loc, img_desc, timeout=30, frequency=0.5): do_log.info("等待 '{}' 元素值为 '{}' 出现在页面".format(img_desc, loc)) start_time = time.time() try: WebDriverWait(self.driver, timeout, frequency).until(EC.presence_of_element_located(loc)) do_log.info("等待 '{}' 元素出现成功".format(img_desc)) except: do_log.error("等待 '{}' 元素出现失败".format(img_desc)) raise else: end_time = time.time() wait_time = time.strftime("%H:%M:%S", time.localtime(end_time - start_time)) do_log.info("等待 '{}' 元素出现成功,等待时间为 {}s".format(img_desc, wait_time))
def save_error_screenshot(self, img_desc): screenshot_name = SCREENSHOT_DIR + os.sep + str( time.strftime("%Y%m%d%H%M%S", time.localtime())) + img_desc + ".jpg" self.driver.save_screenshot(screenshot_name) do_log.info("页面截图文件保存在 {}".format(screenshot_name))
def tearDown(self): self.driver.close() do_log.info("结束执行登录的用例".center(40, "#"))
def setUp(self): do_log.info("开始执行登录的用例".center(40, "#")) self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get(do_config.get_value("project_url", "url")) self.lg = LoginPage(self.driver)
def tearDown(self): self.driver.close() do_log.info("{:#^20}".format("结束执行发送邮件的用例"))