Handler of addUIInterruptionMonitor is not called for Alert related to Photos

后端 未结 3 1424
醉梦人生
醉梦人生 2021-02-05 11:39
private func acceptPermissionAlert() {

    _ = addUIInterruptionMonitor(withDescription: \"\") { alert -> Bool in

        if alert.buttons[\"Don’t Allow\"].exists {         


        
3条回答
  •  青春惊慌失措
    2021-02-05 11:57

    I'vs found that addUIInterruptionMonitor sometimes doesn't handle an alert in time, or until tests have finished. If it isn't working, try using Springboard, which manages the iOS home screen. You can access alerts, buttons, and more from there, and this is particularly useful for tests where you know exactly when an alert will show.

    So, something like this:

    `let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") 
    
    let alertAllowButton = springboard.buttons.element(boundBy: 1)
    if alertAllowButton.waitForExistence(timeout: 5) {
       alertAllowButton.tap()
    }`
    

    The buttons.element(boundBy:1) will ensure you tap the button on the right, change 1 to 0 to tap the left, (because sometimes the ' in "Don't Allow" causes a problem).

提交回复
热议问题