python - 从脚本驱动 Windows GUI 程序

标签 python winapi user-interface automation gui-testing

我必须使用 Windows 模拟包来执行重复性任务,每次使用的选项都略有不同。

由于我讨厌重复点击,基于懒惰和人类引入的错误数量,我想自动驱动这个程序。有问题的程序不支持脚本,没有 API,没有 COM,nada,nyet,nravin。据我所知,自动驱动该程序的唯一方法是模仿人类(即键盘和鼠标宏)。

我知道 AutoHotKey,但我认为它不能满足我的要求。 (或者它可能会做我想做的事,但它的脚本语言很糟糕。)

要求是:

  • 必须允许 Action 之间的时间延迟,或事件检测来触发 Action 。

    模拟最多可能需要十分钟才能运行,因此 GUI 驱动程序必须等到模拟完成才能开始新的模拟。

    执行此操作的一种方法是等待十分钟并希望模拟已经完成。另一种方法是使其成为事件驱动的,即注意“Simulation running...”对话框消失并被“Simulation complete”对话框取代。

  • 必须允许组合复杂的键盘输入。

    每次模拟运行所需的某些键盘输入都不同。例如,模拟描述可能采用 [Project name][Scenario name][Option 1][Option 2]... 格式,并且必须为每个模拟输入。

    我知道 AutoHotKey 允许基本级别的输入自定义,但我对文档的随意阅读使脚本语言看起来像是某种可怕的恐怖。

  • 这是用于工作的,因此任何解决方案都必须免费用于商业用途。

我会接受任何符合上述标准的解决方案,但我对可以从 Python 驱动的东西有强烈偏好。但是,我也会接受自动化的 GUI 测试工具,我可以自定义这些工具来做我想做的事——可能是 Win32 GUI 等价于 Selenium。浏览器? - 将生成自定义输出的键盘宏记录器,或任何其他工作。

最佳答案

Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.

Sikuli ,它对我有用。

关于python - 从脚本驱动 Windows GUI 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698512/

相关文章:

android - 如何为不同的屏幕开发一个 Android 应用程序?

python - 以编程方式更改监视器输入源

python - 执行源代码时忽略 ImportError

c - 捕获WM_CHAR消息时如何检测UNICODE字符?

c++ - 在 resource.rc winapi c++ 中更改运行时的文本文件

objective-c - 如何限制 NSTextField 文本长度并始终保持大写?

python - 如何在同一行名称中按列插入空白行的值,然后将插入的数据复制到原始 DataFrame?

Python/PyODBC 通过 IP 与可信连接连接到 SQL Server 2008 DB

c - _wgetenv 得到 ??当值包含 Unicode 字符时标记值(日语)

android - 更改系统级对话框: TimePicker, DatePicker