如何在Espresso上按编辑器操作

时间:2015-01-07 05:42:59

标签: android android-testing android-espresso

如何使用Espresso在Android软键上按下Editor Action键? 我试过了:

onView(withId(R.id.test_title)).perform(typeText("Sample Title"), pressKey(KeyEvent.FLAG_EDITOR_ACTION));

但它不起作用..有什么想法吗?

4 个答案:

答案 0 :(得分:15)

“pressKey”需要一个KEYCODE,而不是一个FLAG。所以pressKey(KeyEvent.FLAG_EDITOR_ACTION)确实没有意义,肯定不会起作用。

但是有一个用于按下编辑器(IME)动作的ViewAction,请参阅静态方法:ViewActions#pressImeActionButton()

您可以在此处查看Espresso 1.x实施详情:

https://developer.android.com/reference/android/support/test/espresso/action/ViewActions.html#pressImeActionButton()

答案 1 :(得分:3)

由于这是搜索如何使用Espresso发送密钥的人的最佳google结果,我想提供一个示例:onView(withId(R.id.your_id)).perform(ViewActions.pressKey(KeyEvent.YOUR_KEY));

答案 2 :(得分:2)

要在Espresso中发送常规按键,请使用以下命令:

onView(isRoot()).perform(pressKey(KeyEvent.KEYCODE_MENU));

例如,这会将硬件菜单按钮事件发送到任何视图,以在ActionBar / ToolBar中打开“溢出菜单”。

答案 3 :(得分:1)

接受的答案对我来说还不清楚,其他人则无法使用。 实际的解决方案如下

Espresso.onView(ViewMatchers.withId(R.id.search_box))
        .perform(ViewActions.pressImeActionButton())

其中search_box是我的edittext的ID。