6

ボタン付きの 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" />

モンキーランナー 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 コンポーネントにタッチ イベントを強制する方法に関するアイデアや提案はありますか?

4

3 に答える 3

3

これは、私が Android チームに報告したバグです。確認した人もいました。ただし、時間の経過とともに別のバグとマージされ、後で別のバグが「設計どおりに機能する」としてクローズされました。幸いなことに、いくつかの次の Android バージョンの後、想定どおりに動作するようになりました。

于 2015-05-13T12:54:14.687 に答える
0

提供されたサンプル コードをテストしたところ、問題なく WebView コントロールでタッチ イベントを実行できました。あなたのためにそれを機能させると私が考えることができるいくつかの方法があります:

  • タッチが正しい位置にあることを確認してください。タッチ機能はスクリーン ピクセルを使用し、ディップではなく、複数のデバイスでテストしようとすると異なる可能性が高いことに注意してください。エミュレータに付属の「Dev Tools」アプリの「Pointer Location」を使用して、ボタンの正確な位置を取得できます。
  • タッチ イベントの代わりにキーボード イベントを使用して、UI をナビゲートできます。たとえば、提供されたサンプル アプリは次のように実行できます。

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

    そして、望ましい効果を生み出します

于 2013-02-17T06:30:52.873 に答える
0

これは答えではありませんが、役立つかもしれません。

Square は、"Spoon" と呼ばれる新しいインストルメンテーション テスト フレームワークをリリースしました。それはあなたが望むすべてを行うことができ、私が実行したいくつかのテストではうまく機能します. 私はウェブビューを試したことはありませんが、それらもカバーする必要があると思います。Jake Wharton (ActionBarSherlock の背後にいる人物) によって作成されました。試してみたい場合は、次のリンクを参照してください。

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

于 2013-02-18T07:46:44.393 に答える