写点什么

软件测试 / 测试开发丨 App 自动化测试 - 弹窗异常处理

作者:测试人
  • 2023-10-07
    北京
  • 本文字数:765 字

    阅读完需:约 3 分钟

免费领取:测试资料+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/27692

黑名单处理

  • 运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等)

  • 弹框不是 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
复制代码

方法二:装饰器处理

装饰器的优势

  • 对原有函数的功能增强

  • 不改变原有函数的逻辑

  • 使代码更简洁、易维护

__BLACK_LIST = []
def black_handle(func): """黑名单处理机制""" def _inner(*args, **kwargs): inner_arg = args[0] try: func(*args, **kwargs) # logger.info(f"查找元素:{locator}--->成功") except Exception as e: logger.info("未找到元素") logger.info(f"异常信息:{e}") logger.info("处理异常") for i in __BLACK_LIST: elements = inner_arg.driver.find_elements(*i) if len(elements) > 0: elements[0].click() return func(*args, **kwargs) raise e
return _inner
复制代码

装饰函数或方法

@black_handledef do_find(self, locator: tuple):        """获取单个元素"""        element = self.driver.find_element(*locator)        logger.info(f"查找元素:{locator}--->成功")        return element
复制代码


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨App自动化测试-弹窗异常处理_Python_测试人_InfoQ写作社区