2013-10-24 76 views
0

我使用的是Windows用户界面自动化框架:http://msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspxWindows UI自动化。如何自动化Windows资源管理器滚动条?

我遇到的问题是,微软提供的UI自动化框架似乎是盲目的一些Windows资源管理器。我可以找到根AutomationElement“滚动条” 但是我无法找到它的子组件,即按钮,位置等。这种气味显然是因为很多WPF应用程序会使用Windows资源管理器来选择文件,因此微软会将其视为主要在其框架中的错误。所以我一定是做错了什么?

enter image description here

下面的代码演示了我在做什么。 root是Windows资源管理器AutomationElement。我验证了这一点,因为我可以看到滚动条项目,因为它有一个自动化ID。我也证实这是正确的垂直滚动条,因为它们中有两个在Windows资源管理器中。

AutomationElement functionControl = root.FindFirst(TreeScope.Descendants |   
TreeScope.Element | TreeScope.Subtree,new 
PropertyCondition(AutomationElement.NameProperty, "Page down")); 
+0

我想我有空的时候会回来。但在睡觉之后,我很可能不得不使用原始视图助手。我也在一个自动化元素上使用Value模式重新实现了这一点,自动化框架无法检测到此滚动条实现了该模式。 – LLL

+0

也因为我没有测试这个对话框......我放弃了,并会找到一个替代路线。对于所有发现自己处于这种状况的人,我都会这样建议。 – LLL

回答

2

你究竟在做什么?如果您尝试向下滚动,则不应该通过实际查找向下/向上按钮来完成此操作,而是通过从滚动条本身请求ScrollPattern,然后调用ScrollVertical/ScrollHortizontal/SetScrollPercent - 根据您的喜好。