Wenn UI Tests in Xcode (7.2 und 7.3), meine Tests scheitern manchmal mit einem eher allgemeinen Fehlern:Assertionsfehler: UI Testing Ausfall - Ausfall Abrufen Attribute für das Element
Assertion Failure: UI Testing Failure - Failure fetching attributes for element
Ich neige dazu, Erhalten Sie diesen Fehler beim Aufruf .hittable
oder .tap()
auf ein Element, aber ich kann nicht sagen, warum. Ich habe überprüft, dass die Elemente, mit denen ich es zu tun habe, alle Einstellungen für die Barrierefreiheit korrekt eingerichtet haben und dass alle Containeransichten, in denen sie sich befinden, keine Zugriffsmöglichkeiten haben. Leider scheint dies das Problem nicht zu lösen.
Das Konsolenprotokoll zeigt:
UI Testing Failure - Failure fetching attributes for element <XCAccessibilityElement: 0x7e68ae50> pid: 89032, context: 4D9272C7-3024-4062-B0FA-E16EF426F17A, payload: {
pid = 89032;
"uid.elementID" = 1432;
"uid.elementOrHash" = 2125772976;
}: Error Domain=XCTestManagerErrorDomain Code=13 "Error copying attributes -25202" UserInfo={NSLocalizedDescription=Error copying attributes -25202}
Ich habe um versucht, die Suche und schaffte es bereits angemeldet worden zu finden, aber es erscheint 7.3 keine aktuelle Lösung (radar link) auch für Xcode zu sein.
Es scheint, dass manchmal, wenn ich den Simulator/das Gerät neu starten, dieser Fehler nicht passiert, aber das ist keine nette Lösung.
Ich hatte diese auch. Stellen Sie sicher, dass Sie die Erwartungen richtig festlegen, damit Ihre Ansichtshierarchie den Status erreicht, den Sie testen möchten. Dies ist äußerst wichtig beim Testen von asynchronen Ereignissen (d. H. Tippen auf eine Schaltfläche, die nach einem Netzwerkanruf eine Rückmeldung gibt). –
Dies ist Apples Bug, den Sie auch in Apples [link] (https://forums.developer.apple.com/thread/6437) anzeigen können. Hier schlagen einige Leute vor, dass eine Lösung für Sie arbeiten könnte. Wenn eine Lösung für Sie nicht funktioniert, melden Sie Apple einen Fehler. Wir können in einer solchen Situation keine Lösung finden oder finden. – iMHitesh
Ab Xcode 9 können Sie 'waitForExistence (timeout: TimeInterval)' verwenden, um auf die Existenz dieses Elements zu warten. – onmyway133