【问题标题】:Access app.buttons in Xcode UITest without having any usable text for referencing.访问 Xcode UITest 中的 app.buttons,无需任何可用文本进行引用。
【发布时间】:2016-09-22 19:03:21
【问题描述】:

所以我试图让fastlane screenshot 工作,这意味着让 Xcode UITest 工作......我构建了一个 Ionic 应用程序,它使用 3 条符号作为滑出按钮,而这种事情对于 webapps 来说是微不足道的.

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

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

当它尝试运行保存的 UI 命令时,它显然会阻塞并导致测试崩溃……除了使用它的标签文本之外,还有其他方法来表示按钮吗?

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

【问题讨论】:

    标签: ios xcode xcode-ui-testing webpage-screenshot fastlane


    【解决方案1】:

    您可以给按钮一个 AccessibilityIdentifier,这是一个只能由 UI 测试读取的属性,并且不需要任何可读的文本。

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

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

    为此,您需要在代码(例如button.accessibilityIdentifier = "slide_out")或情节提要(在属性下;参见屏幕截图)中显式设置accessibilityIdentifier/accessibilityLabel。

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

    【讨论】:

    • 我几乎不想这么说,但事实证明真正的问题是我需要在测试脚本中引入延迟......我觉得我需要把它放在这里以防其他人运行遇到同样的问题,但再次感谢有趣的信息!
    • 不要说出来。相反,请查看 Joe Masilotti 的 XCUITest 自定义助手:masilotti.com/xctest-helpers 他找到了一个非常好的解决方案,可以在测试脚本中引入延迟。
    【解决方案2】:

    提示: 万一有人试图从 IONIC 应用程序中访问按钮,却不知道如何在该 IONIC .html 和 .ts 文件中编写“accessibilityIdentifier”...

    按钮元素中的
    aria-label="myLabel"
    可以解决问题; id、name 等不要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      相关资源
      最近更新 更多