我试图通过跟随以下帖子中提供的流程来超越用户通知系统警报,这与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()
并且找到并存在按钮后,测试成功进入处理程序,但它似乎无法点击确定按钮!当我尝试点击“确定”按钮时,它会点击“不允许”按钮,当我尝试点击“不允许”按钮时,它不会点击任何内容。
按钮的框架也不与屏幕上的内容相匹配。
当我调试并查看它们的帧时:
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提交了一份错误报告。