Bool in -6ren">
gpt4 book ai didi

ios - 关闭位置服务请求对话框

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:45 26 4
gpt4 key购买 nike

在我的 UI 测试开始时我有

addUIInterruptionMonitor(withDescription: "Location Dialog") { (alert) -> Bool in
let button = alert.buttons["Allow"]
if button.exists {
snapshot("request location service")
button.tap()
return true
}
return false
}

它应该关闭位置服务请求对话框,但它什么也不做,也永远不会到达处理程序。我也尝试在 setUp() 中设置此代码,但它也没有用。

我认为问题可能在于应用程序中发生的第一件事是正在显示对话框,这可能为时过早(可能发生在 addUIInterruptionMonitor 被调用之前)

我该如何解决这个问题?

最佳答案

您必须在添加 UIInterruptionMonitor 后立即与应用程序交互。这可以是一个简单的点击:

addUIInterruptionMonitor(withDescription: "Location Dialog") { (alert) -> Bool in
let button = alert.buttons["Allow"]
if button.exists {
button.tap()
return true
}
return false
}
// interact with the app
app.tap()

如果 app.tap() 干扰了您的测试,您也可以使用 app.swipeUp()

请注意,位置服务权限对话框在 iOS11 中发生了变化。现在有 3 个按钮,因此您必须使用 alert.buttons["Always Allow"] 关闭对话框。

enter image description here

关于ios - 关闭位置服务请求对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com