提问者:小点点

(机器人)操作栏向上/主页按钮单击


我使用Robotia作为我的Android应用程序的Junit测试库。我编写了一些效果很好的测试。但是当我尝试为原生ActionBar的Up/Home按钮单击编写测试时,它失败了。

我的测试代码很简单:

Solo solo = new Solo(getInstrumentation(), getActivity());
...
solo.clickOnActionBarHomeButton(); // I expected it will click the Up/Home button of ActionBar

我期望上面的代码会单击原生ActionBar的Up/Home按钮,但它失败了,操作栏上没有发生任何事情。为什么??


共3个答案

匿名用户

我使用这个功能:

public void clickOnActionBarHomeButton(Solo solo) {
    View homeView = solo.getView(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home : R.id.home);
    solo.clickOnView(homeView);
}

也许这不是一个完美的决定,但它有效。

匿名用户

在我们的应用程序Home中,按钮最终调用NavUtils.导航UpFromSameTask。使用时

solo.clickOnActionBarHomeButton();

要单击Home按钮,它不起作用。但是,我注意到solo. clickOnScreen可靠地单击Home按钮。所以我们使用这种方法代替solo.clickOnActionBarHomeButton

protected void clickOnHome() {
    solo.clickOnScreen(50, 50); //usually hits Home button
}

匿名用户

您可以使用以下代码单击Up/Home按钮(即活动中的第一个ImageButton元素):

solo.clickOnImageButton(0);
instrumentation.waitForIdleSync();