Просмотреть все XCUIElements на текущем экране

В тестировании пользовательского интерфейса/автоматизации с использованием Xcode 7 есть ли способ перечислить все элементы XCUIElements на экране приложения? Как в дереве или списке, или даже что-то в пользовательском интерфейсе Xcode? Я могу записывать тесты для тестируемого приложения с помощью кликов, но когда я запускаю тест, он терпит неудачу. Это не удается, потому что он не может найти XCUIElements из сгенерированного кода.


person ajc6432    schedule 01.10.2015    source источник


Ответы (2)


Вы можете просмотреть его в отладчике иерархии Xcode.

Из документов Apple:

Чтобы войти в отладчик представления, запустите приложение в Xcode и нажмите кнопку Иерархия представления отладки на панели отладки. введите здесь описание изображения

person M.Y.    schedule 08.10.2015

Вы можете отлаживать состояние элемента пользовательского интерфейса, используя

XCUIElement.debugDescription

Он возвращает снимок UIView в формате html с хорошим просмотром состояния элементов пользовательского интерфейса со свойствами, такими как тип элемента (например, textField, кнопка), чертами, такими как сфокусировано, включено, и значениями, например, placeholderValue.

Вы также можете использовать приложение accessibilityInspector, чтобы просмотреть атрибуты доступности для элементов пользовательского интерфейса в представлении и убедиться, что элементы имеют правильно установленные свойства доступности.

Еще одним удобным инструментом для изучения представления является новое средство просмотра иерархии, которое можно вызвать во время записи с панели инструментов консоли отладки или с помощью фильтра навигатора отладки при включении точки останова в тестовом коде.

введите здесь описание изображения

Xcode 7 также имеет хороший тестовый отчет в Report Navigator, который может помочь вам детализировать точную причину сбоя теста. например

Тестовая активность пользовательского интерфейса:

Assertion Failure: Asynchronous wait failed: Exceeded timeout of 10 seconds, with unfulfilled expectations: "Expect predicate `exists == 1` for object "Logout" Button".

Надеюсь это поможет.

person Sushant    schedule 04.10.2015
comment
Я уже знал об debugDescription; он делает то, что мне нужно, но его не очень легко читать. Хотя за остальное спасибо. - person ajc6432; 06.10.2015
comment
Я хотел бы увидеть пример использования debugDescription. Я никогда не видел, чтобы он предоставлял что-либо в формате html. - person Don Simon; 11.11.2015