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

各位在自动化通过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)
   

你可能感兴趣的:(ui自动化,多线程,adb,python,软件测试)