1

ウェブビューでGoogle検索ページを開くサンプルアプリがあります。検索ボタンを押したい。しかし、要素が見つからないというエラーが発生します。WebView にロードされた Web ページを自動化することは可能ですか? もしそうなら、私のコードに何が欠けていますか? 提案してください..

アプリ コード (関連):

 setContentView(R.layout.webview);
 webView = (WebView) findViewById(R.id.webView1);
 webView.getSettings().setJavaScriptEnabled(true);
 webView.loadUrl("http://www.google.com");

テスト コード:

Button myView = solo.getView(Button.class, 0);
solo.waitForView(myView, 20, false);
solo.clickOnView(myView);
WebView view = solo.getView(WebView.class, 0);
solo.waitForView(view, 100000, false);
solo.clickOnWebElement(By.id("gbqfb"));

エラーは solo.clickOnWebElement にあります

エラー:

junit.framework.AssertionFailedError: WebElement with id: 'gbqfb' is not found!
at com.jayway.android.robotium.solo.Clicker.clickOnWebElement(Clicker.java:343)
at com.jayway.android.robotium.solo.Solo.clickOnWebElement(Solo.java:890)
at com.calculator.test.TestApk.testSpinnerlist(TestApk.java:51)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at     android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

UI Automator Viewer によって取得されたスクリーンショットは、ページ全体を (package -com.android.browser, class - android.webkit.WebView) として表示しますが、ページ上の他のオブジェクトを識別しません。

環境 - Android4.3、Robotium4.3、エミュレーター、Windows7 x32

PS-Onエミュレーターには、デフォルトで検索ボタン(id=gbqfb)が付いています。また、検索テキストフィールドに何かを入力しようとしましたが、それも同様の理由で失敗しました。solo.typeTextInWebElement(By.id("gbqfq"), "testing")

4

2 に答える 2

1

Google は入力フィールドの ID を変更します。By.name("q")代わりに探してみてください

于 2015-10-21T13:55:20.193 に答える
0

Google ページに ID「gbqfb」が表示されません。クラス「gbqfbb」のことですか?- 次に、次のようになります。

solo.clickOnWebElement(By.className("gbqfbb"));
于 2013-09-22T22:09:59.727 に答える