簡介:Sikuli 是一種新穎的圖形腳本語言,或者說是一種另類的自動化測試技術。它與我們常用的自動化測試技術(工具)有很大的區別。
關於配置,一直是一個問題,下面做個總體介紹,用sikuli也有幾個月時間了,是時候做個備忘.
技術難點:怎么用maven+sikuli做個組合?
http://mvnrepository.com/artifact/org.sikuli maven倉庫里只有四個jar包,sikuli的核心jar包script包沒有,這應該怎么辦?
先把pom.xml貼出來:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.infomorrow.clientdetect</groupId> <artifactId>clientdetect</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>clientdetect</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- sikuli --> <dependency> <groupId>org.sikuli</groupId> <artifactId>sikuli-core</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.sikuli</groupId> <artifactId>sikuli-api</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>org.sikuli</groupId> <artifactId>sikuli-webdriver</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>org.sikuli</groupId> <artifactId>sikuli-script</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
建立這個項目后,你會發現有報錯,說sikuli-script包找不到。
所以這個時候應該把sikuli-script jar包找到,sikuli-ide里有此包,下載地址為http://www.sikuli.org/downloadrc3.html
直接下載sikuli-ide,地址https://launchpad.net/sikuli/sikulix/x1.0-rc3/+download/Sikuli-X-1.0rc3%20%28r905%29-win32.exe
順便看下sikuli支持的環境:
This Information is for the previous version Sikuli Script X-1.0rc3
Windows
Only 32-bit version is provided. But this version should run on both 32-bit and 64-bit Windows systems.
Prerequisites:
|
只支持32位的jdk 1.6,不支持jdk 1.7和64位的jdk,這里我用的是jdk 1.7 32位測試是沒有問題的。64位win7和32位win7測試都是沒有問題的。
下載好.exe文件以后,安裝一下,然后把C:\Program Files\Sikuli X\sikuli-script.jar拷到C:\Users\Administrator\.m2\repository\org\sikuli\sikuli-script\1.1.0\下面改名稱為sikuli-script-1.1.0.jar,這樣maven就不會報錯了。偽裝一下,maven只會有黃色的提示信息,但不再報錯。
然后寫個簡單的例子:
C盤下自己隨便找個圖片,然后運行一下下面的例子
import org.junit.Test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class test { @Test public void testee() throws FindFailed{ Screen s = new Screen(); s.click("C:\\logo.png"); } }
不出意外會報錯,Getting the VisionProxy.dll: Can not find dependent libraries 就是說找不到.dll文件,如果你沒有安裝.net framework 4.0(或4.5)安裝下,看還會不會報錯,這個時候你到
相關目錄下去找.dll,是可以找得到的,蛋疼吧?怎么解決這個問題?
截取網站上一解決方法:
- You must use a 32bit JRE version (I use jre-7u4-windows-i586.exe)
- Download Sikuli IDE for Windows (I use "Sikuli X r930", portable version)
- Unpack it and copy files to your project folder (I renamed it to "sikuli-ide", check image
)
- Add sikuli-script.jar to the Referenced Libraries (Project > Properties > Java Build Path > Libraries, check image
)
- Set PATH and SIKULI_HOME environment vars (Run > Run Configurations > Environment, check image
)
- You're ready to go ;)
這個方法是可以解決問題,但如果你想搞自動化不可能每個程序都重設一下enviroment吧?那就這樣吧,檢查一下你的環境變量,
這個是你安裝sikuli時就有的,既然已經配置了為什么還不行?
1)重啟一下你的電腦說不定再試的時候就好了,我的就是這種情況。
2)但並不是每個重啟后都是這樣,那么這個時候就要注意了,重啟電腦---》右鍵以管理員身份運行eclipse,再運行下程序就行了。
3)再不行你就就注意把sikuli_home,path里的內容移動到系統變量里,這樣每個用戶都可以使用了,成功解決權限問題。
sikuli運行確實會有權限方面的問題。
如果還遇到問題,歡迎留言,我會及時回答。