ui automation是microsoft .net 3.0框架下提供的一種用於自動化測試的技術,是在msaa基礎上建立的,msaa就是microsoft active accessibility。ui automation在某些方面超過了msaa,ui自動化提供了windows vista中,微軟windows xp的全部功能,和windows server 2003。
在ui automation中,所有的窗體、控制項都表現為乙個automationelement, automationelement 中包含此控制項或窗體的屬性,在實現自動化的過程中,我們通過其相關屬性進行對控制項自動化操作。對於ui使用者介面來說,所有顯示在桌面上的ui,其實際是乙個ui tree,根節點是desktop。我們可以使用ui spy或者是spy++來獲得window和control的相關資訊。在ui automation裡,根節點表示為automationelemnet.rootelement. 通過根節點,我們可以通過窗體或控制項的process id、process name或者window name找到相應的子automationelement,例如dialog、button、 textbox、checkbox等標準控制項,通過控制項所對應的pattern進行相關的操作。
如下圖所示:
1. 在服務端由uiautomationprovider.dll和uiautomationtypes.dll提供。
2. 在客戶端由uiautomationclient.dll和uiautomationtypes.dll提供。
3. uiautomationcore.dll為ui自動化的核心部分,負責server端和client端的互動。
4. uiautomationclientsideprovides.dll為客戶端程式提供自動化支援。
本文主要簡單介紹了
ui automation
相關結構以及核心庫。
github:
UI Automation開發 心得筆記五
ui automation的另乙個含義是在沒有ui智慧型分析的前提下,要想保證程式的穩定性,就必須增加一些對ui元素或是os環境的檢查來代替人的反射行為。這話是不是太難以想象其其中的意思。舉個例子 有這麼乙個情景 在登入乙個常用的應用程式的時候,一般只需要輸入使用者名稱就可以,而不用去檢查高階選項裡...
用UIAutomation識別UI元素 二
找到視窗就可以開始找視窗上的ui元素了。比如我想找calculator上的文字框 可以用如下 實現 automationelement.findfirst 的方法 public automationelement findfirst treescope scope,condition conditi...
IOS自動化測試 UIAutomation
一 通過xcode工具編寫執行測試指令碼說明 如果是在ios模擬器上執行測試用例,需要有被測試應用的源 才有許可權把應用安裝到模擬器中,當前示例中使用了自己編寫的乙個簡單iphone應用,大家也可以直接在網上搜尋乙個開源的應用即可。1 當你有了乙個應用的源 之後,在xcode工具中,首先選中被測應用...