我試圖在點擊下載按鈕後瀏覽到文件。但我寫了一個遞歸函數,它使用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()的返回值。如果它不爲空,它當然會是你正在尋找的那個。 –