当的Xcode(7.2和7.3) UI测试,我的测试有时会具有相当一般性错误:声明失败:UI测试失败 - 未能取的元素
Assertion Failure: UI Testing Failure - Failure fetching attributes for element
我倾向于在元素上调用.hittable
或.tap()
时出现此错误,但我无法说明原因。我已经检查过我处理的元素都具有正确的可访问性设置,并且它们所在的任何容器视图都没有启用可访问性。唉,这似乎不能解决问题。
控制台日志显示:
UI Testing Failure - Failure fetching attributes for element <XCAccessibilityElement: 0x7e68ae50> pid: 89032, context: 4D9272C7-3024-4062-B0FA-E16EF426F17A, payload: {
pid = 89032;
"uid.elementID" = 1432;
"uid.elementOrHash" = 2125772976;
}: Error Domain=XCTestManagerErrorDomain Code=13 "Error copying attributes -25202" UserInfo={NSLocalizedDescription=Error copying attributes -25202}
我试着摸索和管理,发现它已经被记录,但似乎没有当前解决方案(radar link)甚至的Xcode 7.3。
似乎有时如果我重新启动模拟器/设备,这个错误不会发生,但这不是一个好的解决方案。
我也有那些。确保正确设置期望值,以便您的视图层次结构达到您要测试的状态。在测试异步事件时(即在网络调用之后点击一个提供反馈的按钮),这一点非常重要。 –
这是苹果的错误,你也可以在苹果的[链接](https://forums.developer.apple.com/thread/6437)中显示。这里有些人建议一些解决方案可能适合你。如果有任何解决方案对您不适用,请向Apple报告错误。在这种情况下,我们无法做到或找到任何解决方案。 – iMHitesh
从Xcode 9开始,你可以使用'waitForExistence(timeout:TimeInterval)'来等待这个元素的存在 – onmyway133