Как вы нажимаете клавишу действия редактора на программной клавише Android, используя Espresso? Я старался:
onView(withId(R.id.test_title)).perform(typeText("Sample Title"), pressKey(KeyEvent.FLAG_EDITOR_ACTION));
Но это не работает. Есть идеи?
Как вы нажимаете клавишу действия редактора на программной клавише Android, используя Espresso? Я старался:
onView(withId(R.id.test_title)).perform(typeText("Sample Title"), pressKey(KeyEvent.FLAG_EDITOR_ACTION));
Но это не работает. Есть идеи?
«pressKey» ожидает KEYCODE, а не FLAG. Так что pressKey(KeyEvent.FLAG_EDITOR_ACTION) на самом деле не имеет смысла и точно не сработает.
Но есть ViewAction для нажатия действия редактора (IME), см. статический метод: ViewActions#pressImeActionButton()
Подробности реализации Espresso 1.x можно посмотреть здесь:
Поскольку это самый популярный результат поиска в Google для тех, кто ищет, как отправлять ключи с помощью эспрессо, я хотел бы привести пример: onView(withId(R.id.your_id)).perform(ViewActions.pressKey(KeyEvent.YOUR_KEY));
Чтобы отправить общее нажатие клавиши в Espresso, используйте что-то вроде этого:
onView(isRoot()).perform(pressKey(KeyEvent.KEYCODE_MENU));
Это, например, отправит событие аппаратной кнопки меню в любой вид, чтобы открыть меню переполнения в ActionBar/ToolBar.
Примечание. Чтобы быстро добавить импорт для этих методов, поместите мигающий курсор на неразрешенный метод, затем выполните Android Studio ➔ Справка ➔ Найти действие ➔ найдите "show context action"
или "show intention action"
➔ нажмите на вариант результата ➔ появится всплывающее окно ➔ нажмите "Import static method ..."
. Вы также можете назначить сочетание клавиш для «Показать контекстные действия». Дополнительная информация здесь. Другой способ — включить "Add unambiguous imports on the fly"
в настройках.
Принятый ответ был для меня не ясен, а другие не работают. Фактическое решение работает, как показано ниже
Espresso.onView(ViewMatchers.withId(R.id.search_box))
.perform(ViewActions.pressImeActionButton())
где search_box — это идентификатор моего текста редактирования.