iOS UI测试:如何获取标识符为fooImage的XCUI元素数量?
如何统计匹配特定标识符的XCUI元素数量
这个问题我做UI自动化测试时也碰到过,给你两个精准的解决思路:
方法一:全局统计所有目标元素
如果你想统计整个App里所有accessibilityIdentifier为"fooImage"的图片数量,可以用XCUIElementQuery的matching(identifier:)方法——它会返回所有匹配的元素集合,而非单个元素,这样就能直接获取count:
let app = XCUIApplication() let targetImageCount = app.images.matching(identifier: "fooImage").count XCTAssertEqual(targetImageCount, 3, "目标图片数量不符合预期")
方法二:限定在特定父元素内统计
如果你的目标元素都在某个表格(比如你提到的table["tableName"])里,也可以在父元素的基础上做筛选,这样只会统计该容器内的目标图片:
let app = XCUIApplication() let targetTable = app.tables["tableName"] let targetImageCountInTable = targetTable.images.matching(identifier: "fooImage").count XCTAssertEqual(targetImageCountInTable, 3, "表格内目标图片数量不符合预期")
为什么之前的写法会报错?
你提到的XCUIApplication().images["fooImage"].count编译失败,是因为images["fooImage"]返回的是第一个匹配到的单个XCUIElement对象,单个元素本身没有count属性;而matching(identifier:)返回的是包含所有匹配元素的XCUIElementQuery集合,所以能正常获取元素数量。
内容的提问来源于stack exchange,提问作者ablarg
相关产品推荐
相关产品推荐

