Ich habe einen Navigationssteuerungsstapel, in dem eine der Ansichten einen dynamischen Titel hat.
Die View-Controller und ihre Titel lauten wie folgt:
%Vor%Da der iOS UINavigationController den Text der Schaltfläche "Zurück" als Titel des vorherigen Bildschirms festlegt, zeigt die Schaltfläche "Zurück" auf dem Detailbildschirm "& lt; NN Elemente" an, wobei NN eine sich dynamisch ändernde Zahl ist.
Ich versuche, einige iOS-UI-Automatisierung zu machen, aber die Zugänglichkeit Label / ID der Zurück-Taste wird vom System auf den Button-Text gesetzt. Dies bedeutet, dass sich die Beschriftung der Schaltfläche "Zurück" auf dem Detailbildschirm dynamisch ändert und ich sie nicht in meinen Skripts finden kann!
Wenn ich einen Verweis auf das UIBarButtonItem bekommen könnte, dann könnte ich einfach% code% oder accessibilityLabel
vom Code als eine feste Zeichenfolge festlegen, aber ich kann nicht herausfinden, wie das geht?
Alle Sachen, die ich gefunden habe, verweisen Einstellung die Zurück-Schaltfläche auf eine benutzerdefinierte Schaltfläche über accessibilityIdentifier
oder ähnlich, aber wenn ich diese Eigenschaft lese, ist es self.navigationItem.backBarButtonItem
. Ich konnte nicht herausfinden, wie man Zugriff auf das Standardelement erhält, ohne es zu ersetzen. Ich würde es vorziehen, den Knopf wenn möglich nicht zu ersetzen
Das nervte mich auch. Ich habe Xcode 7-UI-Tests geschrieben und versucht, eine generelle Methode zu finden, auf die Zurück-Schaltfläche zu tippen, ohne sie durch eine benutzerdefinierte Schaltfläche ersetzen zu müssen.
Im Folgenden habe ich das für Xcode 7 UI Tests gelöst - aber Sie können es möglicherweise auch auf die UI-Automatisierung anwenden.
Ich habe festgestellt, dass (zumindest in Bezug auf Xcode 7 UI Tests) das vom System erstellte Back-Bar-Button-Element aus zwei Buttons besteht. Das Ganze ist eine Schaltfläche mit einem Accessibility-Label für den Titel des Buttons und dann ist der Pfeil auch eine Schaltfläche mit der Accessibility-Bezeichnung "Back".
Solange keine anderen Schaltflächen auf dem Bildschirm vorhanden sind, die als "Zurück" gekennzeichnet sind, kann die Zurück-Schaltfläche über die Eingabehilfe "Zurück" aufgerufen werden. Wie im Fall von UI-Tests:
%Vor%Hier bekomme ich den ersten Button, der mit "Back" identifiziert werden kann. In meinem Fall könnte es nur zwei solche Knöpfe geben - den Pfeil oder den ganzen hinteren Knopf selbst (falls der Titel des hinteren Knopfes auch "Zurück" ist). Da beide Schaltflächen im Wesentlichen identisch sind, ist es ausreichend, nur die erste zu finden, die sie findet.
Tags und Links ios uinavigationcontroller uinavigationbar