Вот простая команда для соответствия текстовому полю и введите переменную name
.Невозможно ввести символы Юникода в Espresso
private final String name = "foo";
onView(withId(R.id.editTextName)).perform(typeText(name));
Он отлично работает в моем приложении с помощью «foo». Однако:
private final String name = "á";
private final String name = "\u00E1";
В обоих этих случаях onView
линия терпит неудачу, обвиняя неспособность найти представление в поле зрения предыдущего занятия по:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: <myappid>:id/listViewAccounts
Кажется, что Espresso не может обрабатывать символы Unicode и не получится если их попросят ввести их. Это работает на AVD с помощью «Английской (США) Android-клавиатуры (AOSP)» или «Английской (США) образца« Мягкая клавиатура ». Последний также сглаживает двойные буквы, что, вероятно, является отдельной проблемой в том, как быстро Espresso входит в них.
Кто-нибудь сталкивался с этим раньше? Это Espresso, или используемая клавиатура, или что-то еще?
Я поменял мягкую клавиатуру Android на US International, которая может долго нажать a
, чтобы получить á
, но Espresso терпит неудачу одинаково.
Update:
Использование á
действительно оставить это в трассировке стека (но \u00E1
не делает):
java.lang.RuntimeException: Failed to get key events for string á (i.e. current IME does not understand how to translate the string into key events). As a workaround, you can use replaceText action to set the text directly in the EditText field.
Может быть стоит просто делать, что, хотя это немного развязаны от того, как реальное взаимодействие с пользователем.
У меня была такая же ошибка, но в моем случае использование кода ключа не помогло. – Vic