如何解决从自动化元素中获取非控制子元素
使用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 举报,一经查实,本站将立刻删除。