寻找适用于.NET的GUI自动化框架(WinForms)

时间:2011-04-06 07:01:17

标签: c# user-interface automation

目前我们正在使用AutoIT自动化一些使用WinForms构建的内部工具。

这不是一个平滑的过程,因为就我所见,AutoIT并不能很好地处理.NET窗口。

我正在寻找一个框架:

  1. 免费(或非常便宜)。
  2. 适用于WinForms / WPF和任何其他.NET技术。 通过这种方式,我的意思是强大的控制识别,这将减少维持的开销 项目与应用程序的每个小UI更改。
  3. 不涉及脚本/最小脚本(如果可能 - 使用流行语言)。
  4. 记录模式以记录运行。

3 个答案:

答案 0 :(得分:7)

您可以使用White。 来自网站:

  

White是一个自动化框架   基于的富客户端应用程序   Win32,WinForms,WPF,Silverlight和   SWT(Java)平台。它是基于.NET的   并且不需要使用任何   专有脚本语言。   使用White的测试/自动化程序   可以用任何.NET编写   语言,IDE和工具   已经在用怀特提供了一个   一致的面向对象的API,隐藏   微软的复杂性   UIAutomation库(白色   是基于)和Windows消息。只要   稳定版的White发布,   所以所有版本都已准备就绪。

答案 1 :(得分:2)

由于您希望测试自动化.NET应用程序,因此您可能正在.NET开发中心工作。如果是这样的话,很有可能你有一个 MSDN订阅。如果您在高级(或更高)级别执行AND,那么您可以使用Visual Studio测试项目中的编码的UI测试类型来创建UI自动化测试。

  • 这是免费的,您已经拥有 MSDN 订阅 高级或以上
  • 它测试WinForms,WPF和ASP.NET UI。
  • 它不像专用UI自动化工具包那样功能齐全,但您可以 已经拥有它了!
  • 可以通过记录UX测试运行来进行测试
  • 如果你必须更改/ customzie测试,那么你可以编辑其中没有那么多脚本但已经完全被破坏的.NET。最大功率,但如果你不编码.NET已经也是最大的学习曲线

答案 2 :(得分:1)

从评论中发布明确的AutoIt代码......

#include <DotNetIdentification.au3>

; "Test App" is a fake application with a control named "txtShowMe". 
$WindowName = "Test App"
$WindowText = ""

$control = NET_ControlGetHandleByName( $WindowName, $WindowText, "txtShowMe" )
if @error = 0 then 
    WinActivate( $WindowName, $WindowText )
    ControlFocus( $WindowName, $WindowText, $control )
endif