6

我正在使用 XCTest UI 测试框架来检查表视图中的行。在我的测试中,我需要在给定索引的情况下验证表格视图行中是否存在文本。

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

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

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

4

2 回答 2

18

事实证明,tableRows它实际上并没有检测到UITableView. 改为使用cells

我有一种感觉,tableRows并且tableColumns习惯于在 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)
于 2015-09-04T02:08:17.543 回答
1

对于您的情况,我认为此代码将对您有所帮助。

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

问候,

于 2017-11-06T03:00:01.953 回答