【问题标题】:Python, MonkeyRunner. How to find a package name inside all list packages?蟒蛇,MonkeyRunner。如何在所有列表包中找到包名?
【发布时间】:2015-02-11 14:04:53
【问题描述】:

大家。 我正在使用 python 和 monkeyrunner 在 AVD 上测试应用程序,我正在编写一个脚本来测试是否安装了应用程序。

我有一个像这样的包名:

package_name = "package:me.abc.app"

我有一个使用此命令安装在 AVD 上的软件包列表:

C:\test>adb shell pm list packages
package:com.example.android.notepad
package:com.android.smoketest
package:com.example.android.softkeyb
package:me.abc.app
package:com.android.smoketest.tests

我想编写一个脚本,我可以在其中将该列表保存在一个数组/列表中并执行以下操作:

If package_name is in list_of_packages
   print "App is installed"
else
   print "App is not installed"

我对如何在 Python 中将该列表保存在数组或列表中遇到问题。

【问题讨论】:

    标签: android python testing avd monkeyrunner


    【解决方案1】:

    你可以这样做:

    import subprocess
    
    apps_proc = subprocess.Popen(["adb", "shell", "pm", "list", "packages"], shell=False, stdout=subprocess.PIPE)
    list_of_packages = apps_proc.communicate()[0].decode.strip()
    

    我没有尝试过,但你可以玩最后一行来获得你需要的东西。

    【讨论】:

      【解决方案2】:

      最后我创建了这个函数来保存列表包,你可以在里面搜索。

      def search_package_in_avd(device):
          command = device.shell("pm list packages -3")
          splitedline=re.split(':|\r|\n',command)
          if not splitedline:
              return ""
          else:
              return splitedline
      

      【讨论】:

        猜你喜欢
        • 2023-03-31
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 2020-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多