(Robotium) Action bar up/home button click

人走茶凉 提交于 2019-12-09 00:57:15

问题


I use Robotium as the library for Junit test for my Android application. I wrote some tests which works well. But when I try to write a test for native ActionBar's Up/Home button click, it failed.

My test code is very simple:

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

I expected the above code will click the Up/Home button of native ActionBar, but it is failed, nothing was happening on action bar. Why??

P.S. I am using an Android 4.2.1 device.


回答1:


I use this function:

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

Maybe it's not a perfect decision, but it works.




回答2:


In our application Home button eventually calls NavUtils.navigateUpFromSameTask. When using

solo.clickOnActionBarHomeButton();

to click Home button, it doesn't work. However, I have noticed that solo.clickOnScreen clicks on Home button reliably. So we use this method instead of solo.clickOnActionBarHomeButton:

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



回答3:


You can click the Up/Home button (that is the first ImageButton element in the activity) by using the following code:

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


来源:https://stackoverflow.com/questions/15835809/robotium-action-bar-up-home-button-click

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!