Starten der UI Testen Sie mit Xcode auf meinem Projekt, und klicken Sie auf eine Straßensperre.Testen von Xcode-UI So geben Sie Text in benutzerdefinierte Textfelder ein
Es gibt eine Unterklasse von UITextField
mit der Bezeichnung RSCustomTextField
, die einige UI-Anpassungen enthält. Was zu RSSearchHeadView
hinzugefügt wird, das das Textfeld und die Schaltfläche enthält.
So Im nicht in der Lage das Textfeld als app.textfields["Search field"]
seit seiner einer benutzerdefinierten Klasse abfragen, zeigt es als app.otherElements["Search field"]
Es auf searchField.typeText("abc")
abstürzt Fehler angezeigt Weder Element noch ein Nachkomme hat Tastaturfokus..
Auch nach tap()
auf dem Element. Notiz, ich habe auch versucht, Zugänglichkeitsmerkmal für die Unterklasse und das Textfeld als UIAccessibilityTraitSearchField
noch keinen Unterschied zu setzen.
func testSearchIcon() {
let searchField = app.otherElements["Search field"]
searchField.tap()
searchField.typeText("abc")
app.keys["delete"].tap()
XCTAssertFalse(searchDubizzleElement.hittable)
}
Printing debugDescription
auf App gibt die folgende Ausgabe:
Element subtree:
→Application 0x7fc1b3f3aa00: {{0.0, 0.0}, {375.0, 667.0}}, label: 'myappname-masked'
Window 0x7fc1b3f439b0: Main Window, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f55c20: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f43440: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f31830: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f61ff0: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f52820: traits: 8589934592, {{0.0, 0.0}, {375.0, 64.0}}
Other 0x7fc1b3f4e190: traits: 8589934592, {{0.0, 0.0}, {375.0, 64.0}}
Button 0x7fc1b3f3a250: traits: 8589934593, {{5.0, 20.0}, {44.0, 44.0}}, label: 'search icon right'
Other 0x7fc1b3f349b0: traits: 8589935616, {{15.0, 20.0}, {345.0, 39.0}}, label: 'Search field'
Image 0x7fc1b3f3b3b0: traits: 8589934596, {{139.0, 22.0}, {97.0, 30.0}}, identifier: 'logo'
Button 0x7fc1b3f537a0: traits: 8589934593, {{326.0, 20.0}, {44.0, 44.0}}, label: 'your account icon'
CollectionView 0x7fc1b3f32450: traits: 35192962023424, {{0.0, 64.0}, {375.0, 603.0}}
Cell 0x7fc1b3f1e230: traits: 8589934592, {{0.0, 64.0}, {375.0, 50.0}}
......
Ich habe gerade versucht, ein UITextField von der Unterklasse zu einem Storyboard hinzuzufügen und 'debugDescription' zeigt das Element als TextField an. Ist 'RSCustomTextField' wirklich nur eine Unterklasse von UITextField? –
Haben Sie "app.searchFields.element" ausprobiert? – Che
@TomasCamin Sie haben Recht. Es wurde nicht direkt zum View-Controller hinzugefügt. Es befand sich in einer anderen benutzerdefinierten Ansicht mit dem Namen "RSSearchHeadView", in der die benutzerdefinierte Klasse "textField" einfach eine Schaltfläche enthielt. Ich habe die Frage aktualisiert. mein Fehler. Irgendeine Hilfe? – carbonr