简介: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
WindowsOnly 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运行确实会有权限方面的问题。
如果还遇到问题,欢迎留言,我会及时回答。