暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Sikuli的安装以及应用

老柴杂货铺 2022-03-21
3935

一、介绍以及安装


1、Sikuli的介绍

Sikuli是一个利用图片进行可视化检查和自动化图形界面的技术,一个方便通过截图写出可视化脚本的集成开发工具Sikuli IDE,脚本可以不经过api的编辑器直接自动化搜索到任何在你电脑屏幕上可以看见的东西。

你可以利用程序控制一个web的页面,或者在各种操作系统上运行的桌面程序。


2、安装

在官网(http://sikulix.com/)可分别下载MAC OS X 、Windows和Linux操作系统提供的安装文件以及安装方法介绍。

    https://launchpad.net/sikuli/sikulix/2.0.5/+download/sikulixide-2.0.5.jar

    下载至本地、安装java jdk ,sikulix要求jdk8.0+。


    全部安装完毕之后可直接运行 

      java -jar sikulixide-2.0.5.jar


      二、Sikuli常用方法

      对工具所能提供的快捷方式都进行了试验,最常用的方法总结如下:


      1.键盘操作,输入

        type()  #输入内容 (不建议使用,可以由于输入法的问题导致不可预知的错误)
        paste () #文本输入(建议使用,单纯的指数复制的你的内容并进行粘贴)


        2.页面断言,查找数据:

          wait()  #设置等待时间
          exists() #判断等待页面元素是否存在


          3.鼠标动作:

            click()   #点击事件--单点
            doubleClick() #点击事件--双击
            rightClick("") #点击事件--鼠标右键点击
            dragDrop("1606202686079.png", "1606202694506.png") #将第一个元素拖动至第二个元素位置

            既然我们进行了测试那么就也需要进行断言


              if  exists("查看的内容图片"):
              click("查看的内容图片")
              print"断言的内容"
              else:
              print("断言的内容")

              页面如果不存在该内容那么脚本就自然的会进行跳过的继续执行下一步的操作。


              4、键盘操作


              记录了SikuliX中按键操作的方法。


              控制字符


              键名 sikuliX中的命令

              Shift type(Key.SHIFT)

              Ctrl type(Key.CTRL)

              Alt键 type(Key.ALT)

              Tab(制表符) type(Key.TAB)

              大写锁定 type(Key.CAPSLOCK)

              输入 type(Key.ENTER)

              删除 type(Key.DELETE)

              退格键 type(Key.BACKSPACE)

              插入 type(Key.INSERT)

              Home type(Key.HOME)

              End type(Key.END)

              ESC type(Key.ESC)

              空格 type(Key.SPACE)

              视窗 type(Key.WIN)

              换页 type(Key.PAGE_UP)

              向下翻页 type(Key.PAGE_DOWN)

              列印画面 type(Key.PRINTSCREEN)

              数字键盘锁 type(Key.NUM_LOCK)

              滚动锁 type(Key.SCROLL_LOCK)

              F1 type(Key.F1)

              F2 type(Key.F2)

              F3 type(Key.F3)

              F4 type(Key.F4)

              F5 type(Key.F5)

              F6 type(Key.F6)

              F7 type(Key.F7)

              F8 type(Key.F8)

              F9 type(Key.F9)

              F10 type(Key.F10)

              F11 type(Key.F11)

              F12 type(Key.F12)

              光标键:向上 type(Key.UP)

              光标键:向下 type(Key.DOWN)

              光标键:左 type(Key.LEFT)

              光标键:向右 type(Key.RIGHT)

              向上移动光标两次 type(Key.UP * 2)

              向下移动光标两次 type(Key.DOWN * 2)

              向左移动光标两次 type(Key.LEFT * 2)

              向右移动光标两次 type(Key.RIGTH * 2)

              按特定键 KeyDown(Key.*) 需要使用Region()进行区域设置。

              释放特定键 KeyUp(Key.*) 需要使用Region()设置区域。

              快捷键使用


              常见操作 快捷键 sikuliX中的命令

              复制 Ctrl + C type(“ c”,Key.CTRL)

              剪下 Ctrl + X type(“ x”,Key.CTRL)

              贴上 Ctrl + V type(“ v”,Key.CTRL)

              搜索 Ctrl + F type(“ f”,Key.CTRL)

              打印 Ctrl + P type(“ p”,Key.CTRL)

              撤消 Ctrl + Z type(“ z”,Key.CTRL)

              重做 Ctrl + Y ;Ctrl + Shift + Z type(“ y”,Key.CTRL);type(“ z”,Key.CTRL + Key.SHIFT)

              关闭标签 Ctrl + F4 type(Key.F4,Key.CTRL)

              还原标签 Ctrl + Shift + T type(“ t”,Key.CTRL + Key.SHIFT)

              浏览器缓存刷新(强制刷新) Ctrl + F5 type(Key.F5,Key.CTRL)

              关闭窗口 Alt + F4 type(Key.F4,Key.ALT)

              最小化所有窗口 Windows + M type(“ m”,Key.WIN)

              显示桌面 Windows + D type(“ d”,Key.WIN)

              最小化窗口(当窗口为正常大小时)恢复为原始大小(当窗口为最大化时) Windows +光标键:向下,如果最大化,请执行上述两次。 type(Key.DOWN,Key.WIN)

              窗口最大化 Windows +光标键:向上 type(Key.UP,Key.WIN)

              切换活动窗口 Windows + Tab;Windows + Shift + Tab type(Key.TAB,Key.WIN);type(Key.TAB,Key.WIN + Key.SHIFT)

              启动任务管理器 Ctrl + Shift +ESC type(Key.ESC,Key.CTRL + Key.SHIFT)

              启动资源管理器 Windows +e type(“ e”,Key.WIN)

              运算符


              运算 sikuliX中运算符

              加法 +

              减法

              乘法 *

              /

              余数计算

              除数的整数部分 //

              A的b次方 A ** B

              A的负数 -A

              逻辑或 or

              逻辑与 and

              否认 not

              a大于b a> b

              a小于b a <b

              a小于或等于b a <= b

              a大于或等于b a >= b

              a等于b a== b

              a不等于b a!= b


              三、简单使用案例

              对近两年接收的邮件提取标题和时间 

                for x in range(400):
                switchApp("Foxmail")
                sleep(0.1)
                type(Key.UP)
                sleep(1.1)
                bt_conner=find(Pattern("1579162213451.png").targetOffset(1,1))
                bt_point=bt_conner.getTarget().offset(-346, -6)
                dragDrop(bt_conner,bt_point)
                type("c",KEY_CTRL)
                switchApp("4.xlsx")
                type(Key.DOWN)
                type(Key.RIGHT)
                type("v",KEY_CTRL)
                switchApp("Foxmail")
                rq_conner=find(Pattern("1579162951663.png").targetOffset(-16,-1))
                rq_point=rq_conner.getTarget().offset(108, 4)
                dragDrop(rq_conner,rq_point)
                type("c",KEY_CTRL)
                switchApp("4.xlsx")
                type(Key.LEFT)
                type("v",KEY_CTRL)


                文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论