我在这个话题上找不到太多东西。我正在尝试自动化应用程序测试,将应用程序放置在特定文件夹中并运行脚本:monkeyrunner.bat -v ALL myscript.py
,并且脚本在名为 的文件夹中的任何 apk 上执行apkrepository
。这使得我不必在每次测试新应用程序时都更改我的 python 脚本。
我遇到麻烦的部分是我正在尝试使用一个变量来device1.installPackage()
查看下面的代码以获取它。
installme = os.popen(r'dir C:\users\uname\desktop\apkrepository /A:-d /B').read()
print installme
# => com.application.android.apk #or whatever the package name is
filepath = r'C:\users\uname\desktop\apkrepository'
androidapp = filepath + '\\\' + installme
print androidapp
# => C:\users\uname\desktop\apkrepository\com.application.android.apk
#This exactly what I type below manually to get it to work
device1= MonkeyRunner.waitForConnection(15, "emulator-5554")
#Emulator was started in previous section of code, which is not shown here.
device1.installPackage(androidapp)
#DOES NOT WORK!!
device1.installPackage('c:\users\uname\desktop\apkrepository\com.application.android.apk')
#The only way it works seems to be to write the path in manually everytime.
我尝试了许多不同的方法来让它正常工作,但我不确定这是否是我正在/正在尝试做的事情。如果变量打印正确的文件路径,我看不出它会如何工作。这可能是一件非常容易的事情,但这就是我卡住的地方。它给出的错误:
E/Device: Error dyring Sync: Local Path does not exist. Error installing package C:\users\uname\desktop\apkrepository\com.application.android.apk
我正在使用带有 python2.7 和 android sdk 的 windows 7 64 位。
感谢您提供的任何输入/帮助!我被这件事难住了几天。
变量确实适用于其他地方(monkeyrunner 附属类),例如device1.startActivity(component=runcomponent)
,其中 runcomponent 是包 + 活动变量的组合。另请注意:我device1.installPackages
并排展示了两者以便于查看。我不会在我的脚本上连续运行两者。