Я хочу проверить, есть ли tableViewCell.detailTextLabel
с заданной строкой в моем UITest. Проблема в том, что когда я ищу app.tables.cells.children(matching: .staticText)
, он будет искать только метки, которые являются tableViewCell.textLabel
. Любые идеи о том, как запросить detailTextLabel
?Как получить доступ к `detailTextLabel` в` tableViewCell` в UITests?
ответ
Вы можете попробовать более общий запрос, чтобы определить, существует ли вообще текст. Если вы пытаетесь утверждать, что ячейка содержит «123 Main St.», к примеру, вы можете использовать следующее:
let app = XCUIApplication()
XCTAssert(app.staticTexts["123 Main St."]).exists)
Конечно, если этот текст появится в textLabel
тест будет еще пройти.
Возможно, я что-то делаю неправильно. Он отлично работает для textLabels, но не для деталей. –
It *. * Работа! Проблема в том, что я инициализировал detailTextLabels пустой строкой и затем заполнял информацией. К тому времени, когда UITest запрашивал текст, он еще не был установлен. Теперь все в порядке! –
Похоже, что ваша текстовая метка не доступна.
Чтобы просмотреть все, что доступно вашим тестам в иерархии представлений, распечатайте описание отладки следующего запроса, что может помочь вам понять, появляется ли элемент, каков его тип и каков его идентификатор или метка :
let app = XCUIApplication()
print(app.descendants(matching: .any).debugDescription)
Убедитесь, что содержащий вид (ячейка?) не доступен, и что деталь текста этикетки является доступным, и дать ему идентификатор:
let cell = UITableViewCell!
cell.isAccessibilityElement = false
cell.detailTextLabel.isAccessibilityElement = true
cell.detailTextLabel.accessibilityIdentifier = "myDetailTextLabel"
Пожалуйста, добавьте выход для приложения Texts.debugDescription – Oletha
Выводит весь текст, который находится в 'textLabel' вместе с меткой, которая находится в заголовке таблицыView и заголовке navigationBar. –