Mar 28
mousepotatoLife Computers
入手 second-hand T43一台,神清气爽!
从此,
小白与小黑过上了幸福的生活!
Feb 11
mousepotatoTechnology Computers, JVM
你见过这样编程的么?
截几个图,说几个命令.电脑就乖乖的帮你做事.当时我就震惊了.
这就是Sikuli, vgod同学带给我们的一个神乎其神的东西.话说vgod童鞋的vim cheat sheet 还一直摆在我的桌前没有背熟,这下他在MIT带来的东西好玩多了.
SIKULI是一个基于图形化编程语言.它的输入很多是基于截图的,再加上少量的命令.它不需要任何内部API的支持.能够自动操作任何屏幕内的元素.并且是夸平台的(依据JVM,但是JVM是夸平台的).
那SIKULI是啥意思呢, SIKULI在墨西哥语中表示上帝的眼睛(God’s Eye)
二.怎么编程阿?
SIKULI自带了一个IDE.非常小(12M).剩下的工作就是截截图,做点测试. 我也是刚使用不过30分钟.在写这篇blog之前做了一个自动打开firefox,登录Gmail,然后发送一条Buzz消息的自动化小程序.看看啥样子吧:
流程非常清楚:打开firefox,开启一个新的tab,输入gmail网址,然后是用户名和密码(我采用的是自动记录的的方式.) setAutoWaitTimeout(5000)等5秒钟(单位应该是秒吧,猜的!!!)
然后点击Google Buzz等待输入框出现,然后点击输入框, 使用type命令模拟输入”Hi I can change my status using Sukuli”,点击post,搞定!
三.使用感受
- 编程体验相当好.当然一定要想清楚流程(有时候要很傻瓜的方式).基于截图的,有时候识别的不是很好.而且对模拟的环境要求较高.可能有时候自动化脚本不能执行;
- IDE暂时比较简陋.按 (<–) 在tab间跳来跳去的;
- 测试的时候有时候死锁独占资源.比如firefox的截图不匹配时,程序不会自动退出,而是等待匹配的图像.(可能有高级的条件判断语句等,还没看document).
四.它能干嘛?
只能说use your imagination吧. 随便说几个:
- 自动完成日常操作,收邮件,数据库备份,以及诸如清理系统垃圾(如何和系统定时程序如*nix的crontab结合成为了一个不错的脚本)(apple script也很强大,但是稍难);
- 自动发送消息(Twitter,Google Buzz, Plurk),如何SIKULI提供一些系统内置函数,比如时间函数,至少可以做个自动报时的机器人嘛;
- 完成一些程序和软件的自动测试,甚至比较NB的人可以用它来玩游戏,像鼠标自动点击器;
- 还有个比较N的,可以拿它去玩QQ的连连看游戏,输入截图,让程序自动去匹配,然后你就在边上看.嘿嘿!
- Jython的实现,可以使用Python去调用,方便集成;
- 让我知道了Image Processing还是很强的!
Recent Comments