XCUITest:自动接收系统警报。需要更细粒度的控制

时间:2017-03-13 21:22:43

标签: ios xcode-ui-testing

我已经读过addUIInterruptionMonitorWithDescription可用于接受/点击系统警报中的特定按钮。在最近尝试了一些测试代码时,我正在做以下事情:

  • 添加照片提醒
  • 添加日历提醒
  • 添加位置提醒。

在模拟器上,我惊讶地发现日历和位置提示自动点击了“允许”按钮。对于照片提示,“不允许”被点击。我的问题是 - 是否不再需要addUIInterruptionMonitorWithDescription了?我尝试使用它来点击对话框,但它没有做任何事情。即使我试图点击警报上的另一个按钮,我也没有看到它正常工作。如何点击系统上的各个按钮提醒她?

1 个答案:

答案 0 :(得分:3)

如果屏幕上有警报,并且没有任何中断处理程序处理它,如果您使用Xcode< 9.1,XCTest将为您解除警告。

要获得对警报的控制,您应该为每个警报创建一个中断处理程序,当(且仅当)处理了处理程序的警报时,从关闭处返回true打算用于。

如果测试尝试了所有警报处理程序或从任何处理程序收到true返回值,并且屏幕上仍有警报,则XCTest将自行处理警报。