Android Espresso WebView webClick () и webKeys () не вызывают событие размытия в поле ввода - PullRequest
1 голос
/ 24 сентября 2019

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

Похоже, webKeys () просто вводит некоторый текст, а webClick () просто вызывает событие клика.Вероятно, поэтому фокус никогда не меняется, а событие размытия никогда не вызывается.Когда я сам физически нажимаю на поле ввода, событие запускается, и я также вижу курсор ввода Android.Когда тестовый пример запущен, я не вижу курсора, когда текст вводится в поля ввода.

Есть ли способ программно вызвать событие размытия или установить фокус на элемент в WebView с помощью Espresso?

Это код, который я использую для вставки текста.

public static void insertText(String label, String content)
{
    onWebView().withElement(findElement(Locator.XPATH, "//div[preceding::span[.='" + label + "']]/input")).perform(clearElement()).perform(webClick())
               .perform(webKeys(content));
}

Редактировать: Добавлены соответствующие зависимости.

implementation "androidx.test.espresso:espresso-idling-resource:3.2.0"
androidTestImplementation "androidx.test.espresso:espresso-core:3.2.0"
androidTestImplementation "androidx.test.espresso:espresso-intents:3.2.0"
androidTestImplementation "androidx.test.espresso:espresso-web:3.2.0"
androidTestImplementation "androidx.test.espresso:espresso-contrib:3.2.0"
...