Xcode 11 XCUITest无法获取匹配的快照:获取主窗口kAXErrorServerNotFound时出错

在Xcode 11中构建我的应用并运行我的XCUITests套件后,由于以下原因,我遇到了许多随机失败。

无法获取匹配的快照:获取主窗口kAXErrorServerNotFound时出错

无论我将超时时间增加多长时间,问题都会间歇性地弹出。 snapshotting UI层次结构似乎有问题。我们的测试始终在Xcode 10中通过。

我已经重新安装了Xcode。删除了所有模拟器。清除派生数据。修改的超时。从Xcode 11.1升级到Xcode 11.2.1。

谢谢!

buguizebinggan 回答:Xcode 11 XCUITest无法获取匹配的快照:获取主窗口kAXErrorServerNotFound时出错

我在Xcode 11.3中运行简单的UITest时遇到匹配问题。要使其正常工作,我必须首先粘贴:XCUIApplication().activate()XCUIApplication().launch()

,

我不时在Xcode 11.1中遇到这个问题。我观察到该问题在等待UI元素时发生,特别是在测试过程中显示了Web视图。问题发生时,我使用XCUIElement.waitForExistence(timeout:)或期望使用NSPredicate(format: "exists == true")。当我更改为对NSPredicate(format: "hittable == true")使用期望值时,问题似乎已经消失,但我不知道为什么。这2个属性之间的区别在于hittable仅检测屏幕上的元素,而exists检测屏幕外的元素,例如表视图的屏幕外单元。

expectation(for: NSPredicate(format: "hittable == true"),evaluateWith: element,handler: nil)
waitForExpectations(timeout: 60,handler: nil)
,

我在Xcode 11中也遇到了同样的问题,并且意识到停止测试时(或者由于某种原因导致测试崩溃)测试运行程序并没有被杀死。再次运行测试将产生一个新的测试运行程序,那时我有两个运行程序试图与同一个应用程序进行交互,从而导致这个非常奇怪的错误。

为了证明我做了以下事情:

  1. 创建了一个在文本视图中键入长文本的UI测试
  2. 运行测试,并在文本视图中有几句话时手动将其停止
  3. 在模拟器中手动打开应用(不是通过运行测试)
  4. 观察到即使没有运行测试,文本视图中也会出现随机字符。

解决方法是退出并重新打开模拟器,以确保所有进程都被杀死。 希望这能解决您的问题

,

我在XCode 11上遇到了类似的问题。 事实证明,在允许它在多个页面中具有相同的可访问性标识符之前。 但是现在使用新的模式化Presentation样式。您应该在页面内使用不同的标识符,以避免冲突。

,

我使用不同的机器。我的较旧的Mac经常遇到此错误。我的猜测是较旧的Mac没有正确运行某些XCUITests所需的内存。

,

如果您使用的是 fastlane,可以使用以下车道轻松解决:

# Unit tests

  lane :tests do
    clear_derived_data
    scan(
      workspace: "AppTest.xcworkspace",devices: ["iPhone 8"],# it can be with the iPhone that has your VM
      force_quit_simulator: true,reset_simulator: true,reinstall_app: true,scheme: "AppTest"
    )
  end

理论上,您必须重置模拟器并重新安装应用。

快乐编码

本文链接:https://www.f2er.com/3141379.html

大家都在问