如何在 UI 测试中关闭弹出框

bey*_*rss 3 ui-testing ios uitest swift3

我有一个使用“Present As Popover”segue 呈现的视图控制器。当我运行该应用程序时,它会按预期工作,并且在弹出窗口之外点击将关闭它。但是,当我运行 UI 测试时,我无法消除弹出窗口。我该怎么做?我试过了:

app.otherElements["PopoverDismissRegion"].tap()
Run Code Online (Sandbox Code Playgroud)

但日志打印:

无法找到其他 0x61000017f8c0 的生命值:特征:35184372088832,{{0.0, 0.0},{375.0, 667.0}},标识符:'PopoverDismissRegion',标签:'dismiss popup'

Rud*_*vič 5

Xcode UI 测试记录中存在错误。

Popover解雇记录为:

app.otherElements["PopoverDismissRegion"].tap()
Run Code Online (Sandbox Code Playgroud)

实际上需要以下内容(正如 Accessibility Inspector 所揭示的那样):

app.otherElements["dismiss popup"].tap()
Run Code Online (Sandbox Code Playgroud)

方便的扩展:

extension XCUIApplication {
    func dismissPopup() {
        otherElements["dismiss popup"].tap()
    }
}
Run Code Online (Sandbox Code Playgroud)


ram*_*eez 2

在您想要关闭弹出窗口的位置添加此行

app.children(matching: .window).element(boundBy: 0).tap()
Run Code Online (Sandbox Code Playgroud)