我有一个示例应用,可在网页浏览中打开Google搜索页面。我想点击搜索按钮。但是得到一个无法找到元素的错误。是否可以自动化webview中加载的网页?如果是这样,我的代码中缺少什么?请建议..
应用代码(相关):
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,类 - android.webkit.WebView),但不识别页面上的其他对象。
环境 - Android4.3,Robotium4.3,仿真器,Windows7 x32
PS-On Emulator,默认情况下会出现搜索按钮(id = gbqfb)。还尝试在搜索文本字段中键入内容,但也因类似原因而失败。 solo.typeTextInWebElement(By.id(“gbqfq”),“testing”)
答案 0 :(得分:1)
Google更改输入字段的ID。尝试寻找By.name("q")
而不是
答案 1 :(得分:0)
我在google页面上看不到id“gbqfb”。你的意思是“gbqfbb”课吗? - 然后它应该看起来像:
solo.clickOnWebElement(By.className("gbqfbb"));