private func acceptPermissionAlert() {
_ = addUIInterruptionMonitor(withDescription: "") { alert -> Bool in
if alert.buttons["Don’t Allow"].exists { //doesnt get here second time
alert.buttons.element(boundBy: 1).tapWhenExists()
return true
}
return false
}
}
这对以下情况不起作用:
在应用程序的开始,它的工作完美,同时接受通知权限,但在这里...不工作。
你知道为什么吗?
3条答案
按热度按时间uelo1irk1#
I'vs发现
addUIInterruptionMonitor
有时候不能及时处理提醒,或者直到测试完成。如果它不起作用,可以尝试使用管理iOS主屏幕的Springboard。你可以从那里访问提醒、按钮和更多内容,这对于你确切知道何时会显示提醒的测试特别有用。所以,事情是这样的:
buttons.element(boundBy:1)
将确保您点击右侧的按钮,将1更改为0以点击左侧,(因为有时"Don't Allow"
中的“会导致问题)。hjzp0vay2#
增加:
在该方法结束时。
这是因为您需要与应用交互才能触发处理程序。
oyt4ldly3#
添加中断监视器后,您应该继续与应用交互,就像它没有出现一样。
当警报出现后发生下一次交互时,中断监视器的处理程序将被调用,警报将被处理。
当您认为已经完成中断监视器时,还应该将其删除,否则它将被任何其他出现的警报调用。