我正在尝试使用Project White为我的WPF应用编写自动化测试。一切都很顺利,直到我尝试与Infragistics控件交互。有没有人有这种设置的经验,并能够发布一个示例,说明我如何(例如)与XamRibbon或XamOutlookBar进行交互?
我正在尝试使用Project White为我的WPF应用编写自动化测试。一切都很顺利,直到我尝试与Infragistics控件交互。有没有人有这种设置的经验,并能够发布一个示例,说明我如何(例如)与XamRibbon或XamOutlookBar进行交互?
很抱歉,我的回答可能有些泛泛而谈,但如果白色主题不能帮助您,您可以直接使用Microsoft UI Automation。
首先,找到您的控件。如果它有WPF“名称”,那么它可能具有与名称匹配的自动化ID:
AutomationElement element = AutomationElement.Root.FindFirst(
TreeScope.Descendants,
new PropertyCondition(AutomationElement.AutomationIdProperty, <whatever>))
另外,您可以使用像NameProperty这样的东西,它大多映射到文本或标题,或者ControlTypeProperty或ClassProperty。您始终可以使用FindAll来提供有关可用控件的更多信息。
找到控件后,请打印其支持的模式和属性:
element.GetSupportedPatterns()
element.GetSupportedProperties()
这些属性返回信息。模式是类似于ListItemPattern、GridPattern的东西,可以让你访问更多组件特定的值。您可能会找到一个能够给您所需内容的模式或属性。White在此基础之上构建,因此它可能会帮助您找出哪些White组件可供使用。例如:
((TogglePattern)Element.GetCurrentPattern(TogglePattern.Pattern)).Toggle()