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

Unable to capture view hierarchy while running UI Tests

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

我得到一个白色屏幕,显示 "Unable to capture view hierarchy. Check the console log for additional information"

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

print(app.debugDescription)

重要说明:有时视图层次结构在您打印时是一个视图 "behind",因为它使用的是缓存层次结构。为了解决这个问题,只需在打印调试描述之前采取一个操作来触发视图层次结构的新快照。

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

启动 UI 测试时,您可以将此选择更改为应用本身,然后点击 Debug View Hierarchy 按钮,这将成功捕获您的应用:

虽然这有点棘手。 runner 进程仍然处于活动状态,并且将 kill/relaunch 您的应用程序,即使它处于视图调试模式。我只能在测试单个测试方法时捕获层次结构。 您可能必须放置一些等待代码来减慢测试执行速度,以便真正有时间点击 Debug View Hierarchy 按钮。