当前位置: 首页 > news >正文

一个 .NET 开源免费、功能强大的 UI 自动化库

前言

今天大姚给大家分享一个 .NET 开源免费(MIT license)、功能强大的 UI 自动化库:FlaUI。

项目介绍

FlaUI 是一个 .NET 开源免费(MIT license)、功能强大 的 UI 自动化库,专为 Windows 桌面应用程序(如 Win32、WinForms、WPF、Store Apps 等应用)的自动化测试而设计。该项目基于 Microsoft 的原生 UI Automation 库构建,并作为这些库的封装器,提供了丰富的功能和灵活的 API,以便开发者能够高效地编写自动化测试脚本。

应用场景

FlaUI 适用于多种自动化测试场景,包括但不限于:

  • 功能测试:验证应用程序的各项功能是否正常工作。
  • 回归测试:在应用程序更新后,确保现有功能不受影响。
  • UI 验证:检查 UI 元素是否按预期显示和交互。
  • 等等等...

项目源代码

image

创建 FlaUIExercise

创建名为FlaUIExercise的控制台应用:

image

image

NuGet 包安装

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

image

操作记事本(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;
        }
    }

image

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个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
 
http://www.jsqmd.com/news/135672/

相关文章:

  • Chap20-Communication
  • 03. 图像的基本处理
  • Asio16-MultiThreadServicesPool
  • Chap17-SearchUsers
  • 2025继续教育必备8个降AI率工具测评榜单
  • Asio17-MultiThreadPool
  • 【大模型技术研究】SGLang入门指南:高效大模型推理与编程的利器(附实战代码)
  • 一个使用 WPF 开发的 Diagram 画板工具(包含流程图FlowChart,思维导图MindEditor)
  • 领导根本不关心你干了多少活,只在意这3点
  • 70
  • Asio12-HandlePacketStickingProblemSimply
  • 第三章 SQL Server函数
  • Chap22-DistributedLock_MultiServer
  • Asio09-SendQueueAndEndian
  • 第四章 SQL Server备份和还原
  • 5分钟使用modelengine打造儿童数字人,小白也能快速上手以低代码的方式快速搭建智能应用,从而大幅降低开发难度
  • 基于springboot在线课程管理系统的设计与实现毕业论文+PPT(附源代码+演示视频)
  • LLM - 用 SpecKit 和 AICode 改造遗留系统 完整实践指南
  • Elasticsearch数据膨胀?调优部署全攻略
  • 【计算机毕业设计案例】基于Java的停车场管理系统、预订车位系统、停车缴费(程序+文档+讲解+定制)
  • Router_路由的基本使用
  • 计算机Java毕设实战-基于Java的停车场管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 快速检查Ubuntu进程是否运行的3种方法
  • Java毕设项目:基于springboot的公司财务预算管理系统(源码+文档,讲解、调试运行,定制等)
  • 贝叶斯优化Transformer-LSTM的模型结构图
  • 番茄小说下载器 2025.12.21 | 现代化、高效的番茄小说下载器,支持批量下载和多种格式导出
  • 计算机Java毕设实战-基于SpringBoot的植物知识管理与分享平台的设计与实现家庭园艺种植分享平台设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Router_路由重定向和其他小细节问题
  • Java毕设项目:基于SpringBoot+Vue技术的医疗器械管理系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • Redis 数据结构底层与 Hash 优于 JSON 的工程实践