【发布时间】:2013-02-09 02:29:58
【问题描述】:
我需要测试包含带有按钮的 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 组件强制执行触摸事件的任何想法或建议?
【问题讨论】:
-
你是在设备还是模拟器上测试?
-
至少应该是模拟器。我两个都喜欢。
-
它适用于我(原样)在设备上,但在模拟器上失败。
-
你试过一个设备(哪个)失败了?
-
我在装有 Android 4.1.1 的三星 Galaxy SIII 上运行它
标签: android testing webview monkeyrunner