首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器人-尝试在应用程序中点击主页按钮。

机器人-尝试在应用程序中点击主页按钮。
EN

Stack Overflow用户
提问于 2013-12-18 14:50:20
回答 6查看 2.6K关注 0票数 1

我是robotium新手,我正试图编写一个快速而肮脏的脚本,以便在一个应用程序的所有屏幕上运行。

我的问题主要是在应用程序中的“主页”按钮。我尝试了很多选择,但我似乎无法让它点击那里,除了使用索引,这不是我想要的。

当我用hierarchyviewer签出按钮时,如下所示:

链接

但是,例如,当我尝试:

代码语言:javascript
复制
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等,但我似乎无法让它点击。我在这里错过了什么?

代码语言:javascript
复制
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)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-12-18 17:08:54

使用下面的行按操作栏中的home按钮

代码语言:javascript
复制
solo.clickOnActionBarHomeButton();
票数 4
EN

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2014-03-03 19:57:35

在使用ActionBarSherlock时,必须检查两个不同的Ids,android.R.id.home用于API-Level>11,abs__home用于较低级别(由ActionBarSherlock提供):

代码语言:javascript
复制
    View homeButton = activity.findViewById(android.R.id.home);
    if (homeButton == null) {
        homeButton = activity.findViewById(R.id.abs__home);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20661264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档