android - python ,猴跑者。如何在所有列表包中找到包名?

标签 android python testing android-virtual-device 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 中将该列表保存在数组或列表中有疑问。

最佳答案

你可以这样做:

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()

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

关于android - python ,猴跑者。如何在所有列表包中找到包名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28456347/

相关文章:

python - 在 Python 中获取最后一个 '/' 或 '\\' 字符

php - 测试未链接到任何路由的 Controller 方法

android - 从 fbsdk React Native 获取数据

python - PyQt、Python 3 : Lambda slot assigning signal argument to a variable?

python - 连接文件中多行的字符串,以换行符分隔

javascript - 我想获取 md-autocomplete 的内部标记值,但我无法获取文本值,请在下面查找代码

c# - 使用 Action 和 Lambda 进行 NUnit 测试

android - 选择警报弹出窗口中的所有文本 selectAll()

javascript - 如何将结果记录到android studio中的控制台

android - 无法使用 Dagger 2 运行 Kotlin