【问题标题】:Windows UI Automation. How to automate windows explorer scroll bar?Windows UI 自动化。如何自动化 Windows 资源管理器滚动条?
【发布时间】: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


【解决方案1】:

你实际上想做什么?如果您尝试向下滚动,则不应通过实际找到向下/向上按钮来执行此操作,而应通过从滚动条本身请求 ScrollPattern,然后调用 ScrollVertical/ScrollHortizontal/SetScrollPercent - 无论您喜欢哪个.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2013-03-25
    相关资源
    最近更新 更多