查看当前屏幕中的所有 XCUIElement

View all XCUIElements in current screen

在 UI/Automation 测试中使用 Xcode 7,有没有办法在应用程序屏幕上列出所有 XCUI 元素?就像在树或列表中,甚至在 Xcode UI 中?我可以使用点击记录被测应用程序的测试,但是当我转到 运行 测试时,它失败了。它失败了,因为它无法从生成的代码中找到 XCUI 元素。

您可以使用 UI 调试元素的状态,

XCUIElement.debugDescription

它 returns UI 以 html 格式查看的快照,可以很好地查看 UI 元素状态以及元素类型等属性(例如 textField,按钮)、聚焦、启用和值等特征,例如 placeholderValue。

您还可以使用 accessibilityInspector 应用查看视图上 UI 元素的辅助功能属性,并验证元素的辅助功能属性设置是否正确。

调查视图的另一个方便的工具是新的层次结构查看器,当您在测试代码中启用断点时,可以在记录期间从调试控制台工具栏或调试导航器过滤器调用它。

Xcode 7 在 Report Navigator 下还有一个很好的测试报告,可以帮助您深入了解测试失败的确切原因。例如

UI 测试 Activity:

Assertion Failure: Asynchronous wait failed: Exceeded timeout of 10 seconds, with unfulfilled expectations: "Expect predicate `exists == 1` for object "Logout" Button".

希望对您有所帮助。

您可以在 Xcode 层级调试器中查看它。

来自Apple Docs

To enter the view debugger, run your app in Xcode and click the Debug View Hierarchy button in the debug bar.