Xcode UI Test UIKeyInput typeText

你说的曾经没有我的故事 提交于 2019-12-07 04:13:56

问题


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.


回答1:


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



回答2:


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".



来源:https://stackoverflow.com/questions/35740068/xcode-ui-test-uikeyinput-typetext

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!