Firefox无法通过树遍历,进一步调查显示混乱的树层次结构

时间:2018-05-21 03:55:27

标签: user-interface ui-automation microsoft-ui-automation msaa uia

我正在使用UIA遍历Firefox元素树。我正在树中的多个节点之间创建路径。然而,这会遇到问题,因为树中的元素似乎混淆了。也就是说,存在重复的运行时ID,并且层次结构全部搞砸了。

UI Spy应用程序显示以下异常

  

“UI自动化树导航已损坏。其中一个的父级   后代存在,但后代不是父母的孩子“

如何解决此问题?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我得到了一个Firefox开发团队的帮助,该团队致力于可访问性,以便在我的初始测试中解决此问题。

事实证明,Firefox本身并不支持Microsoft UIA,但它确实支持Microsoft MSAA,这是一个较旧的可访问性框架。因此,Firefox依赖于MSAA代理来支持UIA,该代理使用MSAA信息并通过UIA API将其提供给请求。

Firefox开发团队知道,MSAA中的runtimeId(元素的唯一ID)生成及其与UIA通过代理的兼容性没有很好地记录。使用UIA进行树遍历时,这可能会导致上述问题。

Firefox小组表示,在Firefox中向 about:config 添加布尔首选项将为UIA提供有限的实验性支持,而且在那种有限的支持下。

  

我在 about:config 中添加了此值,并且能够获得积极效果   导致我进行的初步测试

将此值添加到Firefox配置。

  1. 启动Firefox实例

  2. 在地址栏中输入“about:config”

  3. 显示配置屏幕后,右键单击+新建+布尔。

  4. 添加名为“accessibility.uia.enable”的首选项并确保     价值是“真实的”