你好-C嘉嘉
2021-06-21 16:18
采纳率: 16.7%
浏览 76

Python如何实现:实时检查app是否安装完成?

#!/usr/bin/env python
#encoding: utf-8


import os
import time

appPackageName = 'XXXXXX'
appPackageList = os.popen('adb shell pm list packages').read()

def check_app_installed():

    if appPackageName in appPackageList:
        print('app已安装!')
    else:
        print('未检测到app安装程序,开始执行安装......')
        os.popen('adb install D:/Packages/XXX.apk')
        a = 0
        while appPackageName not in appPackageList:
            a += 1
            print('正在安装,已进行', a, '秒')
            time.sleep(1)
            continue
        print('安装完成!')


check_app_installed()

这是我具体的实现,执行脚本后,结果可以正常安装app,但是安装完成后无法跳出循环

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 小瘦猴 2021-06-21 17:16
    已采纳

    这次看明白了吧..

     

    
    import os
    appPackageName = "package:com.github.uiautomator"
    appPackageList = os.popen('adb shell pm list packages').readlines()
    
    for i in appPackageList:
        if appPackageName in i:
            print(appPackageName,'存在于',i)
        else:
            print('不存在')
    点赞 打赏 评论
  • 小瘦猴 2021-06-21 16:27

    你加了continue又返回了 , 没有判断就会一直返回循环。 你直接在print后面加个break就行了

     

    点赞 打赏 评论
  • 你好-C嘉嘉 2021-06-21 16:43
    #!/usr/bin/env python
    #encoding: utf-8
    
    
    import os
    import time
    
    appPackageName = 'XXX'
    appPackageList = os.popen('adb shell pm list packages').read()
    
    def check_app_installed():
        a = 0
        while True:
            if appPackageName in appPackageList:
                print('app已安装!')
                break
            else:
                os.popen('adb install D:/Packages/XXX.apk')
                a += 1
                print('正在安装,已进行', a, '秒')
                time.sleep(1)
                
    check_app_installed()

    试了一下,效果和之前一样,还是跳不出循环

    点赞 打赏 评论

相关推荐 更多相似问题