私はこのトピックについて多くを見つけることができませんでした。アプリケーションのテストを自動化しようとしています。特定のフォルダーにアプリを配置し、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とandroidsdkでWindows764ビットを使用しています。
入力/支援を提供していただきありがとうございます!私はこれに数日間困惑しています。
device1.startActivity(component=runcomponent)
変数は、runcomponentがパッケージ+アクティビティ変数の組み合わせであるなど、他の場所(monkeyrunner関連クラス)でも機能します。注:見やすいように両方device1.installPackages
を並べて表示しました。スクリプトで両方を続けて実行することはありません。