Ich möchte einen UI-Automatisierungstest schreiben, der sich mit Google anmeldet. Die Webansicht ist in die App eingebettet. Wie kann ich in Earlgrey ein Textfeld oder eine Schaltfläche einer Webansicht auswählen? DankeSuchen von Elementen in einem UIWebView
3
A
Antwort
1
EarlGrey bietet ein großartiges Protokoll der UI-Hierarchie, wenn ein Test fehlschlägt. Ich schlage vor, einen Test zu schreiben, der zur Login-Ansicht navigiert und dann EarlGrey zum Fehlschlagen zwingt. Suchen Sie dann im Protokoll nach den Elementen, die Sie benötigen. Sie können sehen, dass die beiden Elemente sind zugänglich
--<WebAccessibilityObjectWrapper:0x7fbca2422fb0; AX=Y; AX.value='Email'; AX.frame={{72, 145}, {270, 38}}; AX.activationPoint={207, 164}; AX.traits='UIAccessibilityTraitNone'; AX.focused='Y'>
--<WebAccessibilityObjectWrapper:0x7fbca4e82360; AX=Y; AX.value='Password'; AX.frame={{72, 201}, {270, 38}}; AX.activationPoint={207, 220}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'>
aus diesem Protokoll über: Sie sollten sehen, so etwas wie
EarlGrey().selectElementWithMatcher(grey_accessibilityValue("Email"))
EarlGrey().selectElementWithMatcher(grey_accessibilityValue("Password"))
+1
Oder Sie können sogar einen Haltepunkt setzen und dies in gdb einfügen: 'po [GREYElementHierarchy hierarchyStringForElement: [UIApplication sharedApplication] .keyWindow]' – Gautam
Wenn Ihr Webansicht wird in der App eingebettet dann jedes Element, das Sie auswählen müssen sollten haben Sie einen Barrierefreiheitswrapper um ihn herum. Sie sollten in der Lage sein, mit Elementen zu interagieren und regelmäßige EarlGrey-Anweisungen auszuführen. Gibt es eine bestimmte Hierarchie oder einen bestimmten Fall, den Sie behandeln möchten? –
Keine spezifische Hierarchie. Zum Beispiel möchte ich einfach die Schaltfläche "Zulassen" berühren. Versuchte, Matcher 'grey_buttonTitle (@ "Allow") zu verwenden, aber es kann die Schaltfläche nicht finden. Ich bezweifle, dass EarlGrey ein Element in einem UIWebview auswählen kann – sahara108
Beachten Sie, dass 'gray_buttonTitle' nur UIButton-Klassen auswählt,' grey_text (@ "Allow") 'ist hier eine bessere Alternative. – Gautam