XCUITest无法识别警报

时间:2018-07-20 11:46:02

标签: swift xcuitest

我是XCUITest的新手,遇到了无法识别警报的问题。

我使用记录器获取命令,但是当我尝试播放它时,它失败并显示错误消息:

找不到与“查找”匹配的后代:输入匹配“警报”的后代...

let app = XCUIApplication()
    app.navigationBars["Spree.HomeWebView"].children(matching: .button).element(boundBy: 1).tap()
    app.alerts["Select a Saved Password to Use With “Spree-DEBUG”"].buttons["Not Now"].tap()  

我认为字符串中的双引号可能是一个问题,但是当我尝试以下操作时:

app.alerts["Select a Saved Password to Use With \“Spree-DEBUG\”"].buttons["Not Now"].tap()

它在字面上表示无效的转义序列。

2 个答案:

答案 0 :(得分:0)

由于要查询警报中的按钮,因此可以省略查询的整个警报下标部分。就像:

app.alerts.buttons["Not Now"].tap()

这是因为您可能不会同时显示多个警报,所以查询所有alerts应该会给出您需要的警报,因为您只有一个,对:)

答案 1 :(得分:0)

最后,我找到了一个真正的解决方案,基本上iOS 11-12可以在处理程序上正常运行,但是如果您在自动化过程中卸载应用程序,iOS13则不能。因此,正如伙计们提供的那样,您需要使用跳板活动来处理不属于应用程序的警报,并得出结论:

  1. 处理addUIInterruptionMonitor
  2. 处理app.alerts
  3. 跳板警报