Espresso - как переключить режим ввода типаText на английский или другой язык

81
5

Я использую Espresso для реализации моей системы автотестов приложений. Но в некоторых тестовых сценариях, которые я разработал, я обнаружил, что мой тест всегда терпит неудачу, и основная причина заключается не в моих тестовых кодах на кодах реализации функций. Основная причина заключается в режиме методов ввода android, иногда в китайском режиме ввода, а мой текст ввода - английский, после чего входное значение не будет выполнено. Поэтому я хочу знать, как я могу переключить текущий метод ввода типа TextText с китайского на английский или как я могу гарантировать, что режим метода ввода - английский без ручной настройки?
Я считаю, что это важное требование, потому что, когда мы поддерживаем несколько языков в наших приложениях, нам нужна эта функция для автоматического переключения на нужный язык во время тестирования.
Ниже приведены мои коды, у них нет никаких проблем, если режим ввода по умолчанию - английский.


    onView(withId(R.id.entryWordInput))
.perform(typeText(entryWord), closeSoftKeyboard());
onView(withId(R.id.OkButton))
.perform(click());

Спасибо заранее.

спросил(а) 2016-04-03T10:10:00+03:00 4 года, 6 месяцев назад
1
Решение
72

Использование Espresso для изменения языка режима ввода невозможно. Вам нужно использовать его с другой платформой тестирования пользовательского интерфейса Google под названием uiatomator.


Пожалуйста, взгляните на мой ответ на аналогичную тестовую проблему: Тест эспрессо для уведомления о появлении


В тестовой среде Espresso UI не отображается больше фактического представления. Я сомневаюсь серьезно, что вы можете проверить любое уведомление с помощью Espresso.

Для этого используйте еще одну тестовую инфраструктуру Googles uiautomator, который описывается как:

UI Automator - это платформа для тестирования пользовательского интерфейса, подходящая для тестирования пользовательского интерфейса для разных приложений в системе и установленных приложениях.

Здесь вы найдете, как использовать его с Espresso: http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

Больше информации:

Посетите также: Android-тестирование: UIAutomator vs Espresso


Итак, если вы хотите изменить язык режима ввода, попробуйте использовать uiatomator для изменения системных настроек Android и Espresso для тестов приложений.


Надеюсь, что это поможет

ответил(а) 2016-05-23T22:56:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема