首页 > 解决方案 > UITests:无法在 iOS 14.5 上禁用精确位置

问题描述

我有一个 UITest(使用 XCTest 实现),当用户想要禁用精确位置(iOS 14 中引入的一项新功能)时,我想在其中测试我的应用程序的行为。

当位置授权系统警报出现时(检查随附的屏幕截图),我可以使用以下代码访问它

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

我可以通过以下方式访问精确位置按钮:

locationAlert.buttons["Esatta: sì"]

但是,当与之交互时,警报被视为“阻塞”元素并调用默认的“中断监视器”,从而导致警报被解除

t =   834.87s         Check for interrupting elements affecting "Esatta: sì" Button
    t =   834.92s         Found 1 interrupting element:
    t =   834.92s             Find the "Vuoi consentire a “*****” di utilizzare la tua posizione?" Alert
    t =   834.97s             "Vuoi consentire a “*****” di utilizzare la tua posizione?" Alert from Application 'com.apple.springboard'
    t =   834.97s         Invoking UI interruption monitors for "Vuoi consentire a “*****” di utilizzare la tua posizione?" Alert from Application 'com.apple.springboard'
    t =   834.97s             Find the "Vuoi consentire a “*****” di utilizzare la tua posizione?" Alert
    t =   835.01s             Checking existence of `Button`
    t =   835.06s             Get all elements bound by accessibility element for: Elements matching predicate 'userTestingAttributes CONTAINS "default-button"'
    t =   835.14s             Checking existence of `"Non consentire" Button`
    t =   835.19s             Default interruption handler attempting to dismiss alert by tapping "Non consentire" Button.
    t =   835.19s             Tap "Non consentire" Button
    t =   835.19s                 Wait for com.apple.springboard to idle
    t =   835.22s                 Find the "Non consentire" Button
    t =   835.28s                 Check for interrupting elements affecting "Non consentire" Button
    t =   835.33s                 Synthesize event
    t =   835.42s                 Wait for com.apple.springboard to idle
    t =   835.84s             Verifying handling...
    t =   835.84s                 Check for interrupting elements affecting "Esatta: sì" Button
    t =   835.85s                     Wait for xxxxxx to idle
    t =   835.91s             Confirmed successful handling of interrupting element

这仅在使用 Xcode 12.5 时发生,我对以前的版本没有任何问题。

在此处输入图像描述

标签: iosxcodecore-locationxctestxcode-ui-testing

解决方案


推荐阅读