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"); } } }