Sikuli是由MIT(麻省理工学院) 研究团队发布的一种图形化编程技术(编程小白的福音),使用Sikuli你只需要会写HelloWorld这种最基本的编程技能即可,用Sikuli不需要去写出一行行复杂的代码,而是用屏幕截图的方式,用截出来的图形元素组合出神奇的程序。
Sikuli官网:http://slides.sikuli.org/
API doc :http://nightly.sikuli.de/docs/index.html
Sikuli是开源的,源码可在Github查看:https://github.com/sikuli/sikuli
简要说明
由于Python不能直接调用Java的方法,需要借助一些第三方的库,目前我了解到的有Jython、Jpype、Pyjnius等,本篇文章只对Jpype和Pyjnius调用Java jar包进行简单介绍,好了,it`s show time。
相关推荐:《Python教程》
环境设置
这边介绍两种Python调用Sikuli的方法,前置条件:
必须已经配置过Java环境
Python基础环境已经安装
第一种 – Jpype
首先安装Jpype包:官网 打开命令行输入 pip install JPype1 进行安装,会提示安装成功。
如果安装失败可能是Windows缺少VCForPython27导致,需要安装这个组件,下载链接:https://pan.baidu.com/s/1ILVxjb3K4hMvviCbefpfIw 提取码: 7uri ;如果下载后还安装不了,就只能下载Jpype1的压缩包进行安装了,下载安装包后,找到文件所在的命令执行 pip install JPype1-0.6.3.tar.gz
安装成功后下载sikuli的jar包,地址:https://raiman.github.io/SikuliX1/downloads.html,
打开链接,点击下载:
3.将下载的jar包放入到合适的文件中,Jpype的环境已经可以了,你可以尝试以一下,启动桌面上的Chrome(运行代码时确保桌面上Chrome的图标没有被其他窗口遮挡,要不然会报错的)。
1 2 3 4 5 6 7 8 9 10 11 |
|
第二种 – Pyjnius
由于pyjnius依赖cython包,所以先进行安装cython,打开命令行进行安装cython
1 |
|
然后安装pyjinus
1 |
|
安装完成后,启动桌面上的Chrome进行验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
结论
Python 调用Sikuli归根结底还是Python调用Java类,以上的是Python调用Java的两个简单应用,其实在我们用Python(selenium、appium)进行自动化的时候,会遇到无法识别的元素就可以运用上面的两种方式进行操作(也可以操作文件上传基于Python+selenium+sikuli),可以把sikuli作为一个辅助工具来使用,不必安装sikuli的环境尽可以调用,方便实用,不过不同的平台可能图片的识别率比较低。