Python,MonkeyRunner。如何在所有列表包中找到包名?

时间:2015-02-11 14:04:54

标签: android python testing avd monkeyrunner

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

我的包名如下:

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中将该列表保存在数组或列表中。

2 个答案:

答案 0 :(得分: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()

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

答案 1 :(得分:0)

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

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