我是robotium新手,我正试图编写一个快速而肮脏的脚本,以便在一个应用程序的所有屏幕上运行。
我的问题主要是在应用程序中的“主页”按钮。我尝试了很多选择,但我似乎无法让它点击那里,除了使用索引,这不是我想要的。
当我用hierarchyviewer签出按钮时,如下所示:
链接
但是,例如,当我尝试:
assertTrue(
"Wait for text (id: myapp.R.id.home) failed.",
solo.waitForImageById("myapp.R.id.home", 20000));
solo.clickOnImage((ImageView) solo.findViewById("myapp.R.id.home"));
solo.waitForActivity("MenuActivity");它在waitForImageByID行失败。我尝试过多种选择,如waitForImageButton等,但我似乎无法让它点击。我在这里错过了什么?
junit.framework.AssertionFailedError: View with id: '0' is not found!
at com.jayway.android.robotium.solo.Solo.getView(Solo.java:1990)
at com.jayway.android.robotium.solo.Solo.getView(Solo.java:1970)
at com.bitbar.recorder.extensions.OtherUtils.a(OtherUtils.java:246)
at com.bitbar.recorder.extensions.OtherUtils.b(OtherUtils.java:241)
at com.bitbar.recorder.extensions.v.a(Waiter.java:71)
at com.bitbar.recorder.extensions.ExtSolo.waitForImageButtonById(ExtSolo.java:4176)
at com.example.android.apis.test.Test.testRecorded(Test.java:137)
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.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:1740)发布于 2013-12-18 17:08:54
使用下面的行按操作栏中的home按钮
solo.clickOnActionBarHomeButton();发布于 2013-12-18 19:25:50
问题是它所引用的id不在您的应用程序中,它在机器人默认的R文件中,尝试android.R.id.home,它应该工作得很好。但是值得注意的是,如果您的应用程序使用动作栏sherlock来支持动作栏Pro4.0,那么它将有一个不同的ID,您将不得不在测试中处理这个问题。
您可以看到以下内容:http://developer.android.com/reference/android/R.id.html
发布于 2014-03-03 19:57:35
在使用ActionBarSherlock时,必须检查两个不同的Ids,android.R.id.home用于API-Level>11,abs__home用于较低级别(由ActionBarSherlock提供):
View homeButton = activity.findViewById(android.R.id.home);
if (homeButton == null) {
homeButton = activity.findViewById(R.id.abs__home);
}https://stackoverflow.com/questions/20661264
复制相似问题