如何在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模拟器上模拟软键盘点击?的主要内容,如果未能解决你的问题,请参考以下文章

用于 XCUITest 的 iOS 模拟器中的强制软件键盘

如何让安卓模拟器显示软键盘?

ios 键盘在弹出后无法点击

排毒:iOS 模拟器如何在键盘上按 Next

如何在 iOS 模拟器上使用某种语言键盘启动 Appium 测试

如何在 iOS 7 上模拟键盘动画以将“完成”按钮添加到数字键盘?