如何关闭应用程序崩溃时出现的系统对话框?

时间:2019-06-04 13:41:49

标签: swift xcode xctest xcuitest

我正在使用xcuitest框架来自动化Mac应用程序。崩溃后再次打开该应用程序时,出现系统对话框。我想以编程方式处理对话框。但是对话框显示在进程“ UserNotificationCenter”下,而不是被测应用程序下。在这种情况下如何处理警报?

2 个答案:

答案 0 :(得分:1)

您有两个选择:

  1. 使用InterruptionMonitordocumentationuse-case)。这个 但是这种方法有点旧,我发现它不适用于 所有对话和情况。
  2. 创建一个方法,该方法将等待某些常规应用程序的按钮。如果在应用启动后该应用的按钮(或选项卡栏或其他类似的XCUIElement)可见且可命中,则可以继续进行测试,否则,您可以等待UserNotificationCenter对话框的按钮并通过其按钮进行识别和点击字符串/位置。

我正在使用第二种方法,它的效果比InterruptionMonitor好得多。但这实际上取决于您的应用布局和用例。

答案 1 :(得分:1)

您应该能够避免它一开始就出现。像这样:

defaults write com.apple.CrashReporter DialogType none