私はログインを伴うアプリケーションを持っています。私がしたいのは、アプリケーションをランチしてから、ユーザー名とパスワードを送信してアプリと対話することです。
このスクリプトの何が問題になっていますか?
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Installs the Android package.
device.installPackage('myproject/bin/LoginApp.apk')
# Runs an activity in the application
device.startActivity(component='com.example.android.myapplication.MainActivity')
# Write username and password
device.press('KEYCODE_BUTTON_SELECT','DOWN_AND_UP')
device.press('KEYCODE_U','DOWN_AND_UP')
device.press('KEYCODE_S','DOWN_AND_UP')
device.press('KEYCODE_E','DOWN_AND_UP')
device.press('KEYCODE_R','DOWN_AND_UP')
device.press('KEYCODE_ENTER','DOWN_AND_UP')
device.press('KEYCODE_P','DOWN_AND_UP')
device.press('KEYCODE_A','DOWN_AND_UP')
device.press('KEYCODE_S','DOWN_AND_UP')
device.press('KEYCODE_S','DOWN_AND_UP')
device.press('KEYCODE_ENTER','DOWN_AND_UP')
device.press('KEYCODE_ENTER','DOWN_AND_UP')
のような関数型でも試しましたdevice.type('user')。うまくいくこともあれば、うまくいかないこともあります。理由はわかりません。
おそらく、キーボードのフォーカスは検索バーまたはその他の場所にあります。スクリプトでは、選択ボタンを押すと、テキストフィールドを選択してユーザー名を入力しようとしています。
私の頭に浮かぶ別のアイデアは、アクティビティが正しく開始/ロードされるまで待ってから、対話するコマンドを送信する必要があるということです。どうやってやるの?