关于Sikuli
Sikuli 是由 MIT 的研究团队发布的新型图形化编程技术。它以图像检索技术为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境。使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。Sikuli 一词取自墨西哥 Huichol Indian 土著语,意为“上帝之眼”, Sikuli 让电脑能像人一样“看”这个“真实世界”。
通过Sikuli自带的IDE,操作简单,容易上手,可以编写出非常具备可读性的代码。
使用起来,也有一些不足:
- 没有代码提示,要一边翻看api,一边写
- 调试功能比较弱
- 无法在现有的代码里边,直接集成sikuli的功能
也试过用Eclipse+Pydev来导入sikuli的jar包,使用jython驱动,但因为现有的代码都是在python下编写的,所以这个方式虽然可以脱离Sikuli的IDE,但是并不理想。
Sikuli in Python
直到前几天逛Github,发现了sikuli_cpython这个项目,启发了我,原理是pyjnius提供了可以从Python中直接访问java类的功能,通过它,实现了对Sikuli的jar包的一层封装。
先看看pyjnius的一个官方例子:
|
|
开始动手~
开发环境:Python2.7+Win10+Pycharm
相关依赖
- Cython
- pyjnius
- JDK
环境变量需要配置JAVA_HOME
Path里边,需要加入jvm.dll所在目录
效果展示
例子1:把图标拖动到文件夹中,最后高亮这个文件夹,并双击它。
|
|
例子2:通过similar方法设置相似度,默认是0.7,在屏幕中查找多个相似度为50%的对象,并依次高亮,移动到上边。
|
|
源码已在Github,欢迎围观~