【问题标题】:Get an element that contains another element with a static text in iOS UITesting在iOS UITesting中获取一个包含另一个带有静态文本的元素的元素
【发布时间】:2018-02-16 15:03:19
【问题描述】:

如何构建查询以通过静态文本获取包含另一个元素的元素。

示例:获取第一个包含带有文本“cool cell”标签的表格单元格

我需要它,因为我有不同的单元格,我想获得一个包含特定文本的单元格。请注意,我有兴趣获取该单元格,因为我需要确保该单元格包含其他元素。目标是确保标题为“I'm a cell”的单元格也有一个带有文本“cool”的标签

【问题讨论】:

  • 您可能需要对视图的子视图执行循环并检查其类型,让我们说它是否包含 UITextFields 或标签或按钮或 textViews,并且它们有任何文本,将此文本和 UIObject 添加到数组中并返回。

标签: ios swift ui-testing


【解决方案1】:

获取第一个包含带有文本“cool cell”标签的表格单元格

怎么样:

let app = XCUIApplication()
app.cells.containing(.staticText, identifier: "cool cell")

如果这还不够,还有一个 containing 的版本需要 NSPredicate

func containing(_ predicate: NSPredicate) -> XCUIElementQuery
func containing(_ elementType: XCUIElement.ElementType, identifier: String?) -> XCUIElementQuery

文档:

返回一个新查询以查找包含符合规范的后代的元素”,这是您所需要的。[...]

【讨论】:

    【解决方案2】:

    如果您对测试感兴趣 或许this library可以帮到你。

    【讨论】:

    • 感谢您的建议,但我想减少项目的依赖并使用本机测试类。
    【解决方案3】:

    如果您不想使用外部库,是否有任何东西阻止您添加新的 UI 测试目标并实现一个测试类,您可以在其中创建一个虚拟数据源并初始化一个单元格数组(由 nib 制成)和然后在那里验证它们?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多