xcodeswiftxcode7xcode-ui-testinguitest

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


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?


Solution

  • 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")