问题
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