У меня есть автоматический тест пользовательского интерфейса, чтобы убедиться, что страница отображает правильные элементы, выполняя их поиск с помощью запросов XCUIElement, например:
let instructionLabelID = "UIA_HelpViewController_InstructionLabel"
let callViewID = "UIA_HelpViewController_CallTextView"
var instructionLabel: XCUIElement { return app.staticTexts[instructionLabelID] }
var instructions: String { return instructionLabel.label }
var callLabel: XCUIElement { return app.textViews[callViewID] }
var callText: String { return callLabel.value as! String }
Вот соответствующая раскадровка
Тест не пройден из-за того, что выделенное представление не найдено, даже если мы видим, что его идентификатор правильный в раскадровке.С помощью точки останова я могу проверить все элементы во время выполнения, и вот результат
Как мы видим, первый элемент корректен в этомон находится под другим (его контейнерное представление), имеет тип StaticText и имеет свой идентификатор.Второй элемент, однако, кажется, объединен в свой контейнер, а не является его дочерним элементом.В обоих контейнерах опция Accessibility Enabled не отмечена.Как я могу это исправить?