How to obtain reference to TextField in UI Tests in Xcode 7
Asked Answered
A

1

15

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?

Amylolysis answered 4/8, 2015 at 5:8 Comment(2)
Which beta are you on?Pilfer
This question was for beta 4; just uploaded to beta 5.Amylolysis
K
39

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")
Koral answered 4/8, 2015 at 6:1 Comment(2)
What if that is in an array, so there are two or more onscreen at once? Is there any way to find one by its current text?Skyros
Are there any way to find by placeholder? without the accesibility identifier?Aaren

© 2022 - 2024 — McMap. All rights reserved.