Sikuli--基于像素的图像识别,JAVA

SikuliX简介及安装

package wincalc;

import org.sikuli.script.Screen;

public class SikuliDemo {
        // Sikuli是基于PC图像识别的自动化测试工具。
        // 目前绝大多数GUI工具均需要依赖与程序类型进行特征识别(属性识别)
        // TestComplete/CodeUi/Selenium/Appium/UIautomatior/WatiR
        // 面对不同的程序类型,则无法有效大处理,SikuliX图像识别可以通吃
        // Skuli对其他移动端的支持不够友好。对python的支持不友好,JPype
        // 图像识别匹配度和容错能力是其技术可用性的关键
        public static void main(String[] args) throws Exception {
                // SikuliX提供大核心类
                // 1、Region 界面部分区域识别,效率高
                // 2、Screen 全屏识别,效率低

                // 定义当前文件夹
                String imgPath = System.getProperty("user.dir") + "/wincalc";
                // 实例化Screen
                Screen s = new Screen();
                // 启动win系统计算器
                Runtime.getRuntime().exec("calc.exe");
                // 暂停2秒
                Thread.sleep(2000);
                // 点击事件
                s.click(imgPath + "/3.png");
                s.click(imgPath + "/+.png");
                s.click(imgPath + "/5.png");
                s.click(imgPath + "/=.png");
                Thread.sleep(2000);
                // 判断结果
                boolean test = s.exists(imgPath + "/8.png").isValid();
                if (test) {
                        s.click(imgPath + "/exit.png");
                        System.out.println("ok");
                } else {
                        System.out.println("no");
                }
        }
}