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

  

原文地址:https://www.cnblogs.com/LiTry/p/9038523.html

时间: 2024-10-20 15:17:18

Sikuli--基于像素的图像识别(JAVA)的相关文章

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现 测试数据 java代码 1 package com.hzf.spark.study; 2 3 import java.util.Map; 4 import java.util.Set; 5 6 import org.apache.spark.SparkConf; 7 import org.apache.spark.api.java.JavaPairRDD; 8 import org.apache.s

【高度自适应】基于像素(px)为单位的高度自适应,适合单屏页面

/*基于像素(px)为单位的高度自适应,适合单屏页面*/ //设置高度(延伸到浏览器底部 或 延伸到参考元素底部,可以设置减少量) $.fn.fnSetHeight = function(A, B) { if (this.length > 0) { //参数处理 var $Reference, Decrease; switch (arguments.length) { case 0: $Reference = $(window); Decrease = 0; break; case 1: if

一个基于RSA算法的Java数字签名例子

原文地址:一个基于RSA算法的Java数字签名例子 一.前言: 网络数据安全包括数据的本身的安全性.数据的完整性(防止篡改).数据来源的不可否认性等要素.对数据采用加密算法加密可以保证数据本身的安全性,利用消息摘要可以保证数据的完整性,但是还有一点就是数据来源的不可否认性(也就是数据来自哪里接收者是清楚的,而且发送数据者不可抵赖). 有些方案曾经使用消息认证码(MAC)来保证数据来源于合法的发送着,但是利用消息认证码会带来一个问题,就是通讯双方必须事先约定两者之间的通讯用共享密码.在我们的互联网

基于Netty的高性能JAVA的RPC框架

前言 今年7月份左右报名参加了阿里巴巴组织的高性能中间件挑战赛,这次比赛不像以往的比赛,是从一个工程的视角来比赛的. 这个比赛有两个赛题,第一题是实现一个RPC框架,第二道题是实现一个Mom消息中间件. RPC题目如下 一个简单的RPC框架 RPC(Remote Procedure Call )--远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC

新年第一弹:基于领域驱动的Java开发工具包Common项目分享

项目地址:https://github.com/xuliugen/common 喜欢的请加星. 先上图: 本项目主要包含:constant.domain.exception.util这四个主要部分. Constant 主要包含了一些项目中的常用常量. 示例: (1)标点符号常量类 public interface ConstPunctuation { /** * : 冒号 */ String COLON = ":"; /** * - 中划线 */ String MINUS = &quo

基于双链表 实现Java Queue队列

除了可以通过一维数组,单链表实现queue队列,还可以通过双链表实现queue队列. 在基于NLNode类实现双向链表的时候,为了使编程更加简洁,通常我们都要在最前端和最后端各设置一个哑元节点( Dummy node ).这两个节点分别称作头节点( Header node )和尾节点( Trailer node) ㈠,起哨兵( Sentinel)的作用.也就是说,它们并不存储任何实质的数据对象,头(尾)节点的next( prev)引用指向首(末)节点,而prev(next)引用为空.如此构成的双

一个基于Myeclipse开发的Java打地鼠小游戏(Appletcation)

1 package javaes.zixue.wangshang.daima; 2 3 import java.awt.Cursor; 4 import java.awt.Image; 5 import java.awt.Point; 6 import java.awt.Toolkit; 7 import java.awt.event.ActionEvent; 8 import java.awt.event.ActionListener; 9 import java.awt.event.Mous

基于REST+CoC构建Java Web快速开发框架的架构思路

在<Web开发敏捷之道>这本书的前面几章里,Dave向我们炫耀怎样简单的开始一个Ruby on Rails之旅,建一张表,执行一句ruby命令行生成一个scaffold脚手架程序,然后写一句代码,就可以完成了对一个表或者说是资源的CRUD操 作的功能的实现.这激发了我的兴趣,用Java,能不能更简单的完成这件事. 我在我们应该怎样看待框架 中,实现了一个JDBC版的Base类,和一个Hibernate版的Base类,取模仿RoR的ActiveRecord,这样我们编程的时候,只需要实现一个Ba

基于Docker服务的java Web服务搭建

导读 最近想我们的应用需要更新维护,Android.IOS.还有服务器端都要更新,都在忙于写代码没有写文章了.我们的服务器是用java ssh架构的,到时也打算切换成Spring MVC+oauth2,今天有空,就把之前搞的搭建服务器环境的给大家看看,研究一下了. 1.Docker是一个基于是基于应用层的一个服务软件,目前它是用于搭建服务器开发用的,学习android\IOS开发的用不上,当然不排除以后可以用在手机上,所以你要学习一下也没有问题. 2.docker是一个软件,透过Docker,我