Получите элемент автоматизации для всплывающего окна WPF - PullRequest
6 голосов
/ 06 мая 2011

Я работаю над проектом, который использует всплывающее окно в редакторе, чтобы предоставить пользователям объекты в ListBox для двойного щелчка, чтобы добавить их в свой документ.Я пытаюсь создать автоматизированные тесты для приложения, используя API автоматизации, предоставляемый Microsoft, но я не могу понять, как получить AutomationElement для элемента управления Popup, поскольку он находится в другом дереве, чем мой редактор и его элементы управления.Кто-нибудь знает, как получить AutomationElement для всплывающего окна WPF?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Я решил начать с рабочего стола и выполнить запрос через дерево автоматизации, используя несколько очень специфических PropertyConditions в сочетании с AndCondition, используя TreeScope.Descendants в качестве параметра для моих запросов.

0 голосов
/ 11 января 2012

У меня есть всплывающий элемент автоматизации для всплывающего окна (OpenFileDialog в моем случае) от детей главного окна:

// I had automationElement for main window in advance
AutomationElement mainWindow = ... 

// Some condition to distinguish your popup from others
// if you may have more than one popup.
// Otherwise this condition might check ControlType == Window 
Condition popupCondition = ...

var popup = mainWindow.FindFirst(TreeScope.Children, popupCondition);
...