dam*_*ndd 3 tdd automated-tests uitableview ios xcode-ui-testing
我正在尝试验证UI测试中某个表视图是否已填充有一定数量的单元格。这是我的代码:
XCUIApplication().tables.element.swipeUp()
let count = XCUIApplication().tables.element.children(matching: .cell).count
XCTAssert(count > 0)
Run Code Online (Sandbox Code Playgroud)
断言失败是因为count,即使向上滑动滚动了显然已成功填充的表格视图,该始终为0。我也尝试过:
XCTAssert(app.tables.cells.count > 0)
Run Code Online (Sandbox Code Playgroud)
具有相同的结果。我什至在一个屏幕上创建了一个带有3个静态单元格的表格视图的空项目,以消除UI测试的任何其他可能的干扰,它仍然始终返回0。我正在使用Xcode 9在iOS 11上进行测试。
单元并不总是注册为单元,这取决于您如何配置可访问性。仔细检查可访问性实际上是否看到了中的单元格Xcode menu -> Open Developer Tool -> Accessibility Inspector。
根据您的布局代码,很可能会看到可访问性,staticTexts而不是cells-在这种情况下,您应该声明
XCTAssert(app.tables.staticTexts.count > 0)
Run Code Online (Sandbox Code Playgroud)
如果您要使用单元格,请按照以下步骤配置单元格tableView:cellForItemAtIndexPath:
cell.isAccessibilityElement = true
cell.accessibilityLabel = cell.titleLabel.text // (for example)
cell.accessibilityIdentifier = "MyCellId" // (or whatever you want XCUITest to identify it as)
Run Code Online (Sandbox Code Playgroud)
这会将单元格标记为根可访问项,而不是每个单元格的子视图都是离散元素。
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |