我必须使用Windows模拟包来执行重复性任务,每次选项略有不同。
由于我讨厌重复点击,基于懒惰和人类引入的错误数量,我想自动驾驶这个程序。有问题的程序不支持脚本,没有API,没有COM,nada,nyet,nravin。据我所知,自动驱动该程序的唯一方法是模仿人类(即键盘和鼠标宏)。
我知道AutoHotKey,但我不认为它能做到我想要的。 (或者它可能会做我想要的,但它的脚本语言很糟糕。)
要求是:
必须允许操作之间的时间延迟,或事件检测才能触发操作。
模拟运行最多可能需要十分钟,因此GUI驱动程序必须等到模拟完成后再开始新模拟。
这样做的一种方法是等待十分钟,并希望模拟完成。另一种方法是使其成为事件驱动的,即观察“模拟运行...”对话框消失并替换为“模拟完成”对话框。
必须允许复杂键盘输入的组合。
每次模拟运行所需的一些键盘输入是不同的。例如,模拟描述可能采用格式[Project name][Scenario name][Option 1][Option 2]...
,并且必须为每次模拟输入。
我知道AutoHotKey允许基本级别的输入自定义,但是我随意阅读文档会使脚本语言看起来像某种恶意恐怖。
这是为了工作,所以任何解决方案都必须免费用于商业用途。
我会接受任何符合上述标准的解决方案,但我对可以从Python驱动的内容有一个强偏好。但是我也会接受自动化的GUI测试工具,我可以自定义它来做我想要的 - 可能是一个等同于Selenium的Win32 GUI浏览器? - 键盘宏录制器,它将生成自定义输出或其他任何有效的输出。
答案 0 :(得分:11)
Sikuli是一种自动化和测试图形用户的视觉技术 使用图像的界面(GUI)(屏幕截图)。 Sikuli包括Sikuli 脚本,Jython的可视化脚本API,以及Sikuli IDE 用于编写可视脚本的集成开发环境 截图轻松。 Sikuli Script可以自动完成您在上面看到的任何内容 屏幕没有内部API的支持。您可以以编程方式 控制网页,Windows / Linux / Mac OS X桌面应用程序,或 甚至是在模拟器或通过运行的iPhone或Android应用程序 VNC。
看看Sikuli,它对我有用。
答案 1 :(得分:6)
看看Automa - 它是用Python编写的。它可以在您自己的脚本中用作独立工具或Python库:
from automa.api import *
它允许通过点击,按下,写入等命令自动执行任何Windows应用程序。
可以在http://www.getautoma.com/blog/category/ui-automation-examples
找到自动化脚本的一些示例免责声明:我是Automa的开发人员之一。
答案 2 :(得分:5)
根据您的要求给出Autohotkey另一种外观,它似乎适合这项工作。
或者,请检查Microsoft的UI自动化:http://msdn.microsoft.com/en-us/library/ms747327.aspx以及白色:http://white.codeplex.com/
答案 3 :(得分:4)
答案 4 :(得分:1)
您可以将PyAutoGUI library用于适用于Windows,macOS和Linux的Python。
必须允许行动之间的时间延迟。
在每个键之间键入四分之一秒暂停的示例:
Query
以下是在每次PyAutoGUI调用后设置2.5秒暂停的示例:
import pyautogui
pyautogui.typewrite('Hello world!', interval=0.25)
必须允许复杂键盘输入的组合。
结帐keyboard control functions,您可以使用pyautogui.PAUSE = 2.5
输入内容。您可以传递变量以允许复杂的键盘输入。
事件检测以触发操作。
您可以使用locate functions在屏幕上直观地找到某些内容,并在一个简单的循环中根据该内容创建条件。
解决方案必须免费用于商业用途。
它是根据BSD许可的,允许商业用途。
另见:
答案 5 :(得分:0)
RIATest不是使用Python,而是符合条件。它就像Selenium,但适用于Win32 和 web。
RIATest使用Windows UI Automation API,可以驱动任何公开其GUI到UI自动化的Windows应用程序(包括所有本机和.NET应用程序)。
免责声明:我为RIATest公司Cogitek工作。