2015-08-27 7 views
7

Ich möchte ein UIView XCUIElement finden, aber ich kann es nicht finden. Diese UIView wird verwendet, um bestimmte Informationen für den Benutzer anzuzeigen, und ich muss in der Lage sein zu testen, ob es in bestimmten Situationen auf dem Bildschirm ist. Ich habe view.userInteractionEnabled auf YES gesetzt.Swift UI Test Suche nach benutzerdefinierten UIView XCUIElement

Ich habe versucht, 'Aufnahme' zu treffen und es auszuwählen, aber es scheint nicht auswählbar zu sein, da es den Code nicht schreibt, um es zu finden, wenn ich es tippe.

Ich habe versucht, es programmgesteuert zu finden, aber XCUIElementType Any und andere scheinen nicht zu finden, und ich sehe keine geeignetere für View.

Ich habe versucht, Barrierefreiheit im Storyboard zu setzen, aber alle Zugänglichkeit scheint nach dem Ausführen des Komponententests zu verschwinden.

Dies scheint, als sollte es ziemlich einfach sein, so tut mir leid, wenn ich etwas hier verpasst habe.

+0

Verwenden Sie den neuesten Xcode? Beta 6 Ich denke ... Wenn Sie Ihren Code teilen, könnte ich einen Blick darauf werfen. –

+0

Wow, sie veröffentlichen eine neue Version dieser Beta jede Woche, es scheint, nein ich bin auf 5. Ich habe nicht wirklich viel Code zu teilen, da ich nicht weiß, wie es geht; Der ideale Code würde so aussehen wie self.app.xxx.elementBoundByIndex (UInt (0)) wobei xxx Ansichten ist, ähnlich wie man auf die anderen Elemente zugreifen würde – Alex

+0

Haben Sie eine Lösung gefunden? – Tomte

Antwort

0

Soweit ich verstehe, verwendet XCUI Zugänglichkeitsinformationen, um auf Objekte zuzugreifen. In meiner App habe ich eine benutzerdefinierte Ansicht, die sich semantisch wie ein Bild verhält (es zeigt einige grafische Inhalte). Es wurde mit dem Interface Builder eingerichtet, also habe ich es im Storyboard ausgewählt und die folgenden Elemente der Barrierefreiheit aktiviert.

snapshot of interface builder

Andere Elemente meiner Apps sind benutzerdefinierte UIView, der wie Taste fungiert, und in einem anderen benutzerdefinierten uiview gebündelt, so kann ich nicht ihre Zugänglichkeit Eigenschaften von Interface Builder gesetzt. Also habe ich sie in Code gesetzt:

self.accessibilityTraits = UIAccessibilityTraitButton 
    self.accessibilityIdentifier = "commit" 
    self.accessibilityLabel = "Commit" 

mit diesem, Aufnahme-Modus findet alle meine benutzerdefinierten Ansichten sehr schön.

+0

U fehlt ein Punkt, wie Sie auf der uitest Website verwenden. –