尝试使用 MonkeyRunner 执行一些测试并希望使用 AndroidViewClient 来处理 EditText 小部件。
我相信我正确使用了 AndroidViewClient (下面的相关内容),findViewByIdOrRaise()
总是抛出错误。我已经尝试了所有想到的指定 ID 的变体。
这是我活动的 XML 中的一个片段:
<EditText
android:id="@+id/someText"
... >
<requestFocus />
</EditText>
<!-- Yes, that is the actual id of my EditText -->
在我的 MonkeyRunner 脚本中,我有以下内容:
device, serialno = ViewClient.connectToDeviceOrExity(serialNo=myDeviceId)
vc = ViewClient(device=device, serialno=serialno)
device.installPackage(apkPath)
device.startActivity(component='com.app.name/com.app.name.ActivityName')
editTextId = 'id/someText'
try:
someText = vc.findViewByIdOrRaise(editTextId)
someText.touch()
someText.type('Derp derp derp')
except ViewNotFoundException, e:
# The comma above is because Jython 2.5.3 does not support the AS keyword
print ' [*] %s' % (e)
当然,我的代码比显示的要多一点(但不多)。我去掉了所有看起来不相关的东西。我很乐意把它全部放在那里,但不想一开始就在这里吐出所有代码。
我已经查看了有关该主题的所有内容:
- AndroidViewClient/AndroidViewClient/examples/email-send.py
- monkeyrunner:与视图交互
- 如何使用monkeyrunner在文本字段中输入文本
- 如何使用 monkeyrunner 向文本字段输入值
关于我做错了什么的任何想法?