运行UI测试时无法捕获视图层次结构

时间:2017-04-17 07:11:26

标签: swift xcode xctest xcode-ui-testing

通过UI测试目标运行应用程序时是否可以查看UI层次结构?

我的白屏显示“无法捕获视图层次结构。请查看控制台日志以获取更多信息”

2 个答案:

答案 0 :(得分:6)

您遇到问题,因为您正在尝试调试错误进程的视图层次结构。在UI测试中,有两个过程。首先是UI测试跑步者,第二个是你的应用程序。两者都是附加的,但调试视图默认处理第一个进程,而不是应用程序。并且您不能拥有跑步者的视图层次结构。因此,这条消息: enter image description here 请注意选择了哪个流程。

启动UI测试时,您可以将此选项更改为应用程序本身并点击Debug View Hierarchy按钮,该按钮将成功捕获您的应用: enter image description here

虽然这有点棘手。跑步者进程仍处于活动状态,即使处于查看调试模式,也会终止/重新启动您的应用。我只能在测试单个测试方法时捕获层次结构。 您可能需要放置一些等待代码来减慢测试执行速度,才能真正有时间点击Debug View Hierarchy按钮。

答案 1 :(得分:0)

在测试运行时,可以通过打印应用程序的调试描述来查看UI视图层次结构(也称为元素子树)。

print(app.debugDescription)

重要提示:有时视图层次结构是一个视图"背后"当您打印它时,因为它正在使用缓存的层次结构。为了解决这个问题,只需执行一个操作,在打印调试说明之前触发视图层次结构的新快照。