我在检查工具中可以看到一个具有特定自动化ID的元素有子元素:
但是当我尝试像这样检索它们时:
AutomationElement aPane = mainWindow.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.AutomationIdProperty, "8264"));
AutomationElementCollection theChildren = aPane.FindAll(TreeScope.Subtree, Condition.TrueCondition);
成功检索到aPane
元素,但theChildren
元素为空。有任何想法是出了什么问题?
Subtree
范围的查询包括搜索元素和所有后代,因此theChildren
应该始终包含至少一个元素aPane
。 - Mike ZboraymainWindow
上执行FindAll
而不是FindFirst
,以查看是否还有其他元素。 - Mike ZborayAutomationElementCollection aPane = mainWindow.FindAll(TreeScope.Subtree, new PropertyCondition(AutomationElement.AutomationIdProperty, "8264"));
返回一个带有1个元素的集合。所以,遗憾的是,只有一个具有该ID的元素。我本来以为它应该是唯一的。 - AugustmainWindow
是否是您想要的实例,但是假设它是,我有另一个想法。我不确定它是否会解决您的问题,但我无论如何都会将其发布为答案。 - Mike Zboray