I have an application with a login, what I want to do is lunch de application and then interact with the app, sending the username and password.
What is wrong with this script?
# 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 )
I also tried with the function type, like device.type( user )
.
Sometimes works well, but sometimes doesn t, I don´t know why.
May be, the focus of the keyboard is in the search bar or somewhere else. In the script,When I press the select button, what I am trying is to select the textfield to enter the username.
Another idea that come to my mind is that, I have to wait until the activity starts/loads correctly and then send the commands to interact. How can I do that?