【问题标题】:Getting all the UI elements of the current screen in UI testing or Unit tests在 UI 测试或单元测试中获取当前屏幕的所有 UI 元素
【发布时间】:2020-06-11 09:28:14
【问题描述】:

我是 iOS 新手,正在为屏幕编写 UI 测试用例。问题是,我想编写这样一个测试用例,我想测试特定类型 UIElement 的相同行为(例如,按钮类型的相同行为)。因此,我不想为不同的屏幕编写测试,而是想知道在 XCUI 或任何其他框架中是否有某种方法可以让所有 UIElement 以某种数据结构出现在屏幕上。 谢谢

【问题讨论】:

  • 你想测试什么?通过 UI 测试,您可以访问一个元素,然后断言您所期望的。因此,例如;如果您有一个包含 accessibilityIds(或标签)的列表,其中包含您希望存在的元素,并且您可以在列表中迭代断言它们的存在。
  • 我正在尝试使用 XCUI 框架为我的示例应用程序实现可访问性测试,并且有多个屏幕,我想避免为每个屏幕编写测试。我只想对所有屏幕进行一次测试。
  • 你如何定义每个屏幕应该有哪些元素?例如;如果你有一个按钮标题列表,你可以像app.buttons["button1"]一样断言它们的存在,否则你不能迭代app.buttons

标签: ios swift xcode unit-testing xcode-ui-testing


【解决方案1】:

您可以使用snapshot() 方法获取此类数据(元素、它们的标签、类型和其他属性)。你会得到一棵XCUIElementSnapshot 的树。此外,您可以获得字典表示。

从这里开始阅读文档

https://developer.apple.com/documentation/xctest/xcuielementsnapshotproviding

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多