模拟 iOS 屏幕键盘上的“Go”、“Next”按钮按下以进行 xcode 测试

Posted

技术标签:

【中文标题】模拟 iOS 屏幕键盘上的“Go”、“Next”按钮按下以进行 xcode 测试【英文标题】:Simulate "Go", "Next" button press on iOS onscreen keyboard for xcode test 【发布时间】:2020-07-20 21:06:46 【问题描述】:

使用XCUIApplication 编写一些单元测试。

我们进行了可访问性测试,以确保如果用户输入了有效的用户名和密码,则单击屏幕键盘上的“开始”按钮会登录。

我知道像typeText("\r") 这样的功能可以模拟Return 的键盘按下,但我不确定这是否是“Go”的合理替代品。

此外,我们需要测试在用户名字段上单击“下一步”会将您带到其下方的密码字段。

目前我们正在物理设备上手动执行这些测试,但希望将它们自动化。

有没有办法明确告诉 xcode 模拟来自 ios 屏幕键盘的“Go”和/或“Next”点击?

XCUIApplication().keypress("iOSGO") 或类似的东西。

-或-

这些按钮是否只是在幕后传输ReturnTab 按键事件,因此typeText("\r")typeText("\t") 可以作为可接受的替代品。

【问题讨论】:

【参考方案1】:

这些按钮可以在键盘上配置为显示不同的显示而不是“返回”。

查看iOS keyboard with "Go" button instead of return了解更多信息。

你的第二个选项是可靠的,但你应该只使用“/r”而不应该需要“/t”

【讨论】:

唯一需要注意的是“Next”和“Go”是完全不同的动作。一个应该将您从第一个文本框带到第二个文本框,另一个应该尝试让您登录。链接很有帮助,但问题的核心归结为:Does ("Go" == "\r") 和("下一个" == "\t")

以上是关于模拟 iOS 屏幕键盘上的“Go”、“Next”按钮按下以进行 xcode 测试的主要内容,如果未能解决你的问题,请参考以下文章

数组模拟单向链表例题(UVa11988)

如何在 Flutter 测试中模拟 TextField 上的按 ENTER

处理 iOS 虚拟键盘“上一个”、“下一个”、“Go/Enter”按钮

安卓通过adb 模拟键盘输入、点击屏幕、滑动、按键

golang实现模拟键盘按键

HTML:为啥Android浏览器在键盘上显示“Go”而不是“Next”?