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

Posted

技术标签:

【中文标题】XCUItest addUIInterruptionMonitor 未在 iOS14 模拟器和 xcode 12 上捕获警报【英文标题】:XCUItest addUIInterruptionMonitor is not capturing alerts on iOS14 simulator and xcode 12 【发布时间】:2020-09-29 19:37:27 【问题描述】:
override func setUp() 
    addUIInterruptionMonitor(withDescription: "App store alert")  (alert) -> Bool in
        alert.buttons.element(boundBy: 0).tap()
        return true
         



func test() 
    functionThatCausesAlertToAppear()
    XCUIApplication().tap()


当我尝试在 addUIInterruptionMonitor 中打印一条语句时,它不会打印让我相信该块没有被触发。

【问题讨论】:

【参考方案1】:

虽然这并不能解决手头的问题,但我找到了解决方法:addUIInterruptionMonitor(withDescription:handler:) not working on ios 10 or 9

let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") 

let allowBtn = springboard.buttons["Allow"]
if allowBtn.waitForExistence(timeout: 10) 
    allowBtn.tap()

【讨论】:

我在使用 Xcode 12.4 和运行 iOS 14.5 beta 的实际手机时也遇到了同样的问题。我使用了相同的解决方法,它适用于某些警报,但当手机收到全屏电话时不起作用。它会检测电话是否设置为横幅。

以上是关于XCUItest addUIInterruptionMonitor 未在 iOS14 模拟器和 xcode 12 上捕获警报的主要内容,如果未能解决你的问题,请参考以下文章

XCUITest 和动态生成的视图

XCUITest 检测 UIView

XCUITest - 如何检查 webview 是不是已更新其内容?

XCUITest 无法识别警报

XCUITest 预测试设置

有没有办法使用 XCUITest 测试快速操作?