如何使用Monkeyrunner向Android Emulator发送命令?
我有一个带有登录名的应用程序,我想做的是取消应用程序 然后与应用程序交互,发送用户名和密码 这个脚本有什么问题如何使用Monkeyrunner向Android Emulator发送命令?,android,android-emulator,monkeyrunner,Android,Android Emulator,Monkeyrunner,我有一个带有登录名的应用程序,我想做的是取消应用程序 然后与应用程序交互,发送用户名和密码 这个脚本有什么问题 # 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
# 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')
。
有时效果很好,但有时不行,我不知道为什么
可能是,键盘的焦点在搜索栏或其他地方。
在脚本中,当我按下选择按钮时,我尝试的是选择文本字段以输入用户名
我想到的另一个想法是,我必须等待活动正确启动/加载,然后发送命令进行交互。如何做到这一点?如果您使用emulator进行测试,您应该在启动应用程序后,甚至在命令之间,给
时间。sleep()
,因为有时它们很慢(取决于您的系统)
例如,您可以使用以下代码:
device.startActivity(component='com.example.android.myapplication/com.example.android.myapplication.MainActivity')
import time
time.sleep(10)
device.press('KEYCODE_BUTTON_SELECT','DOWN_AND_UP')
如果您使用emulator进行测试,则在启动应用程序后,甚至在命令之间,您应该给出
time.sleep()
,因为有时它们很慢(取决于您的系统)
例如,您可以使用以下代码:
device.startActivity(component='com.example.android.myapplication/com.example.android.myapplication.MainActivity')
import time
time.sleep(10)
device.press('KEYCODE_BUTTON_SELECT','DOWN_AND_UP')
还可以使用type()函数输入数据
无效类型(字符串消息)
将消息中包含的字符发送到此设备,就好像它们是在设备的键盘上键入的一样。这相当于使用键事件类型DOWN和UP为消息中的每个键代码调用press()。
论据
消息包含要发送的字符的字符串
请参阅:您还可以使用type()函数输入数据
无效类型(字符串消息)
将消息中包含的字符发送到此设备,就好像它们是在设备的键盘上键入的一样。这相当于使用键事件类型DOWN和UP为消息中的每个键代码调用press()。
论据
消息包含要发送的字符的字符串
见: