前言

今天大姚給大家分享一個 .NET 開源免費(MIT license)、功能強大的 UI 自動化庫:FlaUI。

項目介紹

FlaUI 是一個 .NET 開源免費(MIT license)、功能強大 的 UI 自動化庫,專為 Windows 桌面應用程序(如 Win32、WinForms、WPF、Store Apps 等應用)的自動化測試而設計。該項目基於 Microsoft 的原生 UI Automation 庫構建,並作為這些庫的封裝器,提供了豐富的功能和靈活的 API,以便開發者能夠高效地編寫自動化測試腳本。

應用場景

FlaUI 適用於多種自動化測試場景,包括但不限於:

  • 功能測試:驗證應用程序的各項功能是否正常工作。
  • 迴歸測試:在應用程序更新後,確保現有功能不受影響。
  • UI 驗證:檢查 UI 元素是否按預期顯示和交互。
  • 等等等...

項目源代碼

一個 .NET 開源免費、功能強大的 UI 自動化庫_UI

創建 FlaUIExercise

創建名為FlaUIExercise的控制枱應用:

一個 .NET 開源免費、功能強大的 UI 自動化庫_UI_02

一個 .NET 開源免費、功能強大的 UI 自動化庫_Core_03

NuGet 包安裝

在 NuGet 包管理器中搜索 FlaUI.UIA3 安裝:

一個 .NET 開源免費、功能強大的 UI 自動化庫_ci_04

操作記事本(Notepad)

public class Program
    {
        static void Main(string[] args)
        {
            OperateNotepad();
        }

        /// <summary>
        /// 操作記事本(Notepad)
        /// </summary>
        /// <returns></returns>
        private static void OperateNotepad()
        {
            // 啓動記事本
            var notepadApp = Application.Launch("notepad.exe");
            using (var automation = new UIA3Automation())
            {
                var window = notepadApp.GetMainWindow(automation);
                window.WaitUntilClickable();

                Console.WriteLine(window.Title);

                // 獲取編輯框(Edit 控件)
                var edit = window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Document))
                                ?.AsTextBox();

                if (edit == null)
                {
                    Console.WriteLine("未找到記事本編輯區域!");
                    notepadApp.Close();
                    return;
                }

                // 輸入文本
                edit.Text = "⚔【DotNetGuide專欄C#/.NET/.NET Core編程技巧練習集】C#/.NET/.NET Core編程常用語法、算法、技巧、中間件、類庫、工作業務實操練習集,配套詳細的文章教程和代碼示例,助力快速掌握C#/.NET/.NET Core中各種編程常用語法、算法、技巧、中間件、類庫、工作業務實操等等。";
                notepadApp.Close();
            }

            return;
        }
    }

一個 .NET 開源免費、功能強大的 UI 自動化庫_Core_05

項目源碼地址

更多項目實用功能和特性歡迎前往項目開源地址查看👀,別忘了給項目一個Star支持💖。

  • GitHub開源地址: https://github.com/FlaUI/FlaUI
  • 本文代碼示例: https://github.com/YSGStudyHards/DotNetExercises/tree/master/FlaUIExercise

優秀項目和框架精選

該項目已收錄到C#/.NET/.NET Core優秀項目和框架精選中,關注優秀項目和框架精選能讓你及時瞭解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踴躍提交PR推薦或自薦(讓優秀的項目和框架不被埋沒🤞)。

  • GitHub開源地址: https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
  • Gitee開源地址: https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md