简介:Sikuli是识别和控制GUI组件进行UI自动化测试的技术,它是有MIT的研究人员开发进行设计的。Sikuli在墨西哥维乔印第安人(Huichol Indians)的语言里是上帝之眼的意思,Sikuli的工作模式与人眼一样,直接识别图像。这个项目的主创人员之一是来自台湾的张琮翔
在IDEA中导入Sikuli包
事先下载好需要导入的jar包,在项目窗口中使用快捷键Ctrl+Alt+Shift+S 或 在工程文件上右键中选择 Open Module Settings 打开 Project Structure 窗口
选择Modules,点击选择最右面的 + 号 , 选择第一项或第二项(这里以第一项为例)
找到jar包路径,点击OK
在External Libraries中查看是否添加成功
使用Sikuli实现UI自动化
在项目中添加存放图片的文件夹,并放入,所需图片文件(Sikuli根据图片,去定位)
新建Class文件,并编写脚本
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;
public class CobotSys_ZQ extends Method_Cobot{
public static void main(String[] args) throws IOException, FindFailed {
String path ="/home/wangw/IdeaProjects/CobotSys/Pictures_PNG/"; //图片路径
String strat = null;
String end =null;
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+"cion.png", 5);
scr.click(path+"cion.png");
scr.wait(path+"Navigation.png", 5); //等待元素出现,超时5秒
scr.click(path+"Navigation.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+"result.png", 5) != null){
System.out.println("测试通过");
}
else{
System.out.println("测试失败");
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
运行结果如下
sikuli语法(注:方法中参数,P代表图片格式,T代表文本格式)
方法 | 描述 |
---|---|
find(P) | find就是找到与指定图片相似度最高的图片. |
findall(P) | findAll就是与指定图片相似的所有图片 |
wait(P) | wait就是等待指定图片的出现 |
waitVanish(P) | waitVanish就是等待指定图片的消失 |
exists(P) | exists就是判断指定的图片是否存在 |
click(P) | click就是找到与指定图片最相似的图片, 然后单击 |
doubleClick(P) | doubleClick就是找到与指定图片最相似的图片, 然后双击 |
rightClick(P) | rightClick就是找到与指定图片最相似的图片, 然后右击 |
hover(P) | hover就是找到与指定图片最相似的图片, 然后鼠标指针悬浮其上 |
dragDrop(P,P) | dragDrop就是从一个图形的中心点拉到另一个图形的中心点 |
type(T) | 在焦点处, 一一输入指定的文字 |
type(P,T) | 单击指定的图片, 然后再一一输入指定的文字 |
paste(T) | 在焦点处, 粘贴指定的文字 |
paste(P,T) | 单击指定的图片, 然后再粘贴指定的文字 |