前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >App自动化测试中,如何更好地处理弹窗?

App自动化测试中,如何更好地处理弹窗?

原创
作者头像
Tester_muller
发布2024-04-17 15:12:26
670
发布2024-04-17 15:12:26
举报

简介

在 app 自动化测试中,弹窗异常处理是指处理应用程序中可能出现的各种弹窗、对话框或提示框等用户界面元素的情况。这些弹窗可能包括警告、确认、输入框等,它们可能是应用程序的正常行为,也可能是错误或异常的指示。有效的弹窗异常处理是自动化测试稳定性和可靠性的关键组成部分。

使用场景

  • 运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等)
  • 弹框不是 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
复制
# 声明一个黑名单
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
装饰元素查找方法
代码语言:python
复制
@black_wrapper
def find(self, by, locator)
    return self.driver.find_element(by, locator)

总结

  • 黑名单处理
  • 异常处理装饰器

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 使用场景
  • 操作步骤
    • 黑名单处理
      • 异常处理 - 装饰器
        • 装饰器优势
        • 代码实现
        • 装饰元素查找方法
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档