Sikuli-x---图片自动化工具的使用

1.Sikuli-x简介

Sikuli是识别和控制GUI组件进行UI自动化测试的技术,它是有MIT的研究人员开发进行设计的。Sikuli在墨西哥维乔印第安人(Huichol Indians)的语言里是上帝之眼的意思,Sikuli的工作模式与人眼一样,直接识别图像。

Sikuli-x是Sikuli的最新版本,支持Mac OS X、Windows 和 Linux 操作系统的自动化操作

Sikuli-x是java编写的,所以需要有java环境的支持

2.环境搭建

(1)下载jdk,配置环境变量

(2)下载sikulix-IDE

http://sikulix.com/ 官网地址

https://raiman.github.io/SikuliX1/downloads.html   SikuliX Downloads

 

点击1处链接进行下载,下载完成后放到一个单独文件夹中,双击启动IDE

3.IDE使用及方法介绍

如图所示,界面由主菜单栏、工具栏、方法栏、编辑区、日志栏和状态栏六部分组成,我下载的没有方法栏

Sikuli提供的常用方法主要有查找、鼠标动作、键盘动作、事件观测4种类型

方法详细介绍参见 https://blog.csdn.net/airfer/article/details/47726939 sikuli函数、简单事件操作个人总结笔记

简单使用:

a=10
app_path = 'C:\Program Files (x86)\NGVONE\Client\TopSAP.exe'
openApp(app_path)               #打开app
wait("1577694539817.png")       #等待界面出现
click("1577694966548.png")      #点击图片中心
#type('test000')
paste('test000')                #在鼠标处进行粘贴操作
#type(Keys.ENTER)
wait(5)
click("1577696921363.png")
wait(2)
type('111111')         
wait(1)
type(Key.ENTER)             #按下回车键
wait("1577764002167.png",10)
click("1577770208466.png")
wait(5)
if exists("1577784432204.png"):        #判断预期图片是否出现
    a=20
    
click("1577770540714.png")
click("1577770441068.png")
wait(2)
click("1577770467721.png")
print a

运行的时候可能有点慢,是因为是在整个屏幕上查找元素,可以使用,把查找元素的区域固定,使查找元素速度加快,当然也是有缺点的,程序如果改变区域就无法识别了

Region(596,325,220,315).wait("1481855580087.png")限定查找图片区域

4.在python中调用Sikuli

由于Sikuli是java编写的,所以要在python中使用可以使用jpython,或者在python中安装JPype调用java代码

本文介绍以下使用JPype使用方法

1.首先安装Jpype包:打开命令行输入 pip install JPype1 进行安装,会提示安装成功如果安装失败可能是Windows缺少VCForPython27导致,需要安装这个组件,下载链接: https://pan.baidu.com/s/1ILVxjb3K4hMvviCbefpfIw 提取码: 7uri ;如果下载后还安装不了,就只能下载Jpype1的压缩包进行安装了,下载安装包后,找到文件所在的命令执行 pip install JPype1-0.6.3.tar.gz
2.下载sikuli的jar包,地址:https://raiman.github.io/SikuliX1/downloads.html

3.将上一步下载的jar包放到一个目录下

from jpype import *
import time
# 需安装VCForPython27
# C:\Program Files\Java\jdk1.8.0_181\jre\bin\server\jvm.dll
print getDefaultJVMPath()  #jvm默认路径
startJVM(getDefaultJVMPath(), "-ea", r"-Djava.class.path=E:\Test3\sikulixapi-2.0.1.jar")#path是刚才放的jar包位置,启动java虚拟机
java.lang.System.out.println("hello world")#调用java打印方法
app = JClass('org.sikuli.script.App')
app_path = r'C:\Program Files (x86)\NGVONE\Client\TopSAP.exe'
# app.open(app_path)
Screen = JClass("org.sikuli.script.Screen")#获取java类
screen = Screen()                         #生成类对象
Key = JClass("org.sikuli.script.Key")
key = Key()
Pattern = JClass('org.sikuli.script.Pattern')
KeyModifier = JClass('org.sikuli.script.KeyModifier')
screen.doubleClick(r"E:\Test3\pic\1.png")#调用类对象的方法,双击快捷图片启动
screen.click(r'E:\Test3\pic\1577694966548.png')
time.sleep(1)
screen.type("test000")
time.sleep(2)
screen.click(r'E:\Test3\pic\1577696921363.png')
screen.type("111111")
screen.type(Key.ENTER)
screen.wait(1)

shutdownJVM()#关闭虚拟机

5.Sikuli-xIDE工具生成代码命令行调用

Sikuli-xIDE生成的代码是一个后缀为.sikuli的文件夹,打开可以看到一个python文件和代码中图片

 

 

命令行调用

import os
os.popen(r'E:\sikulix\sikulix.jar -r C:\Users\hp\Desktop\2.sikuli')
参数为ide所在路径 和脚本所在路径
-r 表示 run

参考文档

https://blog.csdn.net/zhengshaolong8125/article/details/53690689  Sikuli-X简单的使用
http://sikulix.com/ 官网
https://blog.csdn.net/shuihupo/article/details/79714949 python 安装jpype
https://blog.csdn.net/lb245557472/article/details/83957563  Python 调用Sikuli Jar包
https://testerhome.com/topics/12706 自动化工具 Sikuli-X 简单的使用
https://raiman.github.io/SikuliX1/downloads.html SikuliX Downloads
https://blog.csdn.net/GG9527li/article/details/86726417  Python jpype调用Sikuli 实现图像点击,输入,拖动等操作
https://testerhome.com/topics/17225 ATX SikuliX 使用笔记
https://blog.csdn.net/airfer/article/details/47726939 sikuli函数、简单事件操作个人总结笔记
https://blog.csdn.net/lb245557472/article/details/83957563  Python 调用Sikuli Jar包

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值