自动化时候的坑:adb install时如何处理可恶的风险管控弹窗或者未知来源应用弹窗!

在使用adb install或pm install进行自动化测试时,可能会遇到华为、小米、一加等手机的风险管控或未知来源应用弹窗。为解决这个问题,文章提出了一个多线程的解决方案。通过1个线程执行安装命令,另1个线程利用dump ui获取XML并解析,判断是否存在弹窗。如果发现弹窗,利用adb点击坐标点消除。该方法已被验证为有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位在自动化通过adb install或者pm install的时候,有没有遇到过华为或者小米或者一加手机的各种安装弹窗呢,除了手动设置,该如何解决呢?

目前自动化主流框架,python uiautomator2 或者appuim等在执行测试的时候会自动给手机安装atx或者appuim引擎,但是如果不手动的点击允许,那么会导致测试失败,这种情况改如果处理呢?

下面提供一种多线程的解决方案,亲测可行
1个线程执行安装命令,另一个线程通过dump ui的方式获取xml文件,在通过解析xml文件的节点,获取文本,然后遍历xml,如果存在弹窗,通过adb点击坐标点处理掉弹窗上的文本即可

th1 = threading.Thread(target=install_app, args=(id, apk_path))
th2 = threading.Thread(target=click_pop_window_by_xml, args=(id, '继续安装'))

th1.start()
th2.start()
th1.join()
th2.join()
def click_pop_window_by_xml(id, expect_text):
    # ------------------------
    # 由于处理系统安装弹窗,由于ATX UI架构会安装两个apk
    # 安装apk的时候会自动弹窗,所以提前通过adb处理掉
    # ------------------------
    print('开始处理弹窗',threading.current_thread().getName())
    nodes = parse_page_xml(id)
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值