Używam Appium do testowania hybrydowej aplikacji na Androida, w tym do częstego przechodzenia między kontekstem NATIVE i WEBVIEW. Te Webviews są tworzone przy użyciu React Libraries.Uzyskiwanie dostępu do elementów reakcji za pomocą Appium do automatyzacji
mojego rozeznania i poprawcie mnie jeśli się mylę, How React Works jest to, że tworzy wirtualny DOM przy użyciu prawdziwego DOM i generuje nazwę klasy dynamicznej odpowiadającej tych w javascript. Model Diff Algorithm zapewnia efektywny sposób różnicowania obiektów przy użyciu tych automatycznie generowanych nazw klas.
Problem jestem stoi to, że za pomocą Appium nie jestem w stanie uzyskać dostęp do elementów z tymi WebView wykorzystaniem dowolnej metody findElementsBy
. Nazwa klasy będąca tylko parametrem widocznym dla UIAutomatora, na którym możemy naprawdę polegać, jest zmieniana przez React na każdym nowym wygenerowanym kompilacji.
- Czy istnieje sposób, aby można było te nazwy klas byłaby generowane automatycznie do pewnych rozsądnych nazw używając React samej biblioteki?
chrome inspect zapewnia szczegóły WebView w mojej aplikacji jako:
<div class="_32f8NoUfyUtNSxo3w4Ptbp" data-reactid=".0.1.$=13:0.0.0">…</div>
- Wszelkie pomysły, w jaki sposób uzyskać dostęp do rzeczywistych elementów DOM za pomocą Appium w tej sprawie?
Info: WebView.setWebContentsDebuggingEnabled(true)
jest ustawiony w kodzie aplikacji.
Byłbym wdzięczny za wszelkie uwagi tutaj.
Czy używasz modułu ładującego do plecaka dla stylów lub jak je komponujesz/kompilujesz? –
@DanielSchmidt: Nie mam dużego kontekstu nad końcem kompilacji widoków. Niedługo poda szczegóły. – nullpointer