Установка идентификаторов автоматизации для существующего приложения - PullRequest
1 голос
/ 03 апреля 2019

Если у меня есть существующее приложение WPF, и я хочу назначить идентификаторы автоматизации для всего приложения, где они не установлены, каков хороший способ сделать это (для элементов управления, которые не добавляются динамически)? Какой-то сценарий, который просматривает все файлы xaml и добавляет идентификаторы автоматизации?

Моя цель - написать тесты пользовательского интерфейса с помощью winappdriver.

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

1 Ответ

0 голосов
/ 03 апреля 2019

В WPF, когда свойство имени элемента управления имеет значение, это соответствует AutomationID, который вы найдете в инструменте инспектора пользовательского интерфейса, таком как Inspect.exe. Взгляните на раздел замечаний по автоматизацииID здесь . Таким образом, приложение уже должно иметь большинство своих идентификаторов автоматизации.

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

При использовании сторонних элементов управления доступность AutomationId зависит от того, поддерживает ли его третья сторона или нет. Если они не поддерживают AutomationId, вы можете обернуть этот элемент управления в пользовательский элемент управления и таким образом предоставить AutomationID. Вот некоторые ресурсы, которые могут быть полезны:

обернутый элемент управления

Автоматизация пользовательского интерфейса WPF Custom Control

При работе с существующим приложением я обычно просто заполняю свойство name для элемента управления на ходу, поэтому количество изменений в приложении остается минимальным.

...