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 将自行处理警报。
我了解到 addUIInterruptionMonitorWithDescription
可用于接受/点击系统警报中的特定按钮。在最近尝试一些测试代码时,我做了以下事情:
- 添加照片提醒
- 添加日历提醒
- 添加位置提醒。
在模拟器上,我惊讶地发现日历和位置提示会自动点击它们的 "Allow" 按钮。对于照片提示,点击了 "Don't Allow"。我的问题是 - 不再需要 addUIInterruptionMonitorWithDescription
了吗?我尝试用它来点击对话框,但它什么也没做。即使当我试图点击警报上的另一个按钮时,我也没有看到它起作用。我如何点击系统上的各个按钮提醒她?
如果屏幕上有警报,并且 none 的中断处理程序处理了它,如果您使用的是 Xcode <9.1.
,XCTest 会为您解除它要获得对警报的控制,您应该为每个警报创建一个中断处理程序,returning true
从关闭时(并且仅当) 您已经处理了处理程序预期的警报。
如果测试尝试所有警报处理程序或从任何处理程序收到 true
return 值,并且屏幕上仍有警报,XCTest 将自行处理警报。