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 测试)的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 的 Playwright 中,我如何获取与 ElementHandle 相关的元素(孩子、父母、祖父母、兄弟姐妹)?

如何显示目标的祖父母的兄弟姐妹?

php 显示当前菜单父母当前页面的孩子/兄弟姐妹

查找父母的上一个兄弟姐妹的孩子(其中任何一个)是不是包含特定文本

兄弟组件通信角度6

哪位兄弟姐妹怎么在SAP/ABAP的表BKPF中增加自定义字段怎么做