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

Swift 运行UI测试时无法捕获视图层次结构,swift,xcode,xctest,xcode-ui-testing,Swift,Xcode,Xctest,Xcode Ui Testing,通过UI测试目标运行应用程序时,是否可以查看UI层次结构 我看到一个白色屏幕,上面写着“无法捕获视图层次结构。请查看控制台日志以获取更多信息”在测试运行时,可以通过打印应用程序的调试说明来查看UI视图层次结构(又称元素子树) print(app.debugDescription) 重要注意事项:有时视图层次结构在打印时是一个“落后”视图,因为它使用缓存的层次结构。要解决此问题,只需在打印调试说明之前执行一项操作,该操作将触发视图层次结构的新快照。您遇到问题,因为您试图调试错误进程的视图层次结构

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

我看到一个白色屏幕,上面写着“无法捕获视图层次结构。请查看控制台日志以获取更多信息”

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

print(app.debugDescription)

重要注意事项:有时视图层次结构在打印时是一个“落后”视图,因为它使用缓存的层次结构。要解决此问题,只需在打印调试说明之前执行一项操作,该操作将触发视图层次结构的新快照。

您遇到问题,因为您试图调试错误进程的视图层次结构。在UI测试中,有两个过程。第一个是UI测试运行程序,第二个是您的应用程序。两者都已连接,但默认情况下,“调试”视图正在处理第一个进程,该进程不是应用程序。并且您不能拥有跑步者的视图层次结构。因此,这一信息: 请注意所选的流程

启动UI测试时,您可以将此选择更改为应用程序本身,并点击“调试视图层次结构”按钮,该按钮将成功捕获您的应用程序:

不过这有点棘手。运行程序进程仍处于活动状态,即使处于查看调试模式,也会终止/重新启动应用程序。我只能在测试单个测试方法时捕获层次结构。
您可能需要放置一些等待的代码来降低测试执行速度,以便有时间点击“调试视图层次结构”按钮。

是的,但注意同样的事情。我正在寻找一种在运行UI Testin Xcode 9 beta 4时使用View UI Hierarchy工具的方法,我运行了正确的进程,但在调试macOS应用程序目标时仍然会遇到相同的错误<代码>无法捕获视图层次结构。详细信息:日志标题:数据源表达式执行失败。日志详细信息:错误评估表达式“(id)[[DBGTargetHub sharedHub]performRequestWithRequestInBase64:”执行被中断,原因:EXC\u错误访问(代码=2,地址=0x7fff5f3ffff8)。进程已返回到表达式评估前的状态。”我认为这是一个错误,我使用的是Xcode版本10.2.1,我发现在您切换到正确的进程后,再次按下View Debugger Hierarchy(查看调试器层次结构)按钮似乎可以做到这一点!