我需要测试包含带有按钮的 WebView 的 android 应用程序。
Monkeyrunner 适用于除 WebView 之外的应用程序的所有部分。WebView 中的按钮只是忽略来自 Monkeyrunner 的触摸。我看到那个按钮被点击了,因为它变成了灰色,但是按钮什么也没做。如果我在模拟器上使用鼠标或在真实设备上使用手指,那么按钮效果很好。
我从 logcat 看到触摸事件已发送到应用程序,但应用程序没有任何操作。
一些代码:
final WebView w = (WebView) findViewById(R.id.webView1);
String summary = "<html><body><b>Google</b><form action=http://google.com><input type=submit><input type=text></form></body></html>";
w.loadData(summary, "text/html", null);
布局:
<Button android:id="@+id/button1" android:text="Click me!" />
<WebView android:id="@+id/webView1" />
Monkeyrunner py:
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection(10)
# android.widget.Button COORDINATES - THIS WORKS FINE
device.touch(10,100, 'DOWN_AND_UP')
# WEBVIEW BUTTON COORDINATES - BUTTON DOESN'T WORK
device.touch(200,200, 'DOWN_AND_UP')
我曾单独尝试过DOWN延迟UP - 结果相同。来自 Python 或来自 Java 内部的 Monkeyrunner 也不起作用。像 ChimpChat 这样的 monkeyrunner 的口味和包装不起作用。
我认为它应该可以工作,因为有这么多的 web/HTML5 应用程序,而且所有这些应用程序都没有经过测试是不可能的。但它似乎相反。有关如何为 WebView 组件强制执行触摸事件的任何想法或建议?