Выполнение UIAccessibilityCustomAction из UITests - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть подкласс UIView, скажем, это class DemoView: UIView { }, который содержит UILabel и UIButton. Мне нужно было сгруппировать его и добавить UIAccessibilityCustomAction, чтобы я переопределил var accessibilityElements: [Any]? и использовал объединение для соединения обоих элементов. Я также назначил строку «Пользователи» для accessibilityLabel.

С точки зрения пользователя это работает так, как должно, VoiceOver читает Users, а затем пользователь может выбрать настраиваемое действие с именем Edit.

Проблема в том, что я не знаю, как я могу запустить это пользовательское действие из UITests. Я знаю, что XCUIElement содержит массив UICustomActions, и я могу получить его селектор, но что тогда?

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Я разговаривал с инженерами Apple в лабораториях доступности и тестирования WWDC19, и они сказали, что сейчас это невозможно.Причиной, по которой доступность недоступна во время тестирования, являются проблемы безопасности.Они также сказали, что они не используют UITests для тестирования UIAccessibility и при создании элементов доступности поддерживают два случая - когда запущены UITests и нет.

Я рекомендую сделать предложение, используя Feedback Assistant .

0 голосов
/ 02 мая 2019

Цель, к которой вы стремитесь достичь , в настоящее время невозможна с iOS12 и Xcode 10 .

Платформа UITesting не обращается к коду приложения, как это делают юнит-тесты: выневозможно получить экземпляр для выполнения селектора + массив пользовательских действий равен нулю, когда в UITest ⇒ каждое пользовательское действие недоступно и затем вообще не может быть запущено .

XCUITEST работает благодаря таким свойствам специальных возможностей, как accessibilityIdentifier, но он определенно не предназначен для простой работы для VoiceOver (на мой взгляд, немыслимый и непостижимый) .

Я надеюсь, что что-то новое с пользовательским интерфейсомтестирование будет введено во время следующего WWDC для РЕАЛЬНОГО тестирования доступности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...