获取WPF弹出窗口的AutomationElement

时间:2011-05-06 16:44:30

标签: wpf popup ui-automation

我正在开发一个项目,该项目在编辑器中使用弹出窗口提供ListBox中的对象,供用户双击以将其添加到文档中。我正在尝试使用microsoft提供的Automation API为应用程序创建自动化测试,但我无法弄清楚如何为Popup控件获取AutomationElement,因为它与我的编辑器及其控件位于不同的树中。有人知道如何获得WPF弹出窗口的AutomationElement吗?

2 个答案:

答案 0 :(得分:2)

我不得不从桌面开始,使用一些非常具体的PropertyConditions与AndCondition一起查询自动化树,使用TreeScope.Descendants作为查询的参数。

答案 1 :(得分:0)

我从主窗口的子项中弹出了一个弹出的AutomationElement(在我的例子中是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);