SIkuli使用

1简介

SikuliX通过定位图像和键盘鼠标来操作GUI(图形化用户界面),能很好的实现flash和桌面类应用的自动化,目前暂不支持移动端的使用

2sikuli实际用途

1.Sikuli可以用来自动化Flash对象或Flash网站。
2.它可以简单地与Selenium或其他工具集成。
3.使用Sikuli我们可以自动化桌面应用程。

3下载地址

链接: link.

4安装步骤

1 下载sikulisetup.1.1.1.jar到d盘
2 打开命令行窗口 cd d:
3 运行命令:java -jar sikulisetup.1.1.1.jar
4 弹出窗口勾选第一、二项,单击[Setup Now]进行安装
在这里插入图片描述
5 在弹出的question…向导框里选择[Yes]下载需要的安装文件

5 常用方法
http://blog.csdn.net/stormwy/article/details/7955137/
5.1 find
找到与指定图片相似度最高的图片
s.find(imgpath+“win.png”);
5.2 findall
与指定图片相似的所有图片
s.findall(imgpath+“win.png”)
5.3 wait
等待指定图片的出现
s.wait(imgpath+“wx.png”);//
s.wait(1.0);//延时一秒
5.4 waitvanish
等待指定的图片消失
waitvaish(imgpath+“win.png”)
5.5 exists
判断指定的图片是否存在
system.out.print(s.exists(imgpath+“win.png”));//null
if(s.exists(imgpath+“win.png”)!=null){
}else{
}
5.6 click
找到与指定图片最相似的图片,然后点击
s.click(s.find(imgpath+“win.png”).right(40));//找到图片右移动四十个像素,并点击
5.7 doubleclick
找到与指定图片最相似的图片,然后双击
s.doubleclick(imgpath+“win.png”)
5.8 rightclick
找到与指定图片最相似的图片,然后右击
s.rightclick(imgath+“win.png”)
5.9 hover
找到与指定图片最相似的图片,然后鼠标悬浮其上
s.hover(imgpath+“win.png”);//获取焦点
s.mouseDown(Button.LEFT); //按下按钮
s.mouseUp(Button.RIGHT); //释放按下的按钮
5.10 dragdrop
从一个图形的中心点拉倒另一个图形的中心点
如将文件放入文件夹: s.dragdrop(文件.png,文件夹.png)
如移动滑块:
Region region1 =new Region(1200,860,224,37);
Pattern yl1=new Pattern(imgapath+“yl1.png”);
region1.click(yl1);
s.wait(1.0);
Settings.MinSimilarity = 0.9;
Region region2 =new Region(1275,489,116,367);
Pattern yl2=new Pattern(imgapath+“yl2.png”);
region2.dragDrop(yl2,s.find(yl2).above(40)); //向上移动四十个像素
}

5.11 type
	在焦点处,输入指定的文字
	s.type("text")
	指定的图片,输入指定的文字
	s.type(imgpath+"win.png","test")
5.12 paste
	在焦点处,粘贴指定的文字
	paste("text")
	点击指定的图片,然后再粘贴指定的文字
	paste(imgpath+"win.png","text")
5.13 region
	创建屏幕匹配区域
	Region region =new  Region(1,3,224,199);
	//Region region =new  Region(1,638,308,205);
    region.hover(imgapath+"fox.png");
5.14 location
	获取位置作为选择中心(获取的图像的中心坐标作为焦点(左上为起始坐标))
	Location location = new Location(187,258);
    s.hover(location);



5.15 For

在这里插入图片描述
5.16 断言
if (s.exists(self.imgpath + “登录后截图.png”) != None):
print(“登录成功”)
5.17 根据按钮定位下移动到输入框输入文案
s.type((s.find(self.imgpath + “登录按钮.png”).above(108)), “xiaofen520”)
s.wait(self.imgpath + “登录按钮.png”)
s.click((s.find(self.imgpath + “登录按钮.png”)))

6 提高脚本稳定性
6.1 增加延时
click()
wait(1.0) //延时1秒
click()
6.2 增加等待
click()
wait()//等待图片出现。( 如应用启动时间)
click()

6.3 设置最小相似度
Settings.MinSimilarity = 0.8
当将图片的相似度调成0.8, 那么匹配的结果就基本唯一了, 默认的相似度是0.7

6.4 根据图片移动像素定位
如果图像辨识度比较低,可以截取其他位置图片,然后偏移像素定位获取焦点
s.click(s.find(imgpath+“win.png”).right(40));// above,below,
right,left(上下右左)

怎么确定偏移像素多少?
1 点击捕捉的图片

2 进入样式设置

3 移动十字标,查看底部偏移像素

6.5 根据区域查找
Region ss =new Region(1,3,224,199);
//Region ss =new Region(1,638,308,205);
ss.hover(imgapath+“fox.png”);
7示列
先将sikuli-scripts.jar包导入项目
qq登录
package sikuli.com;
import java.awt.Image;
import org.sikuli.script.*;
public class TestSkuli {

 public static void main(String[] args) throws FindFailed  {
   Screen s = new Screen();
    //  String imgpath = "C://Users//Administrator//Desktop//photo//";
	   String imgpath = "photo//";//相对路径
       s.click(imgpath+"win.png");
      //  s.click(s.find(imgpath+"win.png").right(40));
       s.click(imgpath+"QQexe.png");
       s.wait(1.0);//等待
       s.type(s.find(imgpath+"111111.png").left(90),"name");
       s.type(imgpath+"pwd.png","password");
       s.click(imgpath+"login.png");
       s.wait(3.0);
     System.out.println(s.exists(imgpath+"yidenglu.png"));
     if (s.exists(imgpath+"yidenglu.png") != null){ //断言
	System.out.print("登录成功");
 }
 else{
	 System.out.print("登录失败");
 }Java
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值