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?

shim
  • 9,289
  • 12
  • 69
  • 108
Dan
  • 11,077
  • 20
  • 84
  • 119

1 Answers1

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")
Bhushan B
  • 2,470
  • 4
  • 26
  • 38
  • 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? – Ky - Sep 27 '16 at 12:23
  • Are there any way to find by placeholder? without the accesibility identifier? – Daniel Ramos Aug 25 '22 at 12:33