我在使用C#UIAutomation查找Firefox的UI元素时遇到了麻烦。
在检查. exe中,一切看起来都很好:
但是,当在窗口上使用下面的方法作为root时,只找到了突出显示为黄色的元素。我需要获取蓝色元素但一直无法获取。下面的解决方案基于这篇文章:
UIAutomation不会检索元素的子元素
public static void WalkControlElements(AutomationElement rootElement)
{
if (rootElement == null) return;
var children = new List<AutomationElement>();
var currentChild = TreeWalker.RawViewWalker.GetFirstChild(rootElement);
while (currentChild != null)
{
children.Add(currentChild);
currentChild = TreeWalker.RawViewWalker.GetNextSibling(currentChild);
}
foreach (var child in children)
{
Console.WriteLine(child.ToString());
WalkControlElements(child);
}
}
因为它们不是处理它们的窗口。它们是根窗口的元素。您必须处理元素(或项目)。