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)
以打印元素的整个层次结构及其实际类型。
我是 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)
以打印元素的整个层次结构及其实际类型。