python调用sikuli的方法
這篇文章主要介紹了python調(diào)用sikuli的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
Sikuli是由MIT(麻省理工學(xué)院) 研究團(tuán)隊(duì)發(fā)布的一種圖形化編程技術(shù)(編程小白的福音),使用Sikuli你只需要會(huì)寫(xiě)HelloWorld這種最基本的編程技能即可,用Sikuli不需要去寫(xiě)出一行行復(fù)雜的代碼,而是用屏幕截圖的方式,用截出來(lái)的圖形元素組合出神奇的程序。
Sikuli官網(wǎng):http://slides.sikuli.org/
API doc :http://nightly.sikuli.de/docs/index.html
Sikuli是開(kāi)源的,源碼可在Github查看:https://github.com/sikuli/sikuli
簡(jiǎn)要說(shuō)明
由于Python不能直接調(diào)用Java的方法,需要借助一些第三方的庫(kù),目前我了解到的有Jython、Jpype、Pyjnius等,本篇文章只對(duì)Jpype和Pyjnius調(diào)用Java jar包進(jìn)行簡(jiǎn)單介紹,好了,it`s show time。
環(huán)境設(shè)置
這邊介紹兩種Python調(diào)用Sikuli的方法,前置條件:
必須已經(jīng)配置過(guò)Java環(huán)境
Python基礎(chǔ)環(huán)境已經(jīng)安裝
第一種 – Jpype
首先安裝Jpype包:官網(wǎng) 打開(kāi)命令行輸入 pip install JPype1 進(jìn)行安裝,會(huì)提示安裝成功。
如果安裝失敗可能是Windows缺少VCForPython27導(dǎo)致,需要安裝這個(gè)組件,下載鏈接:https://pan.baidu.com/s/1ILVxjb3K4hMvviCbefpfIw 提取碼: 7uri ;如果下載后還安裝不了,就只能下載Jpype1的壓縮包進(jìn)行安裝了,下載安裝包后,找到文件所在的命令執(zhí)行 pip install JPype1-0.6.3.tar.gz
安裝成功后下載sikuli的jar包,地址:https://raiman.github.io/SikuliX1/downloads.html,
打開(kāi)鏈接,點(diǎn)擊下載:
3.將下載的jar包放入到合適的文件中,Jpype的環(huán)境已經(jīng)可以了,你可以嘗試以一下,啟動(dòng)桌面上的Chrome(運(yùn)行代碼時(shí)確保桌面上Chrome的圖標(biāo)沒(méi)有被其他窗口遮擋,要不然會(huì)報(bào)錯(cuò)的)。
fromjpypeimport*
#需安裝VCForPython27
#C:\ProgramFiles\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
printgetDefaultJVMPath()
startJVM(getDefaultJVMPath(),"-ea",r"-Djava.class.path=F:\work\project\test\sikuli_test\sikulixapi.jar")
java.lang.System.out.println("helloworld")
Screen=JClass("org.sikuli.script.Screen")
screen=Screen()
#r"F:\work\project\test\sikuli_test\imgs\Chrome.png"你截取桌面上chrome圖標(biāo)的圖片路徑
screen.doubleClick(r"F:\work\project\test\sikuli_test\imgs\Chrome.png")
shutdownJVM()
第二種 – Pyjnius
由于pyjnius依賴(lài)cython包,所以先進(jìn)行安裝cython,打開(kāi)命令行進(jìn)行安裝cython
pipinstallcython
然后安裝pyjinus
pipinstallpyjnius
安裝完成后,啟動(dòng)桌面上的Chrome進(jìn)行驗(yàn)證
importos
#將jvm.dll的路徑加入系統(tǒng)變量,兩者加任意一個(gè)即可,
#也可以將其配置到系統(tǒng)變量中,就不必每次運(yùn)行腳本時(shí)設(shè)置了
os.environ["path"]=r"C:\ProgramFiles\Java\jdk1.8.0_131\jre\bin\server"
os.environ["path"]=r"C:\ProgramFiles\Java\jre1.8.0_131\bin\server"
#將sikuli的jar包引入到CLASSPATH中
os.environ["CLASSPATH"]=r"F:\work\project\test\sikuli_test\sikulixapi.jar"
fromjniusimportautoclass
#調(diào)用Javajar中的類(lèi)
Screen=autoclass("org.sikuli.script.Screen")
s=Screen()
s.doubleClick(r"F:\work\project\test\sikuli_test\imgs\Chrome.png")
結(jié)論
Python 調(diào)用Sikuli歸根結(jié)底還是Python調(diào)用Java類(lèi),以上的是Python調(diào)用Java的兩個(gè)簡(jiǎn)單應(yīng)用,其實(shí)在我們用Python(selenium、appium)進(jìn)行自動(dòng)化的時(shí)候,會(huì)遇到無(wú)法識(shí)別的元素就可以運(yùn)用上面的兩種方式進(jìn)行操作(也可以操作文件上傳基于Python+selenium+sikuli),可以把sikuli作為一個(gè)輔助工具來(lái)使用,不必安裝sikuli的環(huán)境盡可以調(diào)用,方便實(shí)用,不過(guò)不同的平臺(tái)可能圖片的識(shí)別率比較低。
總結(jié)
以上是生活随笔為你收集整理的python调用sikuli的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 刺激战场信誉分怎么刷(一提刺激消费)
- 下一篇: 迷你世界怎么驯服鸡