【问题标题】:Monkeyrunner doesn't touch webviewMonkeyrunner 不接触 webview
【发布时间】: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


【解决方案1】:

这是我已向 Android 团队报告的错误。有些人已经证实了这一点。然而,随着时间的推移,它与另一个错误合并,后来另一个错误被关闭为“按设计工作”。幸运的是,在接下来的几个 Android 版本之后,它开始按预期工作。

【讨论】:

    【解决方案2】:

    我已经测试了您提供的示例代码,并且我能够在 WebView 控件上执行触摸事件而没有任何问题。我能想到的几种方法可以让它对你有用:

    • 确保触摸在正确的位置,请注意触摸功能使用屏幕像素而不是倾斜,当您尝试在多个设备上进行测试时,这很可能会有所不同。您可以使用模拟器附带的“开发工具”应用中的“指针位置”获取按钮的确切位置。
    • 您可以使用键盘事件而不是触摸事件来导航 UI。例如,您提供的示例应用程序可以这样完成:

      from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
      device = MonkeyRunner.waitForConnection(10)
      device.press('KEYCODE_DPAD_DOWN')
      device.press('KEYCODE_DPAD_CENTER')
      

      会产生想要的效果

    【讨论】:

      【解决方案3】:

      这不是答案,但我认为它可能会有所帮助。

      Square 发布了一个名为“Spoon”的新仪器测试框架。它允许您做任何您想做的事情,并且在我运行的几个测试中运行良好。我还没有尝试过 webviews,但我认为它也应该涵盖这些。它是由 Jake Wharton(ActionBarSherlock 背后的人)创建的。如果您想尝试一下,请点击以下链接:

      http://square.github.com/spoon/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-29
        • 2010-12-29
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        • 2018-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多