在 Xcode UITest 中访问 app.buttons,但没有任何可用的文本供参考。

Access app.buttons in Xcode UITest without having any usable text for referencing.

所以我正在尝试让 fastlane screenshot 工作,这意味着让 Xcode UI 测试工作...我构建了一个 Ionic 应用程序,它使用 3 条符号作为滑出按钮和类似的东西对于 webapps 来说是微不足道的。

但是,当我使用 uITest 记录时,它会误解按钮并最终像这样表示

app.buttons[""].tap()

当它尝试 运行 已保存的 UI 命令时,它显然会因此而窒息并使测试崩溃...除了使用其标签文本之外,还有其他方法可以表示按钮吗像那样?

它似乎可以使用 ID 或 NAME 作为按钮标识符,但我还没有在任何地方找到解决这个问题的方法。

您可以为按钮提供一个 AccessibilityIdentifier,它是一个 属性,只会被 UI 测试读取,并且不需要任何可读文本。

您还可以为按钮提供一个 AccessibilityLabel,这将使使用辅助功能的人能够使用您的按钮,例如屏幕阅读器或其他此类设备。

XCUIElementQuery 可以读取这两个属性,这意味着您将能够使用 app.buttons["slide_out"].tap().

为此,您可以在代码(例如 button.accessibilityIdentifier = "slide_out")或故事板(在属性下;参见屏幕截图)中显式设置 accessibilityIdentifier / accessibilityLabel。

另一方面,如果因为您需要等待元素出现而出现时间问题,我推荐 Joe Masilotti 的博客post 关于 XC 中的自定义助手UI测试:http://masilotti.com/xctest-helpers/

蒂普: 以防万一,有人试图从 IONIC 应用程序中访问按钮,却不知道如何在 IONIC .html 和 .ts 文件中编写 'accessibilityIdentifier' 代码... 按钮元素中的

aria-label="myLabel"
可以解决问题; id, name 等等不要.