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

XCUITest: Auto-Accepting System-Alerts. Need more fine grained control

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

在模拟器上,我惊讶地发现日历和位置提示会自动点击它们的 "Allow" 按钮。对于照片提示,点击了 "Don't Allow"。我的问题是 - 不再需要 addUIInterruptionMonitorWithDescription 了吗?我尝试用它来点击对话框,但它什么也没做。即使当我试图点击警报上的另一个按钮时,我也没有看到它起作用。我如何点击系统上的各个按钮提醒她?

如果屏幕上有警报,并且 none 的中断处理程序处理了它,如果您使用的是 Xcode <9.1.

,XCTest 会为您解除它

要获得对警报的控制,您应该为每个警报创建一个中断处理程序,returning true 从关闭时(并且仅当) 您已经处理了处理程序预期的警报。

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