自动化桌面应用程序的击键

时间:2011-08-19 13:46:19

标签: java ruby automation desktop-application

我有一个桌面应用程序,每次都需要登录才能使用它。但我想自动执行此登录过程。

我想写一个小程序:

  1. 加载我的桌面应用程序(在预定时间内)
  2. 输入用户名
  3. 输入密码
  4. 点击登录按钮
  5. 我担心的是,桌面应用程序可以实现吗?如果可能,我应该遵循的路径是什么?

    我已经使用过Java和Ruby,所以如果我能用这两种语言开发出来的东西就会很棒。

4 个答案:

答案 0 :(得分:4)

如果您使用的话,我建议您使用AutoIt,它可以轻松完成您需要的一切。 http://www.autoitscript.com/site/autoit/

如果您喜欢python也很有用,有一个很酷的程序,叫做Sikuli,你应该看看。 http://sikuli.org/

答案 1 :(得分:4)

这将围绕AutoHotkey中的四行脚本,因为它具有与您的操作紧密相关的函数基元。

答案 2 :(得分:0)

无需编程即可完成。有许多应用程序可以保存用户的场景并重复多次! (这有助于压力测试)。

看看IBM Rational Robot。您还可以找到许多类似的免费工具。

答案 3 :(得分:0)

有关您的测试环境(Windows,Mac,Linux)以及GUI的技术(Windows GUI,Qt,嵌入式浏览器)等的更多详细信息对于确定最适合您的解决方案非常有用。

如果您是一个Windows并处理本机控件,RAutomation是一个伟大的宝石,应该做你需要的。它甚至具有AutoIt适配器模式,这使其成为AutoIt功能的严格超集。

如果您需要更多电量,请考虑查看Windows UI自动化框架。它主要在.NET中,但您可以在其周围找到或编写Java或Ruby包装器。请参阅.NET示例here

如果您正在处理作为嵌入式Web浏览器的UI,请考虑使用watir-webdriver来驱动它。您需要一些特定于平台的代码来获取嵌入式浏览器实例并绑定到它。其余的应该感觉就像一个Web应用程序。

最后,提及Sikuli对于能够在不需要API的情况下处理任何UI来说肯定是一个很好的选择。它也是Jython(yay JVM!)。也就是说,我发现它更加繁琐和脆弱,甚至比典型的UI测试还要多,因为它缺乏基于ID或某种对象层次结构的元素的识别,并且完全依赖于外观。也就是说,启动和运行起来非常快,所以请试一试。