Intereting Posts
Android возвращает данные в предыдущую активность Загрузите файл с Android и покажите прогресс в ProgressDialog Самостоятельный сертификат Android не может быть проверен без предыдущего подключения к Интернету Android – перенаправление на сохранение, если приложение не установлено (запуск с веб-сайта) Использование изображения как GoogleMap Драйвер USB Prestigio Multipad PMP3370B TextView.getSelectionEnd () возвращает значение начального индекса для устройств Samsung Marshmallow 6.0 Открытие URL-адреса с использованием собственного браузера PlayBook из приложения на базе Android Не удалось разрешить класс com.google.android.gms.plus.Plus Android SDK – ошибка aapt: libstdc ++. So.6 не может открыть файл общих объектов LocationListener NETWORK_PROVIDER включен, но onLocationChanged никогда не вызывается Как установить гиперссылку в интерактивном тексте? Android Java Android MVP: что такое Interactor? Как начать другое действие с некоторой задержкой после нажатия кнопки в android? HorizontalScrollView в TabHost добавляет дополнительное пространство на конец

Сделайте Espresso дождаться завершения WebView

Есть ли http://i.imgur.com/gZnURlx.jpggea надежный способ заставить Espresso ждать завершения WebViews?

Я пробовал описанный здесь подход, но нашел его ненадежным. У этого также есть и другие недостатки:

  • Он полагается на замену WebChromeClient WebView. Любой существующий WebChromeClient нельзя обернуть, так как WebViewrt по какой-то причине не имеет метода getWebChromeClient ().
  • Для этого требуется конкретный экземпляр WebView, поэтому каждый раз, когда я запускаю Activity с помощью WebView, я должен получить экземпляр WebView и зарегистрировать для него новый WebviewIdlingResource.

Я надеюсь, что у кого-то есть решение без каких-либо из этих недостатков. У меня были надежды на то, что пакет эспрессо-сети может предоставить решение, но он, похоже, ничего не говорит о загрузке.

Solutions Collecting From Web of "Сделайте Espresso дождаться завершения WebView"

Как вы упомянули, есть эспрессо-надстройка, называемая espresso-web для работы с веб-просмотрами и их контентом.

«Финишная загрузка» – это немного неопределенная концепция. Это будет зависеть от того, что конкретно вам хочется закончить.

Если вы используете onWebView().check(<the you want to finish is in your webview>) который будет возвращен только после загрузки веб-представления, и check прошла успешно.

Espresso-web – это точка входа для работы с WebViews на Android. Он использует Atoms из популярного API WebDriver для интроспекции и управления поведением WebView.

Подобно onData, взаимодействия WebView фактически состоят из нескольких View Atoms. Атом можно рассматривать как ViewAction, автономную единицу, которая выполняет действие в вашем пользовательском интерфейсе. Тем не менее, они должны быть правильно организованы и довольно многословны. Web и WebInteraction обертывают этот шаблон и дают ощущение эспрессо взаимодействовать с WebView.

https://google.github.io/android-testing-support-library/docs/espresso/web/index.html