WPF、Project White 和 Infragistics

发布于 2024-09-03 08:07:49 字数 215 浏览 13 评论 0原文

我正在尝试使用 Project White 为我的 WPF 应用程序编写自动化测试。一切都很顺利,直到我尝试与 Infragistics 控件进行交互。有人有过这种设置的经验吗?您能否发布一个示例,说明我如何(例如)与 XamRibbon 或 XamOutlookBar 进行交互?

I am trying to use Project White to write automated tests for my WPF application. It is all going well until I try to interact with Infragistics controls. Has anyone had any experience of this set up and would you be able to post an example of how I can (for example) interact with the XamRibbon or XamOutlookBar?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水水月牙 2024-09-10 08:07:49

恐怕这是一个通用的答案,但如果 White 没有帮助您,您可以直接使用 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()

Snoop 是一个应用程序,可以帮助您获取此信息,而无需通过打印输出:http://snoopwpf .codeplex.com/

Bit of a generic answer I'm afraid, but if White isn't helping you, you can use Microsoft UI Automation directly.

First, find your control. If it's got a WPF "Name" then it probably has an automation id which matches the name:

AutomationElement element = AutomationElement.Root.FindFirst(
    TreeScope.Descendants,
    new PropertyCondition(AutomationElement.AutomationIdProperty, <whatever>))

Alternatively you can use things like the NameProperty, which mostly maps to text or titles, or the ControlTypeProperty or ClassProperty. You can always use FindAll to give you more information about the controls available.

When you find your control, print out its supported patterns and properties:

element.GetSupportedPatterns()
element.GetSupportedProperties()

The properties give back information. The patterns are things like ListItemPattern, GridPattern and let you access more component-specific values. You may find a pattern or property which gives you what you need. White is partly built on top of this, so it might help you find out which White components you could use. For instance:

((TogglePattern)Element.GetCurrentPattern(TogglePattern.Pattern)).Toggle()

Snoop is an app which can help you get this information without going through the print-outs: http://snoopwpf.codeplex.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文