我想按照它們在瀏覽器的選項卡欄中列出的順序獲取Chrome選項卡的列表。以正確的順序獲取Chrome選項卡
這是我的代碼:
var automationElements = AutomationElement.FromHandle(proc.MainWindowHandle);
// Find `New Tab` element
var propCondNewTab = new PropertyCondition(AutomationElement.NameProperty, "New Tab");
var elemNewTab = automationElements.FindFirst(TreeScope.Descendants, propCondNewTab);
// Get parent of `New Tab` element
var treeWalker = TreeWalker.ControlViewWalker;
var elemTabStrip = treeWalker.GetParent(elemNewTab);
// Loop through all tabs
var tabItemCondition = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.TabItem);
foreach (AutomationElement tabItem in elemTabStrip.FindAll(TreeScope.Children, tabItemCondition)) {
var nameProperty = tabItem.GetCurrentPropertyValue(AutomationElement.NameProperty);
Debug.WriteLine("title: " + nameProperty.ToString());
}
然而在foreach循環中的標題是不相同的順序,因爲它們是在瀏覽器中。有沒有辦法讓他們按正確的順序?
這個偉大的工程至今! – gartenriese
這很好,但就像我寫的那樣,這是我第一次嘗試使用'System.Windows.Automation',所以可能有更簡單的方法來完成它。老實說,通過使用@stamhaney建議的方法,它從「頁面選項卡列表」中獲取標籤,而不是調查UI矩形位置,「感覺不錯」:-) –