Как обновить WPF AutomationElement с помощью DataTemplate - Windows UI Automation - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь автоматизировать тестирование приложения WPF с помощью Windows UI Automation .

Приложение имеет ContentControl с шаблоном данных, который изменяется в зависимости отвзаимодействие с пользователем.

При начальной загрузке я могу получить и нажать кнопку внутри элемента управления контентом.Это переключает шаблон данных (субэлементы управления удаляются и заменяются другими). ​​

Однако, когда я ищу новые элементы управления в элементе автоматизации, они не могут быть найдены.

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

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

1 Ответ

0 голосов
/ 26 ноября 2018

Нашли решение в FAQ FlaUI .

При использовании элементов управления DevExpress некоторые вещи (например, содержимое вкладок) не обновляются По умолчанию элементы управления DevExpress не вызывают события автоматизации, поскольку эти события могут снизить производительность приложения.Чтобы убедиться, что события генерируются правильно, задайте для статического свойства ClearAutomationEventsHelper.IsEnabled значение false при запуске приложения (необходимо сделать в приложении, которое автоматизировано с помощью FlaUI):

ClearAutomationEventsHelper.IsEnabled = false;

...