从自动化元素中获取非控制子元素

问题描述

使用inspect.exe工具,我可以看到一个自动化元素有6个子元素,但是其中一个子元素的 isControlElement isContentElement 都设置为错误。然后,我在c#中使用了Windows自动化,尝试通过以下几行来检索自动化元素的子代:

 var cond = new PropertyCondition(AutomationElement.IsEnabledProperty,true);
 var children = addressparent.FindAll(TreeScope.Descendants,newCond);

但是我得到的只有第一个孩子,这是“不是控件”的孩子。 使用的条件是一般条件,因为我要查找的孩子没有名称或AutomationID(或任何特定的标识符)。

我还根据缺少的孩子特征尝试了不同的条件,例如

LocalizedControlTypeProperty-“文本” 要么 IsControlElementProperty-错误或什至搜索所有后代而不是子代,但没有一个能找到子代。

值得一提的是,在Inspect.exe中,兄弟姐妹已正确链接,丢失的控件的下一个兄弟姐妹指向6个中的下一个,而第二个孩子的上一个兄弟姐妹则指向缺失的同一个。但是,在代码中来自检查的第二个是第一个。缺少的控件没有子项。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)