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

点此获取更多相关资料

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

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

黑名单处理

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

  • 弹框不是 BUG(UI 界面提示,警告的作用)

方法一:常规处理

python 复制代码
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

方法二:装饰器处理

装饰器的优势

  • 对原有函数的功能增强
  • 不改变原有函数的逻辑
  • 使代码更简洁、易维护
python 复制代码
__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

装饰函数或方法

python 复制代码
@black_handle
def do_find(self, locator: tuple):
        """获取单个元素"""
        element = self.driver.find_element(*locator)
        logger.info(f"查找元素:{locator}--->成功")
        return element
相关推荐
databook10 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar11 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805111 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_11 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机18 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机19 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i19 小时前
drf初步梳理
python·django
每日AI新事件19 小时前
python的异步函数
python