2012-02-03 5 views

ответ

1

Если ваше приложение очень просто *, это не так. UIAutomation использует метки доступности.

Даже если вы могли бы это сделать, вы не сэкономите усилий, вам все равно нужно предоставить некоторый путь для UIAutomation для идентификации ваших элементов пользовательского интерфейса.

* простой случай был бы там, где на экране есть только один отдельный подкласс UIView. В этом случае UIAutomation будет генерировать анонимные ссылки на unanamed элемент, который позволит вашим скриптам перемещаться. Это очень хрупкое.

1

В общем, у вас есть два способа доступа к элементу: по его метке или по его рангу. Пример:

target.frontMostApp().mainWindow().tableViews()[0] 

или target.frontMostApp().mainWindow().tableViews()["Contents"]

Вы можете выбрать, какой из них вы хотите использовать в UIAutomation, нажав на элемент в редакторе сценариев.

3

Если вы хотите, чтобы это было видно по UIAutomation, но не приложения, как VoiceOver, вы должны использовать accessibilityIdentifier свойство UIAccessibilityIdentification протокола.
Это позволяет установить значение позже видели корыто UIAElement.name

Обычно, когда не установлено, имя копируется из этикетки.
Но когда второе видно VoiceOver, первое нет.

Это доступно в iOS 5.0 и более поздних версиях.

Вы также можете посмотреть UIAccessibility Протокол имеет еще несколько приятных трюков.

Смежные вопросы