UITest iOS waitForExistence returns false 但元素可见

UITest iOS waitForExistence returns false but element is visible

我是 iOS UITest 的新手,如果有什么不明白的地方,我深表歉意。

我正在尝试断言 staticText 是否可见,但它总是 returns 错误,尽管它被显示了。

屏幕看起来像这样:

测试函数代码如下所示:

func verifyBlockedAccountsEmptyState() {
    print(profileListScreen.app.navigationBars["Blocked Accounts"].waitForExistence(timeout: 5))
    print(profileListScreen.app.staticTexts.element.label)
    print(profileListScreen.app.staticTexts["No blocked accounts"].waitForExistence(timeout: 5))

    var elementLabels = [String]()
    for i in 0..<profileListScreen.app.staticTexts.count {
        elementLabels.append (profileListScreen.app.staticTexts.element(boundBy: i).label)
    }
    print("staticTexts -> ", elementLabels)
}

并且输出:

true
12:25 PM
false
staticTexts ->  ["12:25 PM"]

有什么想法吗?

谢谢

编辑 如果我尝试记录 XCUIElement,我会收到以下错误:

Timestamped Event Matching Error: Failed to find matching element

听起来您应该将 AccessiblityId 分配给您感兴趣的部分视图。您可以通过获取容器 XCUIElement 的 debugDescription 查看给定视图中的可用内容。

可能是使用了错误的元素类型导致的问题。

您可能应该添加一个断点并使用 lldb 检查此屏幕。

键入 po print(app.debugDescription) 以打印元素的整个层次结构及其实际类型。