python调用sikuli的方法

发布时间:2020-09-03 10:22:58 作者:小新
来源:亿速云 阅读:990

这篇文章主要介绍了python调用sikuli的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

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调用Sikuli的方法,前置条件:

必须已经配置过Java环境

Python基础环境已经安装

第一种 – Jpype

首先安装Jpype包:官网 打开命令行输入 pip install JPype1 进行安装,会提示安装成功。

python调用sikuli的方法

如果安装失败可能是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,

打开链接,点击下载:

python调用sikuli的方法

3.将下载的jar包放入到合适的文件中,Jpype的环境已经可以了,你可以尝试以一下,启动桌面上的Chrome(运行代码时确保桌面上Chrome的图标没有被其他窗口遮挡,要不然会报错的)。

from jpype import *  
# 需安装VCForPython27
# C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
print getDefaultJVMPath()
startJVM(getDefaultJVMPath(), "-ea", r"-Djava.class.path=F:\work\project\test\sikuli_test\sikulixapi.jar")
java.lang.System.out.println("hello world")
Screen = JClass("org.sikuli.script.Screen")
screen = Screen()
# r"F:\work\project\test\sikuli_test\imgs\Chrome.png" 你截取桌面上chrome图标的图片路径
screen.doubleClick(r"F:\work\project\test\sikuli_test\imgs\Chrome.png")
shutdownJVM()

第二种 – Pyjnius

由于pyjnius依赖cython包,所以先进行安装cython,打开命令行进行安装cython

pip install cython

然后安装pyjinus

pip install pyjnius

安装完成后,启动桌面上的Chrome进行验证

import os  
# 将jvm.dll 的路径加入系统变量,两者加任意一个即可,
# 也可以将其配置到系统变量中,就不必每次运行脚本时设置了
os.environ["path"] = r"C:\Program Files\Java\jdk1.8.0_131\jre\bin\server"
os.environ["path"] = r"C:\Program Files\Java\jre1.8.0_131\bin\server"
  
# 将sikuli的jar包引入到CLASSPATH中
os.environ["CLASSPATH"] = r"F:\work\project\test\sikuli_test\sikulixapi.jar"
from jnius import autoclass
  
# 调用Java jar中的类
Screen = autoclass("org.sikuli.script.Screen")
s = Screen()
s.doubleClick(r"F:\work\project\test\sikuli_test\imgs\Chrome.png")

结论

Python 调用Sikuli归根结底还是Python调用Java类,以上的是Python调用Java的两个简单应用,其实在我们用Python(selenium、appium)进行自动化的时候,会遇到无法识别的元素就可以运用上面的两种方式进行操作(也可以操作文件上传基于Python+selenium+sikuli),可以把sikuli作为一个辅助工具来使用,不必安装sikuli的环境尽可以调用,方便实用,不过不同的平台可能图片的识别率比较低。

感谢你能够认真阅读完这篇文章,希望小编分享python调用sikuli的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

推荐阅读:
  1. python调用idle的方法
  2. python调用youget的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python sikuli

上一篇:Python 解决OPEN读文件报错 ,路径以及r的问题

下一篇:python头文件的编程风格

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》