Как разрешить отслеживание в UITest?
Я попытался вызвать addUIInterruptionMonitor для уведомления о прозрачности отслеживания приложений, но он не регистрируется и не выполняет мой следующий шаг. Любая помощь по описанию этого диалога будет полезна, «Системный диалог» не работает.
2 ответа
Нашел решение, описание, которое я использовал, - "Предупреждение о разрешении на использование отслеживания".
Также была проблема в самом тесте, ожидавшая появления кнопки, которая появляется только после ответа на это диалоговое окно.
addUIInterruptionMonitor(withDescription: "Tracking Usage Permission Alert") {
(alert) -> Bool in
if alert.buttons["Allow"].exists {
alert.buttons["Allow"].tap()
self.app.activate()
return true
}
return false
}
Вы можете попробовать найти оповещение черезspringboard
.
Следующий код работал у меня.
let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
// Alert Query
let permissionAlert = springboard.alerts["Allow “Your App Display Name” to track your activity across other companies’ apps and websites?"].firstMatch
// Check for existence
XCTAssertTrue(permissionAlert.waitForExistence(timeout: 1.0))
// Alert button query
let dialogButton = permissionAlert.buttons["Ask App Not to Track"].firstMatch
// Check for existance
XCTAssertTrue(dialogButton.waitForExistence(timeout: 1.0))
// Tap the button
dialogButton.tap()
Надеюсь это поможет.