Sikuli-Script使用

Sikuli-IDE用起来方便,但是用到实际项目中还是有局限性的,Sikuli提供了Sikuli-Script的jar包,在Sikuli-X的安装目录下,这样就可以

eclipse中使用JAVA编写代码了,并用Sikuli-Script和selenium完美结合使用。

首先新建一个Sikuli的项目,导入Sikuli-Script.jar包,然后在项目下新建一个CaleTest.java,并且在项目文件下新建一个存放图片的文件

夹PNG,在PNG文件夹下对应CaleTest.java建一个同名的文件夹存放对应使用的图片(便于维护)。


然后就开始敲代码了,代码如下:

package com.sikuli;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;

public class CaleTest {

	public static void main(String[] args) throws IOException, FindFailed {
		
		Process app= null;      //新建一个进程
		String path ="E:\\workspace\\Sikuli\\PNG\\CaleTest\\";   //图片路径
		String strat = null;
		String end =null;
		
		app=Runtime.getRuntime().exec("calc.exe");  //打开计算器
		
		Screen scr = new Screen();   //新建一个操作屏幕
		
        //获取时间,打印开始日志		
		Date now = new Date(); 
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");		
		strat = dateFormat.format(now);
		System.out.println("strat"+"-------"+strat);
						
		scr.wait(path+"1481855580087.png", 5);    //等待元素出现,超时5秒
		scr.click(path+"1481855580087.png");        //点击元素
		
		scr.wait(path+"1481855635062.png", 5);
		scr.click(path+"1481855635062.png");
		
		scr.wait(path+"1481855675892.png", 5);
		scr.click(path+"1481855675892.png");
		
		scr.wait(path+"1481855716969.png", 5);
		scr.click(path+"1481855716969.png");
		
		scr.wait(path+"1481855763519.png", 5);
		scr.click(path+"1481855763519.png");
		
		scr.wait(path+"1481855820477.png", 5);
		scr.click(path+"1481855820477.png");
		
		Date now1 = new Date(); 
		SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");		
		end = dateFormat1.format(now1);		
		System.out.println("end"+"-------"+end);		
				
		
		if (scr.exists(path+"66.png", 1000) != null){
			System.out.println("测试通过");
			app.destroy();		 //关闭计算器进程	
		}
		else{
			System.out.println("测试失败");
			app.destroy();		
		}
	}
}


运行一下,用时9秒



感觉是不是有点慢,因为是在整个电脑屏幕中识别,下面我们把识别范围缩小下,使用Screen中的setRect方法设置识别区域,代码如下:

		app=Runtime.getRuntime().exec("calc.exe");  //打开计算器
		
		Screen scr = new Screen();   //新建一个操作屏幕
		
		scr.setRect(596,325,220,315);    //设定识别区域


再次运行看下时间,用时5秒,少了差不多一半,当然了这个也是有问题的,就是程序不在这个区域就不行了



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值