软件测试/测试开发丨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
相关推荐
csdn2015_7 小时前
Set<String> 类型取第一条记录
开发语言·windows·python
csdn2015_7 小时前
List<String> 转换为Set<String>
windows·python·list
Chen--Xing8 小时前
Python -- 正则表达式
python·正则表达式·数据分析·数据脱敏·2025年能源网络安全大赛
l1t8 小时前
对在aarch64 Linux环境编译安装的CinderX补充测试
linux·运维·服务器·python·jit
getapi8 小时前
Windows 11 安装 uv包括:更新、常用命令、Python 管理、环境切换等,(Astral 的 Python 包/环境工具)完整指南
windows·python·uv
智算菩萨8 小时前
【Pygame】第1章 Pygame入门与环境搭建
python·ai编程·pygame
Dxy12393102168 小时前
Python 使用 `raise` 报错抛出异常显示 Unicode 码如何解决
开发语言·python
源码之家8 小时前
计算机毕业设计:Python 共享单车数据分析可视化系统 Flask框架 可视化 大数据 机器学习 深度学习 数据挖掘(建议收藏)✅
大数据·python·数据挖掘·数据分析·汽车·课程设计·美食
SiYuanFeng8 小时前
uv初步介绍及简单的使用方法例子
开发语言·python·uv
zero15978 小时前
Python 8天极速入门笔记(大模型工程师专用):第八篇-Python 综合实战|完整大模型调用脚本,8 天成果落地
人工智能·python·ai编程·大模型开发