Чтобы ввести ввод в TextView, мы можем вводить по одному символу за раз, чтобы у любой логики автозаполнения было время для завершения.Это имитирует пользователя, который печатает лучше, чем вставка полной строки текста сразу (что больше похоже на то, как пользователь копирует и вставляет текст в поле).
Мы вводим первый символ с помощью typeText () и оставшиеся символы с typeTextIntoFocusedView () , потому что typeText () выполняет нажатие на представление перед вводом, чтобы принудительно переключить представление в фокус, если представление уже содержит текст,нажатие может поместить курсор в произвольную позицию в тексте.
private void typeInputIntoTextView(int textViewId, String text) {
if (0 != text.length()) {
Espresso.onView(ViewMatchers.withId(textViewId)).perform(ViewActions.typeText(text.substring(0, 1)));
for (int i = 1; i < text.length(); i++) {
Espresso.onView(ViewMatchers.withId(textViewId)).perform(ViewActions.typeTextIntoFocusedView(text.substring(i, i + 1)));
}
}
}