如何在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"