How to obtain reference to TextField in UI Tests in Xcode 7

Dan picture Dan · Aug 4, 2015 · Viewed 8.9k times · Source

I am trying to use UI tests in Xcode 7 beta. I have a storyboard with two text fields. Both text fields have outlets and different Restoration IDs. I recorded the test but generated code is quite unreadable and it doesn't work:

app.otherElements.containingType(.TextField, identifier:"y").childrenMatchingType(.TextField).elementBoundByIndex(0).typeText("hello")

I also tried the following and will work based on Placeholder text?!?

app.textFields["PlaceholderText"].typeText("hello")

What is the right way to obtain a reference to a TextField in UI tests?

Answer

Ameet Dhas picture Ameet Dhas · Aug 4, 2015

You need to set accessibility identifier in storyboard for that particular textField. Check the image below :

enter image description here

So you can query textField using accessibility identifier like this :

let app = XCUIApplication()
app.launch()

let nameTextField = app.textFields["nameTextField"]
nameTextField.tap()
nameTextField.typeText("Hello John")