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:自动接受系统警报。需要更细粒度的控制的主要内容,如果未能解决你的问题,请参考以下文章

vue.config.js更细粒度的配置webpack

如何在我的 MKMapView 中获得更细粒度的跨度

XCUItest addUIInterruptionMonitor 未在 iOS14 模拟器和 xcode 12 上捕获警报

XCUITest 验证 ui 中断处理程序发生

XCUITest 等待可能出现的元素

SpringCloud实战(十七)-基于Ribbon动态路由实现:调用链控制/版本控制/灰度发布(粒度更细,可以控制到每一个微服务模块版本的路由)