我在使用C#UIAutomation查找Firefox的UI元素时遇到了麻烦。
在Inspect.exe中,一切看起来都很好:
但是,当以root身份在窗口上使用以下方法时,只会找到以黄色突出显示的元素。我需要得到蓝色元素,但无法得到它。以下解决方案基于这篇文章:
UIAutomation won't retrieve children of an element
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);
}
}
答案 0 :(得分:0)
因为它们不是处理它们的窗口。它们是根窗口的元素。你必须处理元素(或项目)。