ios - 关闭位置和通知设置 Xcode Ui 测试

标签 ios swift xcode xcode-ui-testing

我正在为我的应用程序编写 UI 测试。我有两个警报:位置和通知。我正在努力寻找解决方案来消除这些警报。

目前我正在使用

systemAlertMonitorToken = addUIInterruptionMonitorWithDescription(systemAlertHandlerDescription) { (alert) -> Bool in
    if alert.buttons.matchingIdentifier("OK").count > 0 {
         alert.buttons["OK"].tap()
         return true
     } else {
         return false
     }
}

let notifications = self.app.alerts.element.collectionViews.buttons["OK"]
if notifications.exists {
    notifications.tap()
}

但是这两个功能都不允许我消除警报。

编辑

现在我添加了

  app.buttons["OK"].tap()
    app.tap()

到我的代码,但这意味着我的测试失败了,因为 XCT 立即寻找“确定”按钮,而它不是立即弹出的通知。 我只希望在弹出的警报“确定”时被解除,而不是在启动的第一件事上。

最佳答案

中断监视器只会在您下次尝试与应用程序交互时触发,因此您需要在注册中断监视器后编写代码,以便在消除警报后执行您想做的任何操作,例如点击您的应用程序中的另一个按钮用户界面。

当代码到达您接下来与 UI 交互的部分时,将执行完成处理程序的处理程序并处理系统警报。

关于ios - 关闭位置和通知设置 Xcode Ui 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39374482/

相关文章:

ios - 如何设置 SKCameraNode 相对于节点的 x 和 y 位置?

ios - 从 PC 上的 iPhone App 的文档文件夹下载创建的文件

ios - Swift 3 API 在子类中重命名

ios - 如果我位于 uicollectionview 的最后一页,如何转到下一个 View Controller 。其水平转换和分页已启用

xcode - 当我杀死一个应用程序时它崩溃了,该怎么办?

android - 是否可以将 Guile 嵌入到 iOS 或 Android 上的 C++ 应用程序中?

ios - 我将如何在 iOS 的谷歌地图中添加搜索栏

ios - 如何在点击另一个单元格后操作 UITableViewCell? - swift

ios - Xcode 6 本地化无法读取字符串文件

iphone - 使 IBOutlet UIImageView 可从方法内部访问