sikuli的官网地址:http://www.sikuli.org
首先下载sikuliX的jar包:https://launchpad.net/sikuli/sikulix/1.1.0
java-doc:http://nightly.sikuli.de/docs/index.html
官网用法介绍:http://www.sikulix.com/quickstart.html
前序工作:
1.导入jar包:sikulixsetup-1.1.0.jar
2.在cmd中运行该jar包。
java
-jar sikulixsetup-1.1.0.jar,则会出现如下图,选择相应选项后,启动会下载sikulixapi.jar。不然会报错:libs to export not found on above classpath: /sikulixlibs/mac/libs64
3.启动成功后会出现如下提示
4.截图,即代码中需要用到的出发位置,终点位置
示例代码如下:
package seleniumapi;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Pattern;
import org.sikuli.script.Screen;
public class TestSikuli {
public static void main(String[] args) {
// TODO Auto-generated method stub
testBaiDuMap();
}
private static void testBaiDuMap() {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
WebDriver dr = new ChromeDriver();
dr.manage().window().maximize();
dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
dr.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
dr.get("http://map.baidu.com/");
// 打开工具下拉框
dr.findElement(By.id("tool-container")).findElement(By.xpath("//i[text()='工具']")).click();
// 选择测距
dr.findElement(By.id("boxul")).findElement(By.xpath("//i[text()='测距']")).click();
Screen screen = new Screen();
String frompng = "D:/from.png";
String topng = "D:/to.png";
Pattern from = new Pattern(frompng);
Pattern to = new Pattern(topng);
try {
if (screen.find(from) != null) {
screen.click(from);
}
if (screen.find(to) != null) {
screen.click(to);
}
screen.doubleClick();
// screen.doubleClick();
} catch (FindFailed e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结果如图:
注意:
sikulixapi.jar
sikulixlibswin.jar
这两个jar包必须引入,否则无效
常用api:
screen.drag(move);//拖拽
screen.doubleClick();//双击