Robotium を使用して、いくつかのオープン ソース phonegap アプリケーションをテストしてきました。最近、WikipediaとTeamToy-Pocketをテストするとき。Robotium は webElement をクリックしますが、画面をリダイレクトしません (手動で webElement をクリックするとリダイレクトされます)。クリックする2つの方法を試しました:
solo.clickOnWebElement(By.id(id), 1, true);
と
solo.enterTextInWebElement(By.id(id), text);
指定された webElement (開発者向けオプションで「ポインターの位置を表示」を使用) のクリックを確認しましたが、期待されるページ遷移は発生しません。
Robotiumで要素をクリックしたときのlogcatログは次のとおりです。
08-08 12:15:46.044: I/click(16334): Lactarius indigo: uptime: 5003094 realtime: 8755078
08-08 12:15:46.234: D/webview(16334): blockWebkitViewMessage= false
08-08 12:15:56.165: D/DroidGap(16334): Paused the application!
08-08 12:15:56.165: D/CordovaWebView(16334): Handle the pause
08-08 12:15:56.165: D/CordovaWebView(16334): >>> loadUrlNow()
08-08 12:15:56.165: D/WebView(16334): loadUrlImpl: called
08-08 12:15:56.385: W/IInputConnectionWrapper(16334): showStatusIcon on inactive InputConnection
08-08 12:15:56.885: D/DroidGap(16334): onDestroy()
08-08 12:15:56.885: D/CordovaWebView(16334): >>> loadUrlNow()
08-08 12:15:56.885: D/WebView(16334): loadUrlImpl: called
08-08 12:15:56.885: D/CordovaWebView(16334): >>> loadUrlNow()
08-08 12:15:56.885: D/WebView(16334): loadUrlImpl: called
次に、この問題に対処することを望んで MonkeyRunner に目を向けました。次のステートメントを使用してハイパーリンクをクリックします
device.touch(347,322,MonkeyDevice.DOWN_AND_UP)
それでも同じこと、指定された領域でクリックが実行されましたが、ページ遷移はありませんでした。
MonkeyRunner でポイントをクリックしたときのログは次のとおりです。
08-08 12:18:32.652: V/webview(16574): singleCursorHandlerTouchEvent -getEditableSupport FASLE
Galaxy Sumsung S3 を使用しており、SDK ツールのバージョンは 22.0.5 です。どんな提案でも大歓迎です。
PS私も猿を使ってみました
adb shell monkey -p org.wikipedia -v 500 --throttle 500
リンクをクリックして、指定されたページへのリダイレクトをトリガーできるようです。それがなぜなのかわからない。ありがとう!