During Xcode UI Testing, how do I insertText
for a UIView
that conforms to UIKeyInput
?
I created a CodeInputView
that conforms to UIKeyInput
.
When I record myself manually entering a code, Xcode writes app.typeText("1234")
.
But, when I try to play that back, I get the error UI Testing Failure - Neither element nor any descendant has keyboard focus. And, none of the solutions to that question has worked.
I've found solution for UIKeyInput. Please, use:
app.keys["1"].tap()
app.keys["2"].tap()
app.keys["3"].tap()
app.keys["4"].tap()
// Instead of app.typeText("1234")
The CodeInputView
needs focus before typing text will work. Access the input by either its placeholder text or set the accessibility label manually.
let app = XCUIApplication()
let codeTextField = app.textFields["Your code"]
codeTextField.tap()
app.typeText("1234")
The above assumes the placeholder or accessibility label was set to "Your code".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With