最近,苹果推出了这个提示:“XXXX”希望使用“auth0.com”进行登录,其中“XXXX”是iOS应用程序的名称。
当用户点击“使用Google登录”或“使用Facebook登录”时,此警报/对话框会出现。这很好,但在运行IOS UI测试时,使用通常的方法关闭系统对话框时,此对话框不会消失。
func doUserLogin(_ app: XCUIApplication) {
app.staticTexts["notLoggedInActivelabel"].tap()
// this will bring up oauth0 login window in ios
// setup a handler to dismiss the system alert
let handler = self.addUIInterruptionMonitor (withDescription: "allow oauth") { (alert) -> Bool in
// code should come here where the dialog is presented,
// but it never does ....
alert.buttons["Continue"].tap() // click Continue Button
return true
}
// click the login with GOOGLE button. This brings up dialog “XXXX” Wants to Use “auth0.com” to Login
app.scrollViews.otherElements.buttons["LOG IN WITH GOOGLE"].tap()
// this step is required when using addUIInterruptionMonitor
app.tap()
removeUIInterruptionMonitor(handler)
}
我觉得这有点合理:这是苹果引入的安全系统对话框,旨在提高安全性。如果在代码中轻易地将其解除,将会失去其意义。
但是,还有人知道是否可能在XCTestCase中解除此对话框吗?