- 源代碼名稱:FlaUI
- 源代碼網址:http://www.github.com/Roemer/FlaUI
- FlaUI源代碼文檔
FlaUI源代碼下載
- Git URL:
git://www.github.com/Roemer/FlaUI.git
- Git Clone代碼到本地:
git clone http://www.github.com/Roemer/FlaUI
- Subversion代碼到本地:
$ svn co --depth empty http://www.github.com/Roemer/FlaUI Checked out revision 1. $ cd repo $ svn up trunk
徽章
什么徽章聊天 | ![]() |
![]() |
|
測試 | ![]() |
庫( NuGet ) | ![]() ![]() ![]() |
CI | FlaUI CI |
簡介
FlaUI是一個. NET 庫,它幫助自動測試 Windows 應用程序( WIN32,WinForms,WPF,商店應用,。)。
它基於微軟的本地UI自動化庫,因此它是一種圍繞它們的包裝。
雖然FlaUI幾乎涵蓋了UI自動化庫,但在遇到特殊需求時還提供了本機對象,這是由所沒有的。
從UIAComWrapper項目或者 TestStack.White 復制一些想法,但從頭開始重寫以得到干凈的代碼庫。
:為什么另一個庫?
這里有相當多的自動化解決方案。 像 TestComplete。Ranorex。CodedUI這樣的商業類只是為了。 而且免費的也是 TestStack.White.
所有這些都是基於微軟提供的。 這些是UI自動化庫。 它有三個版本:
- MSAA
- MSAA非常過時,我們將跳過它( 有些類似CodedUI仍然使用它)
- UIA2: 用戶界面自動化的托管庫
- UIA2只對 C# 進行管理,這對於很好,但它不再維護,而且不支持新功能,也不支持,也不支持Store應用。
- UIA3: UI自動化庫
- UIA3是最新的版本,但仍然是實際版本( 而且應該保持)。 這種方法適用於 wpf/Windows 商店應用程序,但不幸的是,它可以擁有一些與WinForm應用程序不存在的Bug,在中不存在。
所以,商業解決方案主要基於這些和/或者實現大量解決方案代碼來解決這些問題。 TestStack.White 有兩個版本,一個用於 UIA2,一個用於 UIA3,但是因為舊的代碼庫很難使UIA3工作。 為此,它還使用附加庫,UIAComWrapper使用與托管UIA2相同的命名,並將 UIA3 com與它們包裝成一個庫。 FlaUI現在試圖為UIA2和UIA3提供一個接口,開發者可以在那里選擇它,他想使用哪個版本。 它還應該提供一個非常干凈和現代的代碼庫,以便協作和進一步的開發盡可能容易。
用法
安裝要使用 FlaUI,你需要引用適當的程序集。 如果你想使用UIA2或者UIA3並從NuGet安裝適當的庫,那么你應該決定。 當然,你當然可以下載源代碼並自己編譯。
在代碼中的用法入口點通常是一個應用程序或者桌面,因此你可以獲得一個自動化元素( 就像應用程序的主窗口)。 然后,你可以搜索子元素並與它們進行交互。 有一個 helper 類可以啟動,附加或者關閉應用程序。 因為應用程序不與任何UIA庫相關,所以需要創建自動化並使用它來獲得第一個元素。
var app = Application.Launch("notepad.exe"); using (var automation = new UIA3Automation()) { var window = app.GetMainWindow(automation); Console.WriteLine(window.Title); . . . }
var app = Application.Launch("calc.exe"); using (var automation = new UIA3Automation()) { var window = app.GetMainWindow(automation); var button1 = window.FindFirstDescendant(cf => cf.ByText("1"))?.AsButton(); button1?.Invoke(); . . . }