• 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();
    
    
    . . .
    
    
    }
    
    
    
    
  • 相关阅读:
    转 Unicdoe【真正的完整码表】对照表
    golang中,unsafe.sizeof到底是干嘛的?
    转载 Golang []byte与string转换的一个误区
    python异常处理--try except else raise finally
    微信静默授权增加浏览器历史记录导致跳转死循环的解决方案
    package-lock.json,我们应该了解
    webpack实现静态资源缓存的那点事
    webpack+babel项目在IE下报Promise未定义错误引出的思考
    CORS预检请求详谈
    谈谈form-data请求格式
  • 原文地址:https://www.cnblogs.com/soundcode/p/12383035.html
Copyright © 2020-2023  润新知