如何在IOS模拟器上模拟软键盘点击?
Posted
技术标签:
【中文标题】如何在IOS模拟器上模拟软键盘点击?【英文标题】:How to simulate a soft keyboard click on IOS simulator? 【发布时间】:2016-10-19 17:39:45 【问题描述】:我正在使用 XCTest 测试我的 ios 应用程序。 作为测试用例的一部分,我需要在字段中输入一个数字(不是文本框) 当我记录测试时,当我在模拟器(IPAD/iPhone)上使用软键盘时会生成以下代码
app.staticTexts["0"].tap() //Line 1
app.typeText("23") //Line 2
我执行测试时,在第1行之后弹出软键盘。但是执行第2行时,出现以下错误
UI 测试失败 - 元素和任何后代都没有键盘焦点
我的应用需要安装在 iPad/iPhone 上。所以我只需要让它通过软键盘路线运行。
所以我认为 typeText 不是正确的方法。在IOS模拟器中模拟点击软/虚拟键盘的方法是什么?
【问题讨论】:
执行app.staticTexts["0"].tap()
时,弹出软键盘。在执行此行之前没有软键盘。接下来,如果我在第 2 行引入断点并手动干预以单击软键盘,我会看到正在输入的值。这就是为什么我问是否有办法模拟软键盘点击。
【参考方案1】:
您需要在具有键盘焦点的元素上调用typeText()
,而不仅仅是app
。
如果元素是文本字段,您将找到文本字段元素并在其上调用typeText()
。
let element = app.textFields["myTextField"]
element.typeText("23")
您需要将查询替换为您自己的查询,以查找具有键盘焦点的元素。通常,这将是 UITextField 的后代,但如果您使用自定义视图,则需要使用更自定义的查询。
【讨论】:
以上是关于如何在IOS模拟器上模拟软键盘点击?的主要内容,如果未能解决你的问题,请参考以下文章