Sikuli,一个神奇的软件
双十一淘宝营业额三百多个亿,总理都忍不住点个赞,我也没闲着,鼓捣了个小东西凑热闹
淘宝双十一真是煞费苦心,各种红包各种有货,实验室同学一直在不停的刮刮乐,我感动得不行,决心采用一点低科技的东西帮助她……
刮刮乐的流程非常的简单,就是用iPhone客户端打开页面,在屏幕上滑动几下模拟刮奖的过程,刮开之后就会弹出一个Dialog告诉你是否中奖,然后点继续刮奖,然后就继续刮……
如此重复儿简单的操作,用点自动化的脚本,应该是手到擒来,自然想到了sikuli
自动化脚本sikuli
- 大名鼎鼎的sikuli是MIT的用户接口设计组的一个开源项目,旨在帮助我们做关于界面操作的自动化处理工作,说白了就是能够重复的做一些鼠标点击、键盘输入的事件
- sikuli的牛逼之处一:IDE太好玩了,能直接放图片进去,用得时Python脚本,人性化的一B啊!另外这种截图,各种命令组合,真是奇妙啊,只有你想不到,没有做不到
- sikuli牛逼之处二:用到了图像识别,而且识别的异常的好,即使图像不是完全匹配也能识别
工具有了,下一步就是怎么能用sikuli来控制iPhone,iPhone上控制PC的软件一大把一大把的,但是反过来控制的很少很少……因为iPhone封闭性强,做到实时的录屏有点难为人了。
搜索了很久看到大家都用TeamViewer,我下载下来发现怎么都连不上,不知道是不是MAC上得软件版本和iPhone上得app版本不匹配还是路由器的问题。
失败之后,再去找发现了Veency这个插件,Veency允许我们通过任何Mac或PC访问iPhone,在越狱商店里能搜索到Veency,好像是Saurik开发的一个插件
MAC控制iPhone:VNC
- 在Cydia里面搜索Veency,安装即可
- 在MAC上下载VNC Viewer
- MAC和iPhone连在同一个内网
- 在设置里看下iPhone的IP地址,把这个地主输入到VNC Viewer上,点击发送请求
- iPhone作为服务器,MAC作为客户端,就能够在MAC上看到手机里的实时画面了,可以鼠标来操作
- 小缺陷是MAC上得显示画面略卡(我用的式touch3代32g),没想明白是什么原因
编写脚本
能操作了,最后就是写脚本,如图所示:
基本认识英文就能读懂代码了。
- find 查找某一图像
- wait(a image,FOREVER)等待一个图像直到永远……
- hover鼠标hover上去
脚本写的还算鲁棒,不过运行起来比较慢,我考虑原因可能是sikuli的原理毕竟都是再用图像的识别,这样窗口的搜索肯定会慢,而且我写的代码里面没有制定搜索范围,这样肯定是全屏搜素,效率更低
最后这个软件虽然能够良好运行,但是我得说淘宝那概率低得,半天时间刷出来4元,放弃……