XCUITest:自动接受系统警报。需要更细粒度的控制
Posted
技术标签:
【中文标题】XCUITest:自动接受系统警报。需要更细粒度的控制【英文标题】:XCUITest: Auto-Accepting System-Alerts. Need more fine grained control 【发布时间】:2017-03-13 21:22:43 【问题描述】:我读到addUIInterruptionMonitorWithDescription
可用于接受/点击系统警报中的特定按钮。在最近尝试一些测试代码时,我正在执行以下操作:
在模拟器上,我惊讶地发现日历和位置提示自动点击了“允许”按钮。对于照片提示,点击了“不允许”。我的问题是 - 不再需要addUIInterruptionMonitorWithDescription
了吗?我尝试使用它来点击对话框,但它没有做任何事情。即使我试图点击警报上的另一个按钮,我也没有看到它起作用。如何点击系统上的各个按钮来提醒她?
【问题讨论】:
【参考方案1】:如果屏幕上有警报,并且您的中断处理程序都没有处理它,如果您使用的是 Xcode
要获得对警报的控制,您应该为每个警报创建一个中断处理程序,当(且仅当)您已经处理了该处理程序打算用于的警报时,从闭包返回true
.
如果测试尝试了所有警报处理程序或从任何处理程序接收到true
返回值,并且屏幕上仍有警报,XCTest 将自行处理警报。
【讨论】:
谢谢!这很棒。 "如果屏幕上有警报,而您的中断处理程序都没有处理它,XCTest 将为您解除它。" 嗯,是的,我注意到了。这就是依赖无证行为的麻烦......它可能随时改变。我会更新我的答案。以上是关于XCUITest:自动接受系统警报。需要更细粒度的控制的主要内容,如果未能解决你的问题,请参考以下文章
XCUItest addUIInterruptionMonitor 未在 iOS14 模拟器和 xcode 12 上捕获警报
SpringCloud实战(十七)-基于Ribbon动态路由实现:调用链控制/版本控制/灰度发布(粒度更细,可以控制到每一个微服务模块版本的路由)