• 源代码名称: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(); . . . } 

FlaUI, 面向. NET的UI自动化库相关推荐

  1. python做ui自动化_[python]RobotFramework自定义库实现UI自动化

    1.安装教程 环境搭建不多说,网上资料一大堆,可参考https://www.cnblogs.com/puresoul/p/3854963.html,写的比较详细,值得推荐.目前python3是不支持r ...

  2. LuLu UI - 腾讯阅文集团出品的“半封装” 开源 Web UI 组件库,特点是面向设计、简单灵活、支持 Vue

    阅文集团前端大神张鑫旭的团队出品的面向设计的前端 UI 组件库,上手简单,定制性强. 关于 LuLu UI LuLu UI 是一款面向桌面端和移动端网页开发的组件库,由阅文集团前端团队出品.阅文集团由 ...

  3. 我猜你没听过UI自动化技术?

    来自:高德技术 一.背景 汽车导航作为ToB业务,需要满足不同汽车厂商在功能和风格上体现各自特色的需求.针对这种情况,传统的UI开发方式,基本上是一对一的特别定制.但是这种方式动辄就要500~600人 ...

  4. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可. 在公司的Web前端项目开发中,多个项目采用 ...

  5. 17款优秀的Vue UI组件库汇总

    17款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可. 在公司的Web前端项目开发中,多个项目采用 ...

  6. 网易 UI 自动化工具 Airtest 浅用记录

    一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架 同时也支持原生Android App 的基于元素识别的UI自动化测试. 本文主要使 ...

  7. Vue UI组件库总结推荐

    基于Vue的Quasar Framework 介绍 这个框架UI组件很全面,准备下次使用这个框架了 基于Vue的Quasar Framework 中文网 http://www.quasarchs.co ...

  8. 优秀的Vue UI组件库

    Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正 ...

  9. 软件测试知识点和面试题--UI自动化篇

    主流自动化测试框架介绍 软件测试的自动化一般可以分为3层 * 代码层的单元测试 * 接口层的集成测试 * UI 层的测试 1)代码层自动化 代码层的自动化一般指针对代码进行的单元测试,比较常用的单元测 ...

最新文章

  1. Transformer与BERT浅说
  2. Java基于Socket文件传输示例
  3. 制度缺陷还是人性不堪
  4. 【Leetcode | easy】罗马数字转整数
  5. c语言equal,C ++中的ratio_equal()示例
  6. 《南溪的目标检测学习笔记》——权重初始化
  7. 但愿Fedora 10有Ubuntu Wubi安置遵命
  8. 【渝粤教育】国家开放大学2018年春季 7392-22DMatlab语言及其应用 参考试题
  9. c++_cin.getline()与getline() _getline(cin,str,20)
  10. vue-music 关于搜索历史本地存储
  11. 请以平常心看这篇帖子
  12. matlab的基本语法规则_MATLAB语法规则
  13. 小孩子都喜欢的卡通影视角色原来是用maya软件制作出来的
  14. Lisp语言中的print函数
  15. 转:超越一切的熵增定律
  16. java简述什么是事务_java什么是事务意思概念
  17. 深度解析国内O2O模式
  18. 将视频文件旋转90°的方法
  19. 《程序员的自我修养》阅读笔记(一)
  20. 自动关闭MessageBox

热门文章

  1. OpenCV k均值聚类kmeans clustering的实例(附完整代码)
  2. OpenCV cv :: Mat的串行输出功能的实例(附完整代码)
  3. OpenGL 分层渲染Layered Rendering的实例
  4. C++ kadane算法的实现之一(附完整源码)
  5. proxmoxve打造云桌面_基于PROXMOX VE的家庭NAS搭建方案
  6. 复制并重命名文件_视频文件太大怎么办?快速压制视频只需一招,好多大咖都在用...
  7. JFinal开发环境搭建,JFinal开发案例
  8. 15_Android中任务栈
  9. mysql max_allowed_packet 设置过小导致记录写入失败
  10. Oracle ETL日志审计存储过程示例