XCTest:有没有办法在 UI 测试中通过 ID 查找任何类型的视图?

Posted

技术标签:

【中文标题】XCTest:有没有办法在 UI 测试中通过 ID 查找任何类型的视图?【英文标题】:XCTest: Is there a way to find a view of any type by ID in UI tests? 【发布时间】:2019-04-14 17:40:08 【问题描述】:

在 XCTest 中有一种方法可以按类型获取所有 UI 元素,然后按可访问性标识符进行过滤,例如:

app.buttons[someID]

但是如果我不知道视图的类型怎么办?如果我正在寻找 UIView,我可以这样写:

app.otherElements[someID]

但这不包括 UIButton 视图。

我可以通过连续调用all the methods 来实现这一点(staticTexts、textViews、按钮、otherElements 等),但有些东西告诉我它的性能不是很好,因为类型列表很大。

有通用方法吗?

【问题讨论】:

【参考方案1】:

您可以使用descendants(matching:) 查找任何类型的视图。

let app = XCUIApplication()
let element = app.descendants(matching: .any)["someID"]

【讨论】:

以上是关于XCTest:有没有办法在 UI 测试中通过 ID 查找任何类型的视图?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 AnroidUIAutomator 在 Appium 中通过部分资源 ID 查找 Android 元素?

在 XCTest UI 测试中单击 NSToolbarItem

使用 XCTest 运行测试时有没有办法发出警告?

快速使用 XCTest 时不会出现编译错误

在 UI 测试中访问 MPMoviePlayerController 的播放状态

如何在 XCTest 框架的 UI 测试中测试数据?