07-18-2023, 07:20 PM
I encountered a problem with Xcode 7 UI Testing.
The app displays two alerts after my user logs in, the **Request Location** Alert and the **Push Notifications** Alert. Those notifications are shown one right after the other. The Location one appears first.
I try to dismiss them automatically to start my tests.
In order to do that, I add two *UIInterruptionMonitor*, the first one for the Location Alert and the second one for the Notification Push Alert.
addUIInterruptionMonitorWithDescription("Location Dialog") { (alert) -> Bool in
/* Dismiss Location Dialog */
if alert.collectionViews.buttons["Allow"].exists {
alert.collectionViews.buttons["Allow"].tap()
return true
}
return false
}
addUIInterruptionMonitorWithDescription("Push Dialog") { (alert) -> Bool in
/* Dismiss Push Dialog */
if alert.collectionViews.buttons["OK"].exists {
alert.collectionViews.buttons["OK"].tap()
return true
}
return false
}
But only the Location one is triggered, the handler of Push Notifications *UIInterruptionMonitor* is never called.
If I return true in the **Request Location** *UIInterruptionMonitor* as [this other post accepted answer](
How can I dismiss those two successive alerts views?
The app displays two alerts after my user logs in, the **Request Location** Alert and the **Push Notifications** Alert. Those notifications are shown one right after the other. The Location one appears first.
I try to dismiss them automatically to start my tests.
In order to do that, I add two *UIInterruptionMonitor*, the first one for the Location Alert and the second one for the Notification Push Alert.
addUIInterruptionMonitorWithDescription("Location Dialog") { (alert) -> Bool in
/* Dismiss Location Dialog */
if alert.collectionViews.buttons["Allow"].exists {
alert.collectionViews.buttons["Allow"].tap()
return true
}
return false
}
addUIInterruptionMonitorWithDescription("Push Dialog") { (alert) -> Bool in
/* Dismiss Push Dialog */
if alert.collectionViews.buttons["OK"].exists {
alert.collectionViews.buttons["OK"].tap()
return true
}
return false
}
But only the Location one is triggered, the handler of Push Notifications *UIInterruptionMonitor* is never called.
If I return true in the **Request Location** *UIInterruptionMonitor* as [this other post accepted answer](
[To see links please register here]
) specifies. Both handler are called but the *alert* parameter in both *UIInterruptionMonitor* links to the **Request Location** Alert View so the "OK" button is never found.How can I dismiss those two successive alerts views?