FlaUI, 面向. NET的UI自動化庫


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
    
 

Alt text

徽章

什么徽章
 
聊天 Join the chat at https://gitter.im/FlaUI/Lobby
  Build status
測試 Test status
庫( NuGet ) NuGet FlaUI.CoreNuGet FlaUI.UIA2NuGet FlaUI.UIA3
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(); . . . } 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM