Как разрешить отслеживание в 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()

Надеюсь это поможет.

Другие вопросы по тегам