ios - 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 时发生,我对以前的版本没有任何问题。
解决方案
推荐阅读
- python - 康托尔集代码没有给出预期的输出
- android - 使用 Ionic 4 和 Capacitor 构建时创建的 APK 文件在哪里?
- javascript - Gulp:错误:未处理的“错误”事件。(1)当phpunit测试失败时
- python - 如何使用 Amplify React 在 Python 中的 Post Confirmation Lambda Trigger 中获取 Cognito Identity Id?
- reactjs - React async / await 不在调用函数中等待 - 但被调用函数正在正确执行
- java - Java 多播:如何在 localhost 上进行测试?
- swift - 在 Vapor 3 中返回部分对象
- android - 将android java项目转换为android kotlin项目
- javascript - 两个类似的 SQLite 案例语句,一个有效,另一个无效
- bash - 为什么这个 docker shell 命令不起作用