Sikuli-X简单的使用

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

Sikuli的最新版本为Sikuli X-1.0rc2。在其官方网站下载区可获得为 Mac OS X、Windows 和 Linux 操作系统所提供的安装文件及安装方法简介,

Sikuli需要JDK1.6版本支持。安装好后,打开Sikuli-IDE ,如下图所示,界面由主菜单栏、工具栏、方法栏、编辑区、日志栏和状态栏六部分组成


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


查找主要是对判断元素是否在页面存在以及等待元素


鼠标动作主要是模拟鼠标的点击、双击、右击、移动、拖拽


键盘动作主要是模拟键盘的输入和粘贴


事件观测主要是元素出现、消失以及屏幕区域变化对程序的处理


用Sikuli-X做一个简单的减法运算的用例,Sikuli-X使用的是Jython脚本语言,代码如下

import os  #导入os包
command = 'taskkill /im calc.exe' #定义一个结束进程的命令字符串
#os.popen('calc.exe')   #python打开应用程序的方法
#openApp('calc.exe')    #Sikuli打开应用程序的方法

a = App.open("calc.exe")   #Sikuli打开应用程序的方法
   
wait("1481855580087.png")  #等待元素出现

click("1481855580087.png")  #点击元素

wait("1481855635062.png")

click("1481855635062.png")

wait("1481855675892.png")

click("1481855675892.png")

wait("1481855716969.png")

click("1481855716969.png")

wait("1481855763519.png")

click("1481855763519.png")

wait("1481855820477.png")

click("1481855820477.png")

if exists("66.png"):   #断言
    print "测试通过"
    a.close()    #Sikuli关闭应用程序的方法
    #os.popen(command)    #python关闭应用程序的方法
else:
    print "测试失败"
    a.close()
    #os.popen(command)

运行试一下


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

import os
command = 'taskkill /im calc.exe'
#os.popen('calc.exe')
#openApp('calc.exe')

a = App.open("calc.exe") 

Region(596,325,220,315).wait("1481855580087.png")

Region(596,325,220,315).click("1481855580087.png")

Region(596,325,220,315).wait("1481855635062.png")

Region(596,325,220,315).click("1481855635062.png")

Region(596,325,220,315).wait("1481855675892.png")

Region(596,325,220,315).click("1481855675892.png")

Region(596,325,220,315).wait("1481855716969.png")

Region(596,325,220,315).click("1481855716969.png")

Region(596,325,220,315).wait("1481855763519.png")

Region(596,325,220,315).click("1481855763519.png")

Region(596,325,220,315).wait("1481855820477.png")

Region(596,325,220,315).click("1481855820477.png")

if Region(596,325,220,315).exists("66.png"):
    print "测试通过"
    a.close()
    #os.popen(command)    
else:
    print "测试失败"
    os.popen(command)


运行一下,比刚才快了很多









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值