我想检查我的UITest中是否有一个带有给定字符串的tableViewCell.detailTextLabel
。问题是当我搜索app.tables.cells.children(matching: .staticText)
时,它只会查找tableViewCell.textLabel
的标签。
有关如何查询detailTextLabel
的任何想法?
答案 0 :(得分:5)
您可以尝试更通用的查询来确定文本是否存在。例如,如果您试图断言单元格包含" 123 Main St。",则可以使用以下内容:
let app = XCUIApplication()
XCTAssert(app.staticTexts["123 Main St."]).exists)
当然,如果该文本出现在textLabel
中,则测试仍然会通过。
答案 1 :(得分:1)
听起来您的详细文字标签无法访问。
要在视图层次结构中查看测试可用的所有内容,请打印以下查询的调试说明,这可以帮助您了解元素是否显示,类型是什么以及标识符或标签是什么:
let app = XCUIApplication()
print(app.descendants(matching: .any).debugDescription)
确保无法访问包含视图(单元格?),并且可以访问详细文本标签 ,并为其指定标识符:
let cell = UITableViewCell!
cell.isAccessibilityElement = false
cell.detailTextLabel.isAccessibilityElement = true
cell.detailTextLabel.accessibilityIdentifier = "myDetailTextLabel"