Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift XCUITest无法识别警报_Swift_Xcuitest - Fatal编程技术网

Swift XCUITest无法识别警报

Swift XCUITest无法识别警报,swift,xcuitest,Swift,Xcuitest,我是XUITest的新手,遇到了一个问题,它无法识别警报 我使用录音机获取命令,但当我尝试回放时,它失败了,错误如下: 找不到与“查找:子体”匹配的匹配项,该子体匹配来自输入的类型警报 let app = XCUIApplication() app.navigationBars["Spree.HomeWebView"].children(matching: .button).element(boundBy: 1).tap() app.alerts["Select a Saved

我是XUITest的新手,遇到了一个问题,它无法识别警报

我使用录音机获取命令,但当我尝试回放时,它失败了,错误如下:

找不到与“查找:子体”匹配的匹配项,该子体匹配来自输入的类型警报

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()

文字中的转义序列无效。

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

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

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

最后,我找到了一个真正的解决方案,基本上iOS 11-12可以与处理程序一起工作,但如果你在自动化过程中卸载应用程序,iOS 13则不会。因此,正如所提供的,您需要使用springboard活动来处理不属于应用程序的警报,并得出以下结论:

  • 句柄添加中断监视器
  • 处理应用程序警报
  • 跳板警报

  • 感谢您的回复,但是当我尝试运行时,我得到了以下错误:UI测试活动:断言失败:CheckoutKeywords.swift:36:找不到与输入{(应用程序,0x6000003805b0,pid:14258,标签:'Spree DEBUG')匹配的查找:子体匹配类型警报的匹配项。好的,这是系统按钮吗?如通知或位置权限警报。或者它是来自任何其他应用程序的警报,在你的应用程序前面弹出?此外,该警报是否需要时间(超过1-2秒)?这是一个系统按钮,我可以在层次结构中找到它,但它无法在测试运行时拾取它。加载需要几秒钟的时间,但我已经在等待(目前仅使用sleep(15))以确保在测试查找它之前显示它。您应该能够通过以下方式找到系统警报:
    让SpringboadApp=XCUIApplication(bundleIdentifier:“com.apple.springboard”)
    SpringboadApp.alerts