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