當前項目進行三個多月了,好久也沒有寫日志了;空下點時間,補寫下N久沒寫的日志
介紹下兩個工具
我本人正常使用的UISpy.exe工具和inspect.exe工具
這是UISPY工具使用的圖,正常使用到的幾個屬性
這里重點說一下微軟件的UI Automation中的重要類型是AutomationElement
圖上的文本元素可通過AutomationElement,上級類型來獲取子節點中的窗體或控件 ,也可以根據類型獲取
如圖所示:我們通過UIspy工具找到相應的控件名稱,就可以用以下語法和屬性獲取到窗體或控件
AutomationElement ControlTypeComboBox = grdClassBook.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ComboBox)); AutomationElement cellElement = ControlTypeComboBox.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.AutomationIdProperty, "ListBox"));
在UI Automation中有如下幾個重要屬性:
- AutomationIdProperty: 通過AutomationId來查找AutomationElement。
- NameProperty:通過控件的Name屬性來查找AutomationElement。
- ControlType:通過控件的類型來查找AutomationElement
- AutomationId: 唯一地標識自動化元素,將其與同級相區分。
- Name: WPF 按鈕的Content 屬性、Win32 按鈕的Caption 屬性以及 HTML 圖像的ALT 屬性都映射到 UI 自動化視圖中的同一個屬性Name
說明 :
AutomationElement 是微軟指定的類型
PropertyCondition類是用來對相關屬性進行條件匹配,在控件樹中查找控件時,可以通過最佳匹配來找到相應的控件。
有時UISPY工具有的地方獲取不到窗體或控件元素
所以我有時會用inspect.exe工具;自己設置下屬性,跟隨鼠標,也能把控件元素指定出來
如圖:
也能找到相應的元素屬性,我比較推薦這個工具,因為這個工具是深度獲取元素,本人在win7下面感覺這個工具比UISPY工具要快得多。
比較簡單的抓圖解釋。。。自己日志記錄,如有不同意見的歡迎拍磚。