Swift UI测试 - 用户通知系统警报

时间:2015-12-10 13:56:17

标签: swift xcode-ui-testing

我试图通过跟随以下帖子中提供的流程来超越用户通知系统警报,这与UI测试备忘单和SO上的其他一些帖子中提到的流程相同。

Xcode7 | Xcode UI Tests | How to handle location service alert?

我遇到一个奇怪的问题,我无法按下确定按钮。这是我的代码

    addUIInterruptionMonitorWithDescription("User Notifications") { (alert) -> Bool in
        let okButton = alert.buttons["OK"]
        let dontAllowButton = alert.buttons["Don\u{2019}t Allow"]

        print(okButton.frame)
        print(dontAllowButton.frame)

        okButton.tap() // Taps the dontAllowButton ??

        return true
    }

    launchFinished() // wait for app to load and notification to show
    app.tap()

在我使用app.tap()并且找到并存在按钮后,测试成功进入处理程序,但它似乎无法点击确定按钮!当我尝试点击“确定”按钮时,它会点击“不允许”按钮,当我尝试点击“不允许”按钮时,它不会点击任何内容。

按钮的框架也不与屏幕上的内容相匹配。

User Notification Alert Buttons

当我调试并查看它们的帧时:

okButton =(431.5,377.0,44.0,135.0)

dontAllowBtn =(431.5,512.0,44.0,135.0)

这似乎表明它们具有相同的X值,并且一个在另一个之上,这没有任何意义。

另外,我尝试使用XCUICoordinate在按钮附近创建一些坐标,然后点按坐标而不是按钮,这对我在应用程序的其他位置工作正常,但没有坐标点击似乎注册了。

如何通过此提醒?

修改

我正在使用Xcode 7.1.1,并且位置服务也出现了同样的问题。它似乎与横向模式有关,这使得它无法正常工作。当我创建一个新的测试应用程序并运行上面的代码时,它在纵向模式下工作正常。当我将其切换到横向模式时,它具有上述行为并且不起作用。

编辑2

我向Apple提交了一份错误报告。

0 个答案:

没有答案