在 app 自动化测试中,弹窗异常处理是指处理应用程序中可能出现的各种弹窗、对话框或提示框等用户界面元素的情况。这些弹窗可能包括警告、确认、输入框等,它们可能是应用程序的正常行为,也可能是错误或异常的指示。有效的弹窗异常处理是自动化测试稳定性和可靠性的关键组成部分。
使用场景
运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等)
弹框不是 BUG(UI 界面提示,警告的作用)
操作步骤
黑名单处理
def find(self, by, locator): try: return self.driver.find_element(by, locator) except Exception as e: for black in black_list: eles = self.driver.find_elements(*black) if len(eles) > 0: eles[0].click return find(by, locator) raise e
异常处理 - 装饰器
装饰器优势
对原有函数的功能增强
不改变原有函数的逻辑
使代码更简洁、易维护
代码实现
# 声明一个黑名单def black_wrapper(fun): def run(*args, **kwargs): self = args[0] try: return func(*args, **kwargs) except Exception as e: # 这里添加所有的异常情况处理 # 日志 logger.warning("执行过程中发生异常") # 截图 timestamp = int(time.time) image_path = f"./images/image_{timestamp}.PNG" page_source_path = f"./page_source/{timestamp}_page_source.html" # page_source with open(f"./page_source/{timestamp}_page_source.html", "w", encoding="u8") as f: f.write(self.driver.page_source) self.driver.save_screenshot(image_path) allure.attach.file(image_path, name="image", attachment_type=allure.attachment_type.PNG) allure.attach.file(page_source_path, name="page_source", attachment_type=allure.attachment_type.TEXT) raise e return run
装饰元素查找方法
@black_wrapperdef find(self, by, locator) return self.driver.find_element(by, locator)
总结
黑名单处理
异常处理装饰器
转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/253429.html