it-swarm.com.ru

UI Testing Xcode 7 - не может получить доступ к элементу внутри подпредставления

Я пытаюсь получить доступ к элементу внутри подпредставления и считаю, что это невозможно.

Иерархия:

Контроллер просмотра:

  • Посмотреть
    • tempView
    • userEnterView
      • zipCodeEntered

Я хочу получить доступ к текстовому полю zipCodeEntered. У меня есть метка доступности с именем "zipCodeEntered". 

Когда я пытаюсь записать автоматизацию, она регистрирует только суперпредставление «userEnterView», а не фактическое текстовое поле, к которому я могу подключиться. 

Я печатаю «app.otherElements [SUPER_VIEW_NAME] .debugDescription», чтобы увидеть, какие элементы находятся в этой иерархии, и он не печатает ни одного. 

Любые идеи о том, почему я не могу получить доступ к этим элементам/как я могу получить к ним доступ.  enter image description here

18
sebradloff

Подвиды не доступны, потому что родительское представление не является контейнерным представлением. Из раздела Обеспечение доступности приложения для iOS из Руководства по программированию специальных возможностей:

С точки зрения доступности, пользовательское представление - это либо отдельное представление, либо представление контейнера. Отдельное представление не содержит никаких других представлений, которые должны быть доступны.

Контейнерное представление, с другой стороны, содержит другие элементы, с которыми пользователи могут взаимодействовать.

Чтобы сделать подпредставления доступными, родительское представление должно сообщить UIAccessibility, что это контейнер доступности, возвращая NO из -isAccessibilityElement и реализуя методы протокола UIAccessibilityContainer.

27
quellish

Единственное, что исправило это для меня, было установить флажок «Доступность», чтобы включить его в Интерфейсном Разработчике. 

 enter image description here

Если не работает в IB, попробуйте установить для свойства isAccessibilityElement представления значение true. 

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

0
Patrick Ridd