Gibt es eine zuverlässige Möglichkeit, Espresso darauf zu warten, dass WebViews vollständig geladen werden?Lassen Sie Espresso warten, bis WebView den Ladevorgang beendet hat
Ich habe den Ansatz beschrieben here versucht, fand es aber unzuverlässig. Es hat auch andere Nachteile:
- Es beruht auf dem WebChromeClient WebView ersetzen. Ein vorhandener WebChromeClient kann nicht umgebrochen werden, da WebViewrt aus irgendeinem Grund keine getWebChromeClient() -Methode hat.
- Es erfordert eine bestimmte WebView-Instanz. Daher muss ich jedes Mal, wenn ich eine Aktivität mit einem WebView starte, die WebView-Instanz abrufen und eine neue WebviewIdlingResource dafür registrieren.
Ich hoffe, jemand hat eine Lösung ohne diese Nachteile. Ich hatte gehofft, dass das espresso-web-Paket eine Lösung bieten könnte, aber es scheint nichts mit dem Laden zu tun zu haben.
Ich habe dies gefunden: https://github.com/awslabs/aws-device-farm-sample-app-for-android/blob/a8aa3218fda2a0c72b039f371a1b5d12e522051f/app/src/androidTest/ java/com/amazonaws/devicefarm/android/referenzapp/IdlingResources/WebViewIdlingResource.java – piotrek1543