2

私はこのトピックについて多くを見つけることができませんでした。アプリケーションのテストを自動化しようとしています。特定のフォルダーにアプリを配置し、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)変数は、runco​​mponentがパッケージ+アクティビティ変数の組み合わせであるなど、他の場所(monkeyrunner関連クラス)でも機能します。:見やすいように両方device1.installPackagesを並べて表示しました。スクリプトで両方を続けて実行することはありません。

4

1 に答える 1

2

Linuxマシンでも同じことを試しましたが、動作します。モンキーランナースクリプトをご覧ください。

#! /usr/bin/env monkeyrunner
import re
import sys
import os
import java
import glob
import os

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device1= MonkeyRunner.waitForConnection(15, "emulator-5554")
mydir="/home/user/apk"
os.chdir(mydir)
for files in glob.glob("*.apk"):
    print files
    print "path " ,os.path.abspath(mydir+"/"+files)
    device1.installPackage(mydir+"/"+files)
于 2012-10-09T21:38:13.103 に答える