给定 XCTest UI 测试中的索引,如何验证 table 视图行中是否存在文本?

How can I verify existence of text inside a table view row given its index in an XCTest UI Test?

我正在使用 XCTest UI 测试框架来检查 table 视图中的行。在我的测试中,我需要根据其索引验证 table 视图行中文本的存在。

我正在考虑使用 tableRows.elementBoundByIndex 方法,但它没有 return 任何东西。通过调用 tableRows.count 编辑的行数 return 为零。 table 存在并填充,因为我可以成功查询行内的文本:

XCTAssertEqual(app.tables.staticTexts["Cute Alpaca"].exists)

如何在 XCTest UI 测试中根据其索引验证行中是否存在文本?

事实证明 tableRows 实际上并没有检测到 UITableView 中的行。请改用 cells

我觉得 tableRowstableColumns 用于在 Mac OS X 上进行测试,而在 iOS 上你有实际的表我们有 UITableViewCellUICollectionViewCell。或者这可能是一个错误,因为我们仍处于测试阶段。

let table = app.tables.element
XCTAssertTrue(table.exists)

let cell = table.cells.elementBoundByIndex(2)
XCTAssertTrue(cell.exists)
let indexedText = cell.staticTexts.element
XCTAssertTrue(indexedText.exists)

或一班

XCTAssertTrue(app.tables.element.cells.elementBoundByIndex(2).exists)

对于您的情况,我认为这段代码会对您有所帮助。

let tableCellContainer = app.tables["HomeTableView"].cells.element(boundBy: 1) // Get the first Cell
let cell = tableCellContainer.staticTexts["Brazil"]
XCTAssert(cell.exists)

此致,