如何在espresso中以编程方式单击Android手机的“主页”按钮

时间:2019-01-26 01:59:30

标签: java android testing android-espresso

我需要在Android手机上模拟Espresso中的主页按钮单击。 我尝试过

onView(withId(android.R.id.home))。perform(click());

and onView(withContentDescription(“ Navigate up”))。perform(click());

如某些帖子所建议,但始终无法找到视图。 我是Espresso的新手,不确定如何调试它。谢谢。

1 个答案:

答案 0 :(得分:3)

最好使用withContentDescription(R.string.abc_action_bar_up_description)而不是“向上导航”,但是它无论如何都不会像单击主页按钮那样,它仅使用导航栏的“后退”按钮,因此只有在您拥有导航按钮的情况下,它才有效在您的应用中。

如果要模拟 home 按钮的点击,并且您正在使用UI Automator库,则可以simulate像这样

fun pressHome() {
    // Might be a good idea to initialize it somewhere else
    val uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
    uiDevice.pressHome()
}

或者,如果您不想或不能使用UI Automator,则可以尝试使用KeyEvent.KEYCODE_HOME调用Intrstumentation.sendKeyDownUpSync()