sikuli入门到进阶

一. 开始:

     简单介绍一下sikuli常用方法:

1.  : find就是找到与指定图片相似度最高的图片.

 

2. : findAll就是与指定图片相似的所有图片

 

3. : wait就是等待指定图片的出现

 

4. : waitVanish就是等待指定图片的消失

 

5. : exists就是判断指定的图片是否存在

 

 

 

6. : click就是找到与指定图片最相似的图片, 然后单击

 

7. : doubleClick就是找到与指定图片最相似的图片, 然后双击

 

8. : rightClick就是找到与指定图片最相似的图片, 然后右击

 

9. : hover就是找到与指定图片最相似的图片, 然后鼠标指针悬浮其上

 

10. : dragDrop就是从一个图形的中心点拉到另一个图形的中心点

 

 

11. : 在焦点处, 一一输入指定的文字

 

12. : 单击指定的图片, 然后再一一输入指定的文字

 

13. : 在焦点处, 粘贴指定的文字

 

14. :单击指定的图片, 然后再粘贴指定的文字

 

二. 综述: 

       sikuli 做的事用一句话概括, 就是在某个范围内, 找到指定条件的某个或某些图片, 并对其做什么.

 

       下面举例解释上面的那句话:

       

       一. 在某个范围内

       (1) , 这个语句的意思是在整个电脑屏幕的范围内去找QQ图标, 并点击该图标;

 

       

       (2) sikuli入门到进阶_第1张图片

       上面第2条语句的意思是, 在我指定的范围内( 就是第1条语句中红色的那一块), 找QQ图标, 并点击该图标;

 

       (3) 那么怎么定义一个Region呢

              1^ : r = Region(

              2^: 点击Create Region 按钮

sikuli入门到进阶_第2张图片

              3^: 把括号补全.

 

 

       二. 指定条件

              (1) 最简单的条件就是截张图, 就类似

              

              

              

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

              (2) 其实你还可以指定相似度(相似度就是和你截的图相像的程度)

              单击你截的图

              

              这时会有一个窗口出现, 点击Matching Preview tab, 然后我们就可以调整相似度了

              sikuli入门到进阶_第3张图片

              这时我们看到预览窗口中有一个红色块( 这个红色块就是给据指定条件找到的   结果)

              

              那下面来看一下如果改变了相似度会怎么样, 那我们就降低一下相似度来看一下结果

 

 

 

 

 

 

 

 

 

              降低相似度

sikuli入门到进阶_第4张图片

当我们降低了相似度, 会发现预览窗口中的色块增多, 说名降低了相似度, 能找到的与指定条件相匹配的结果就会增多. (阅览窗口中色块的颜色代表了其匹配度, 颜色越深, 就代表匹配度越高, 红色几乎就代表完全匹配)

       相似度越高, 找的结果就越精确.

 

       总结: 指定的条件有2部分, 一是图片, 二是与图片的相似度.

       当不指定相似度时, 默认的相似度为0.7

 

 

       

 

 

 

 

 

 

 

       三. 点击点

              我们会发现上面窗口中还有一个Target Offset tab, 这个是用来设置点击位置的

              设置方法很简单, 你想点再哪就点在哪

              

              默认的点击位置是中心点

sikuli入门到进阶_第5张图片

       四. 执行动作

              执行动作就是我们最开是介绍的那些方法, 单击啊, 双击啊, 等待啊, 等待消失啊等等

 

       五. 回顾

              下面从新回顾并解释这2句代码

       sikuli入门到进阶_第6张图片

       在指定的Region范围内, 找到与QQ图标相似度为0.7的所有图片, 并在与QQ图标匹配度最高的那张图片的中心点点击.

       

       

       六. 总结

       其实到这里就已经可以写sikuli脚本了, 但写出来的sikuli脚本运行应该是很不稳定的, 接下来就说一下怎么提高sikuli脚本的稳定性

 

 

三. 提高脚本的稳定性

     1. 如何提高稳定性

     sikuli入门到进阶_第7张图片

     由于sikuli自身的缺陷, 上面的语句执行起来极可能会失败, 那么怎么样提高其稳定性呢, 很简单, 在2条语句间加1句wait(1), wait(1)就是等待1秒的意思, 就像下面这样

sikuli入门到进阶_第8张图片

       

       我们把,等称之为sikuli动作, 当执行完一个sikuli动作后, 必须等一下, 才能执行下一个sikuli动作, 否则就可能会执行不成功

 

       sikuli入门到进阶_第9张图片这样写程序稳不稳定呢, 答案一样是不稳定, 也必须在2条语句之间加一条wait(1)

 

       2. sikuli的缺陷是什么, 为什么要加wait(1)才能保证其稳定性

              sikuli的缺陷是在做完一个查找动作后, 必须要等一会, 才能执行下一个查找动作, 否则就可能会执行失败.

              而sikuli动作基本上都会做查找动作, 比如说click函数, 就是先找到指定的图片, 然后再click, 所以click函数会去做查找动作, 所以click后要wait(1)

              find函数肯定会做查找动作的

              wait函数也会去做查找动作, 因为只有去找, 并找到了, 才说明等到指定图片出现了, 所以wait函数后也得wait(1), 看起来会觉得很奇怪, wait后还要wait, 但这也是没办法的事.

 

       3. 回顾

            到这里我们就已经可以写出比较稳定的sikuli脚本了, 下面就是让sikuli帮我们减轻负担, 做一些相对复杂的事

 

 

四. 相对高级进阶

       1. 设置最小相似度

            当将图片的相似度调成0.8, 那么匹配的结果就基本唯一了, 可默认的相似度是0.7, 难道我们要把每张截图的相似度都手动调成0.8吗, 当然你可以这么做, 如果你喜欢的话, 不过我们有更好的方式, 就是在代码最前端加一句

Settings.MinSimilarity = 0.8

 

       2. 获取相对Region, 获取Loaction

            这里先简单介绍一些概念, Region就不多说了, 就是一个矩形区域.下面说一下Match.

              Match就是sikuli给据你指定的条件找到的结果. Match继承了Region, 也就是说就可以把Match当成Region, 能对Region做什么, 就能对Match做什么, Region能做什么, Match就能做什么. 

 

              (1) 如何获取相对Region

                     Region有几个方法

                     1^ : above(range), 这个方法会获取以上面边为宽, 指定参数为长的一个矩形区域

                     2^ : below(range), 这个方法会获取以下面边为宽, 指定参数为长的一个矩形区域

                     3^ : right(range), 这个方法会获取以右面边为宽, 指定参数为长的一个矩形区域


你可能感兴趣的:(自动化测试,sikuli)