Zugriff auf React Elements mit Appium for Automation

9

Ich habe Appium benutzt, um eine hybride Android-Anwendung zu testen, die einen häufigen Übergang zwischen NATIVE- und WEBVIEW-Kontext enthält. Diese Webviews werden mit React Libraries entwickelt.

  

Nach meinem Verständnis und korrigieren Sie mich, wenn ich falsch liege, Wie Reagieren funktioniert   ist, dass es ein virtuelles DOM unter Verwendung des realen DOM erstellt und ein generiert   dynamischer Klassenname, der denen im Javascript entspricht. Die Diff   Algorithmus bietet eine effiziente Möglichkeit, die Objekte zu unterscheiden   Verwenden Sie diese automatisch generierten Klassennamen.

Das Problem, mit dem ich konfrontiert bin, ist, dass ich mit Appium nicht auf die Elemente dieser Webansicht zugreifen kann, indem ich eine der Methoden findElementsBy verwende. Der Klassenname, der nur der für den UIAutomator sichtbare Parameter ist, auf den wir uns wirklich verlassen konnten, wird von React für jeden neu erstellten Build geändert.

  
  1. Gibt es eine Möglichkeit, diese automatisch generierten Klassennamen mithilfe der React-Bibliothek selbst in einige sinnvolle Namen umzuwandeln?
  2.   

Die Chrominspektion stellt die Details der Webansicht in meiner Anwendung wie folgt dar:

%Vor%
  
  1. Irgendwelche Ideen, wie man mit Appium für diesen Fall auf die eigentlichen DOM-Elemente zugreifen kann?
  2.   

Info: WebView.setWebContentsDebuggingEnabled(true) wird im App-Code festgelegt.

Würde mich auch hier freuen.

    
nullpointer 26.11.2015, 11:47
quelle

1 Antwort

3

Gestützt auf diesen Link: Ссылка

Die Problemumgehung für dieses Problem: verwenden Sie in Ihren Ansichten barrierefreies und zugänglichesLabel

DOC auf dem Accessibility Label: Ссылка

Auf meine native Komponente reagieren:

%Vor%

Auf meinem Skript Test:

%Vor%     
RobbyWH 18.05.2016, 09:22
quelle