FlaUI, 面向. NET的UI自动化库

FlaUI是一个.NET库,旨在简化Windows应用(包括WIN32,WinForms,WPF,商店应用等)的自动化测试。它基于微软的UI自动化库,同时提供UIA2和UIA3的支持。尽管存在如TestStack.White等其他自动化解决方案,但FlaUI以更现代和干净的代码库为开发者提供了更多选择。通过NuGet包管理器,可以轻松安装并使用FlaUI进行自动化测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.Core
NuGet FlaUI.UIA2
NuGet FlaUI.UIA3
CIFlaUI 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(); . . . } 
自动化环境搭建 1、Python(推荐使用ActivePython,这个版本PATH已经配好了,也安了一些像pip这样的包) 2、WxPython(安装,保持勾选状态,不要把勾去掉!!!) 3、安装rf,以管理员身份运行cmd, pip install robotframework 4、安装RIDE,以管理员身份运行cmd, pip install robotframework-ride 5、安装Selenium2Library,以管理员身份运行cmd,pip install robotframework-selenium2library 6、安装python32位拓展,以管理员身份运行cmd,pip install pywin32 7、安装DatabaseLibrary , 以管理员身份运行cmd, pip install robotframework-databaselibrary 安装VCForPython27 安装vcredist_x64 安装驱动MySQL-python-1.2.3.win-amd64-py2.7(根据电脑自行选择32,64) 8、pip install pyodbc 需要更新setuptools,运行pip install --upgrade setuptools pip(第一遍报错,在执行一遍命令即可) 然后安装连接pyodbc的驱动mysql-connector-odbc-5.3.9-winx64.msi。(安装到这一步就完成了。下面是测试步骤,所有安装完成后再测试也可以)安装完成后打开   打开数据源添加驱动(添加按钮)   填写完整后点击test返回successful表示成功   选择 打开robot新建测试用例输入如下内容   Connect To Database Using Custom Params 连接数据的关键字 pyodbc 连接数据的工具 database='test', 数据的名字 user='root', 连接数据的用户名 password='', 密 码 host='127.0.0.1', 数据的IP port=3306, 数据的端口号 Driver='{MySQL ODBC 5.3 Unicode Driver}' 数据的驱动 query 查询语句 Disconnect From Database 断开连接数据   Execute Sql String     执行sql语句 9、安装AutoItLibrary(模拟键盘鼠标操作) 安装(选择x64安装) (路径改一下,因为program files(x86)路径win系统似乎会禁止读写,改成c:\AutoIt3即可) 安装 解压后,使用cmd(管理员启动),cd到包目录执行python setup.py install命令安装 9、pip freeze检查安装包 启动ride: 命令进入ride: 1:cmd; 2:cd c:\; 3:cd Python27; 4:cd Scripts; 5:输入命令:python ride.py。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值