2017-11-27 1 views
0

Ich lerne XCTest Framework. Ich möchte testen, ob das Textfeld numerische Werte akzeptiert oder nicht [was nicht]. Aber XCTest kann das Textfeld nicht finden.XCTest kann kein Textfeld finden

XCUIApplication().textFields["name"].typeText("123") 
XCTAssertEqual(XCUIApplication().textFields["name"].title, "") 

name ist palceholder von Textfeld. Ich habe nur ein Textfeld in dieser Demo-App. Aber der Test schlägt immer in der ersten Zeile des Testcodes fehl und es wird kein Fehler angezeigt.

Hinweis: Ich habe den entsprechenden Code erstellt, damit das Textfeld keine numerischen Werte akzeptiert.

+0

Sie können dies mit einem Komponententest anstelle eines UI-Tests erreichen: https://stackoverflow.com/a/47419707/246895 –

Antwort

1

Wenn Sie ein Element untersuchen möchten, müssen Sie zuerst prüfen, ob es mit einer Kennung erreichbar ist oder nicht. Der Absturz geschieht, weil das System das Textfeld namens "name" nicht finden kann.

Sie müssen eine Kennung für dieses Textfeld festlegen.

yourTextField.accessibilityIdentifier = "myTextField" 

Jetzt können Sie das Textfeld durch die Zeichenfolge "myTextField" get

XCUIApplication().textFields["myTextField"] 

Verwenden Voice over/Accessibility Kontrolleur-Elemente von Etiketten/Werte/Identifikatoren zu überprüfen.