(Robotium)动作栏向上/主页按钮单击

时间:2013-04-05 13:55:44

标签: android android-layout robotium

我使用Robotium作为我的Android应用程序的Junit测试库。我写了一些效果很好的测试。但是当我尝试为native ActionBar向上/主页按钮点击编写测试时,它失败了。

我的测试代码非常简单:

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

我预计上面的代码会点击原生ActionBar的Up / Home按钮,但它失败了,动作栏上什么也没发生。为什么?

P.S。我使用的是Android 4.2.1设备。

3 个答案:

答案 0 :(得分:5)

我使用这个功能:

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);
}

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

答案 1 :(得分:1)

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

solo.clickOnActionBarHomeButton();

点击Home按钮,它不起作用。但是,我注意到solo.clickOnScreen点击Home按钮可靠。因此,我们使用此方法代替solo.clickOnActionBarHomeButton

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

答案 2 :(得分:0)

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

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