Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何关闭应用程序崩溃时显示的系统对话框?_Swift_Xcode_Xctest_Xcuitest - Fatal编程技术网

Swift 如何关闭应用程序崩溃时显示的系统对话框?

Swift 如何关闭应用程序崩溃时显示的系统对话框?,swift,xcode,xctest,xcuitest,Swift,Xcode,Xctest,Xcuitest,我正在使用xcuitest框架来自动化mac应用程序。当应用程序崩溃后再次打开时,我会看到系统对话框。我希望以编程方式处理该对话框。但是对话框出现在进程“UserNotificationCenter”下,而不是在测试中的应用程序下。在这种情况下,我如何处理警报?您有两个选项: 使用中断监视器(,)。这 然而,这种方法有点陈旧,我发现,它不适合任何人 所有对话和情景 创建一个方法,它将等待一些常规应用程序的按钮。如果应用程序的按钮(或选项卡栏或其他类似XUIElement)在应用程序启动后可见且可

我正在使用xcuitest框架来自动化mac应用程序。当应用程序崩溃后再次打开时,我会看到系统对话框。我希望以编程方式处理该对话框。但是对话框出现在进程“UserNotificationCenter”下,而不是在测试中的应用程序下。在这种情况下,我如何处理警报?

您有两个选项:

  • 使用中断监视器(,)。这 然而,这种方法有点陈旧,我发现,它不适合任何人 所有对话和情景
  • 创建一个方法,它将等待一些常规应用程序的按钮。如果应用程序的按钮(或选项卡栏或其他类似XUIElement)在应用程序启动后可见且可点击,则可以继续测试,如果不可见,则可以等待
    UserNotificationCenter
    对话框的按钮,并按其字符串/位置识别并点击它
    我使用的是第二种方法,它比
    InterruptionMonitor
    工作得更好。但这实际上取决于你的应用程序布局和用例。

    你应该能够避免它出现在第一位。比如:

    defaults write com.apple.CrashReporter DialogType none
    

    您是否尝试为此使用
    InterruptionMonitor
    ?是的。InterruptionMonitor似乎可以工作,但不知何故它使测试运行的时间更长。