我是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()
它在字面上表示无效的转义序列。
答案 0 :(得分:0)
由于要查询警报中的按钮,因此可以省略查询的整个警报下标部分。就像:
app.alerts.buttons["Not Now"].tap()
这是因为您可能不会同时显示多个警报,所以查询所有alerts
应该会给出您需要的警报,因为您只有一个,对:)
答案 1 :(得分:0)
最后,我找到了一个真正的解决方案,基本上iOS 11-12可以在处理程序上正常运行,但是如果您在自动化过程中卸载应用程序,iOS13则不能。因此,正如伙计们提供的那样,您需要使用跳板活动来处理不属于应用程序的警报,并得出结论: