我试图在点击下载按钮后浏览到文件。但我写了一个递归函数,它使用AutomationElement库在任何窗口中查找控件,所以希望我可以在打开的对话窗口中找到嵌套的控件。此功能现在不起作用。请让我知道问题在哪里,或者如果您有任何建议,请告诉我。C#递归查找打开对话框中的automationElement
问题是它永远不会到else语句并且永远不会结束。所以我认为它根本找不到这个元素。
这里是元素突出,我试图用得到:
感谢
private AutomationElement GetElement(AutomationElement element, Condition conditions, string className)
{
AutomationElement boo = null;
foreach (AutomationElement c in element.FindAll(TreeScope.Subtree, Automation.ControlViewCondition))
{
var child = c;
if (c.Current.ClassName.Contains(className) == false)
{
GetElement(child, conditions, className);
}
else
{
boo = child.FindFirst(TreeScope.Descendants, conditions);
}
}
return boo;
}
你没不提哪种方式不起作用。什么都没有发生?它是否会抛出异常?如果是这样,请提供例外信息。 –
它永远不会到else语句,永不结束。所以我认为它根本找不到这个元素。谢谢 – Samy
好吧,不要忽略GetElement()的返回值。如果它不为空,它当然会是你正在寻找的那个。 –