我正在使用 UIA 遍历 Firefox 元素树。我正在树中的多个节点之间创建路径。然而,这遇到了问题,因为树中的元素似乎混合在一起。那就是存在重复的运行时 ID,并且层次结构都搞砸了。
UI Spy 应用程序显示以下异常
“UI 自动化树导航已损坏。其中一个后代的父代存在,但后代不是父代的子代”
我该如何解决这个问题?任何帮助表示赞赏。
我正在使用 UIA 遍历 Firefox 元素树。我正在树中的多个节点之间创建路径。然而,这遇到了问题,因为树中的元素似乎混合在一起。那就是存在重复的运行时 ID,并且层次结构都搞砸了。
UI Spy 应用程序显示以下异常
“UI 自动化树导航已损坏。其中一个后代的父代存在,但后代不是父代的子代”
我该如何解决这个问题?任何帮助表示赞赏。
至少在我最初的测试中,我从一个致力于可访问性的 Firefox 开发团队那里得到了帮助,以解决这个问题。
事实证明,Firefox 本身并不支持 Microsoft UIA,但它确实支持 Microsoft MSAA,这是一个较旧的可访问性框架。因此 Firefox 依赖 MSAA 代理来支持 UIA,该代理使用 MSAA 信息并通过 UIA API 将其提供给请求。
就 Firefox 开发团队所知,MSAA 中的 runtimeId(元素的唯一 ID)生成及其通过代理与 UIA 的兼容性没有得到很好的记录。当使用 UIA 进行树遍历时,这可能会导致上述问题。
Firefox 团队表示,在 Firefox 中为about:config添加布尔首选项将为 UIA 提供有限的实验性支持,并且 runtimeids 应该在有限的支持中。
我在about:config中添加了这个值,并且能够在我执行的初步测试中获得积极的结果
.
将此值添加到 Firefox 配置。
启动 Firefox 实例
在地址栏中输入“about:config”
显示配置屏幕后,右键单击 + 新建 + 布尔值。
添加名为“accessibility.uia.enable”的首选项并确保值为“true”