我如何在 xctest 中找到标签或静态文本的层次结构?

Posted

技术标签:

【中文标题】我如何在 xctest 中找到标签或静态文本的层次结构?【英文标题】:How i can find the hierarchy in xctest for a label or static text? 【发布时间】:2016-07-26 11:56:33 【问题描述】:

您好,我需要测试窗口中存在的静态 txt,以查看是否存在文本我使用了以下代码,

 XCTAssert(mailwindow.staticTexts["Sign In to access Accounts"].exists)

现在我需要测试文本的层次结构。

示例登录以访问帐户应出现在 “hello world” 文本之后。

【问题讨论】:

【参考方案1】:

听起来您想测试定位而不是层次结构。 XCTest UI 测试更倾向于功能测试,而不是检查布局。

从层次上讲,您可以检查父视图是否包含两个文本元素,但这不会断言它们在屏幕上出现的顺序。

可以根据每个元素的边框位置进行断言,但是如果你改变了屏幕的布局,你可能需要重写测试。

let firstText = app.staticTexts["accessAccountsLabel"]
let secondText = app.staticTexts["helloWorldLabel"]
XCTAssert(firstText.frame.origin.x < secondText.frame.origin.x)
XCTAssert(firstText.frame.origin.y < secondText.frame.origin.y)

【讨论】:

以上是关于我如何在 xctest 中找到标签或静态文本的层次结构?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有静态文本的情况下在 XCTest 中快速测试 Webview 是不是加载

如何创建一个在 XCTest 中定义按钮或文本字段的 swift 文件?

如何在 XCTest 中设置 UItextfield 文本

XCTest Objective C Xcode8.1如何提取任何按钮或导航栏的标签/值/名称

XCTest:如何检查异步元素是不是存在

XCTest 找不到文本字段