如何在UITests的`tableViewCell`中访问`detailTextLabel`?
我想检查是否有一个tableViewCell.detailTextLabel
与我的UITest中给定的string。 问题是,当我searchapp.tables.cells.children(matching: .staticText)
它只会查找标签是tableViewCell.textLabel
。 关于如何查询detailTextLabel
任何想法?
您可以尝试更通用的查询来确定文本是否存在。 如果您试图断言单元格包含“123 Main St.”,则可以使用以下内容:
let app = XCUIApplication() XCTAssert(app.staticTexts["123 Main St."]).exists)
当然,如果文本出现在textLabel
,testing仍然会通过。
这听起来像你的细节文本标签是不可访问的。
要在视图层次结构中查看可用于testing的所有内容,请打印以下查询的debugging描述,这可以帮助您了解元素是否正在出现,types是什么以及标识符或标签是什么:
let app = XCUIApplication() print(app.descendants(matching: .any).debugDescription)
确保包含视图(单元格?)不可访问,并且详细文本标签是可访问的,并给它一个标识符:
let cell = UITableViewCell! cell.isAccessibilityElement = false cell.detailTextLabel.isAccessibilityElement = true cell.detailTextLabel.accessibilityIdentifier = "myDetailTextLabel"