【发布时间】:2013-10-24 00:49:17
【问题描述】:
我使用的是windows UI自动化框架:http://msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspx
我遇到的问题是微软提供的 UI 自动化框架似乎对某些 Windows 资源管理器视而不见。我可以找到根 AutomationElement“滚动条” 但是我找不到它的子组件,即按钮、位置等。这很臭,因为显然很多 WPF 应用程序会使用 Windows 资源管理器来选择文件,因此微软会将其视为其框架中的一个主要错误。所以我一定是做错了什么?
下面的代码演示了我在做什么。 root 是 Windows 资源管理器 AutomationElement。我验证了这一点,因为我可以看到滚动条项目,因为它有一个自动化 ID。我还验证了它是正确的垂直滚动条,因为 Windows 资源管理器中有两个。
AutomationElement functionControl = root.FindFirst(TreeScope.Descendants |
TreeScope.Element | TreeScope.Subtree,new
PropertyCondition(AutomationElement.NameProperty, "Page down"));
【问题讨论】:
-
我想当我有时间的时候我必须回到这个问题上。然而,在它上面睡觉之后,我很可能不得不使用原始视图步行器。我还使用我可以获得的一个自动化元素上的 Value 模式重新实现了这一点,并且自动化框架无法检测到此滚动条实现了该模式。
-
另外,因为我没有测试这个对话框......我放弃了,会找到一条替代路线。我建议所有其他发现自己处于这种情况的人。
标签: c# automation microsoft-ui-automation