我需要使用"UI自动化";来自windows操作系统中其他程序的技术。一些程序具有";类似铬的";用于内容呈现的浏览器。方法是get元素(如c#AutomationElement.FromPoint/FindAll(返回ClassName为"的浏览器元素;Chrome_ RenderWidgetHostHWND";并且Name类似于";Chrome传统窗口";。但我需要浏览器中的内容元素。
我发现,程序;Accessibility Insights"可以做到!
- 运行应用程序,"微软团队";,例如
- 运行";Accessibility Insights">
- 将鼠标移动到"上;微软团队";,我们得到";Chrome传统窗口">
- 在目标程序("Microsoft Teams"(上的任何鼠标点击(左/右(后引发重建UI树
- 然后UI自动化技术可以在浏览器中获取所有内部UI元素
";Accessibility Insights"源代码是https://github.com/microsoft/accessibility-insights-windows我非常仔细地研究了它,但没有找到提供重建(或初始化?(内部UI元素的代码。
有人能帮我吗?我应该做些什么来赢得我的任务——在windows操作系统上的另一个程序中,在类似chrome的浏览器中获得内部UI元素?
如果你已经读到最后,谢谢
Accessibility Insights for Windows不直接与UI Automation系统交互。它构建在Axe.Windows(源代码(上,它查询并公开UI Automation属性。在您描述的案例中,Axe.Windows正在遍历UI Automation树,以响应来自UI Automation框架的UIA_AutomationFocusChangedEventId消息。该通知由FocusTracker.cs的onFocusChangedEventForSelectingElement方法处理。希望这足以让您开始。
--Dave Tryon(Accessibility Insights团队(