一. SikuliX是什么
SikuliX的前身是 Sikuli。Sikuli是由MIT(麻省理工学院)研究团队发布的一种基于OpenCV图像识别技术的自动化工具软件。
Sikuli 是2009 年由在麻省理工学院用户界面设计小组作为一个开源研究项目,负责人分别是Tsung-Hsiang Chang 和 Tom Yeh。两人在 2012 年离开了 Sikuli-X-1.0rc3 的项目。后续由RaiMan接管开发和支持至今,并将其命名为 SikuliX。
SikuliX可对人眼能看到的任意应用软件界面进行自动控制,以实现各种软件操作步骤的自动化。软件界面可以是Windows、Mac或则Linux/Unix系统上的任何可见内容。
提供了SikuliX IDE,用户可通过简单的脚本开发实现屏幕上人眼可见的任何图形界面进行各种操作,如模拟操作鼠标点击、拖动,或则模拟键盘的输入
目前最新的稳定版本为 SikuliX 2.05,2.06版本即将发布。之前网络上对SikuliX介绍的都是1.0x版本。
二. SikuliX可能的使用场景
在日常学习工作中,你希望控制软件自动的执行重复性的任务
在玩游戏时,你想要自动化某些重复的操作
在 IT 运维中,你希望自动化管理任务开发
在软件自动测试中,被测软件的组件不能准确识别时,可以使用SikuliX
定时抢购什么优惠的物品,还有其他更多的使用场景期待你的发现... ...
三. SikuliX IDE安装
新版本的SikuliX安装极其简单并且容易上手,最新的稳定版本为 SikuliX 2.05。
笔者制作了一个绿色版安装包,下载解压后即可运行,无需其他配置。
提别提醒:请保存在”纯英文“的文件路径下,例如:d:\MyLearning
下载链接:https://pan.baidu.com/s/1dQ4R-SgHKRSmVTFaziP9Xg?pwd=dupd 提取码:dupd
2. 解压缩文件后如图1,双击文件“RunSikuli2.05.bat”即可,如图2为SikuliX IDE-2.05的界面。
图1 安装包解压后的文件目录
图2 SikuliX 2.05界面
四、入门示例1:Hello World
让我们从一个惯用的 Hello World 示例开始!
学习目标:在开始菜单搜索框中自动键入“Hello World”
学习内容:如何捕获 GUI 元素的屏幕截图并编写一个 Sikuli 脚本来实现:
单击屏幕上期望的按钮
在文本框中输入字符串:Hello World
如下图所示的为期望效果:
执行步骤:
1) 启动SikulixIDE等待IDE界面出现,可双击“RunSikuli2.05.bat”,。
2) 在代码区域输入:click(),并将光标移动到括号中间,如下图所示:
3) 点击SikulixIDE工具栏的第一个图标,进入截屏模式。
在截屏模式下,屏幕看起来会变暗并会暂时冻结。整个桌面就像一个画布,你可以在其中围绕要捕获图像的目标绘制一个矩形。红色虚线的十字表示您刚刚绘制的矩形的中心:
绘制一个矩形后,矩形内的图像将被捕获并插入到当前光标位置的脚本编辑器中:
此代码表示:使用此图像作为click函数的输入参数。
如是Win7系统选中,可选中Windows徽标:
4) 在代码区域输入:type(‘Hello world’),如下图所示:
5) 点击工具栏中间的“运行”,查看运行效果。
如出现保存脚本对话框,请选择合适的路径输入“HelloWorld”作为脚本名称保存。
6) 恭喜!您刚完成了第一个 Sikuli 脚本。体验一下点击“逐步运行”的效果,有小惊喜。
提醒:脚本运行后,SikuliIDE界面会隐藏;脚本完成执行SikulixIDE会再显示。
小结:SikuliX 脚本 (.sikuli) 是包含实现测试用例的 Python 源文件 (.py) 以及源文件使用的所有图像文件 (.png) 的文件夹。 Sikuli 脚本中使用的所有图像路径都默认是 .sikuli 包中 .png 文件的路径。
默认情况下,当在使用SikuliX IDE 保存时,SikuliX 脚本文件夹/目录与脚本同名。包含的脚本文件必须与文件夹同名。如图所示样例:
type('a',Key.CTRL) #先用ctrl+a选中
type(Key.DELETE) #然后全部删除
wait(2)
type("JAVA\n")
wait(2)
type(Key.BACKSPACE) #一次删除一个字符
capture(0,0,600,600) 四个参数分别是 截图的起始位置x,y, 图片的长度和宽度
Sikulix的脚本用法详情参考官方文档
键盘基本操作:
http://www.manongjc.com/detail/39-yybxvkqkhesdnme.html