获取WPF弹出窗口的AutomationElement

6

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

2个回答

2

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


0

我从主窗口的子元素中获取了弹出窗口的自动化元素(在我的情况下是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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接