XCTest 中查询的父母和兄弟姐妹(UI 测试)

Posted

技术标签:

【中文标题】XCTest 中查询的父母和兄弟姐妹(UI 测试)【英文标题】:Parents and siblings in query in XCTest (UI testing) 【发布时间】:2016-03-02 14:12:54 【问题描述】:

在其他语言中也可以进行这样的查询:

class:B text:"text_I_looking_for" sibling class:C

class:B text:"text_I_looking_for" parent class:A child class:C

如何在 XCTest 中执行这样的查询?我需要找到元素 1.检查它是否存在 2. 点击它。

PS 我知道 XCTest 的语法很简单,但在某些情况下它还不够。也许可以使用 NSPredicate 语法?

【问题讨论】:

什么?真的不清楚你在问什么。 XCTest 用于自动化手写测试,而不是运行查询。您能否添加一个示例,说明您正在尝试使用其他编程语言做什么? 听起来他们在谈论新的 GUI 测试,它确实使用查询来获取 UI 元素。 【参考方案1】:

今天我发现 Xcode 7.3 正在使用这种机制:

XCUIApplication().otherElements.containingType(.Image, identifier:"circle").staticTexts["3"]

此查询将返回值为“3”的 staticText 对象。 该对象以“otherElement”为父对象,以 id 为“circle”的“Image”为兄弟对象。

【讨论】:

【参考方案2】:

.containType 在 Swift 3 中已过时。您可以改用 .containing(我在 Xcode 13 上):

XCUIApplication().otherElements.containing(.image, identifier: "circle").staticTexts["3"]

【讨论】:

以上是关于XCTest 中查询的父母和兄弟姐妹(UI 测试)的主要内容,如果未能解决你的问题,请参考以下文章