前端自动话操作应用很广泛,从网购秒杀活动实现自动化抢购,到区块链货币高频交易前端脚本编写(非合作交易所不提供api的情况下)。

自动化的流派分为2类,一类是对DOM对象进行解析的,这个是主流,但是受特定平台的限制,而且一定目标前端代码变了,自动化脚本一般都要重写。

另一个就是近年来出现的“非主流”--sikuli。它是通过类似图像识别的原理进行自动化操作的,不受目标前端代码修改的影响。

之前在工行因为自动化测试的原因,研究过一下sikuli,记录在这里:

相比selenium,简直是神器:

1.不仅能够用在web上,而且能用在exe上,估计新终端也能够用(终于解决了这个最大的问题)

2.脚本编写的易学性、工具的易用性还不错

3.从目前情况看工具还是稳健的,安装也方便(我部的jdk普遍是1.6左右,正是推广的黄金时期)

下载安装:

http://www.sikuli.org/download.html  注意:目前其仅主持32位的1.6版本的jdk,下载的包很小20m,解压后就可以运行,目前最新版本是r930

运行时注意事项:

1.有个很好地“迷惑”或者提升执行通过率的方法,就是打开那个html页面,还有不能打开程序目录,因为哪里有各种要用的图标。。

2.有多个屏幕对程序运行的影响还待考察(案例编写必须严格在一个屏幕下进行,否则复杂度大大提高,我把notes扔到另外一个屏幕,结果脚本报错)  另外,截图要用他自带的工具比较方便

3.注意python语法, 没有类型if等不用括号用缩进(科技极简主义) java要编译,而python不用 python没有class和main函数

4.最危险的是“起飞”阶段 如何打开一个应用?

能想象一下,如下两个图标的不同,就让脚本无法运行(j见附图)

5.大规模脚本如何编写规范?首先,桌面主题就要统一,否则可能对截取造成问题

以如下问题为例子,经我的windows换用windows经典主题后,我在工行主题上截取的图,就无法使用了,脚本无法运行

因为界面现在看起来已经是这样了

但是用win7透明主题,倒是可以运行脚本的

(注意颜色深度的变化,所以sikuli有一定的变化兼容性,但是尽量不要有这方面的尝试)

6.桌面上存在小工具遮挡的时候也不行

总结:不能有遮挡 不能有多屏 不能有截图

sikuli的代码简单到什么程度呢?下面这个截图可以说明一切,这是个我写的邮箱自动登录的代码,几乎是人都可以看懂,这是sikuli最大优势:

那么问题来了?现在是图形的识别,如果做断言呢?现在这个工具还只是操作自动化的工具

图形断言:可以使用exists()来判断操作成功后的打勾是否存在

文字断言:需要使用OCR功能,

首先,sikuli绝对有OCR功能,他的截图命名,就是用识别后的文字命名的

sikuli的好处:

1/代码的易读性(readable usable)

2/易读性带来的可传承性(用来培训和教学非常不错,传统的教程都说stepby step,而且配图,关键是这两者sikuli都有,而且还能够机器执行)

以前的说明书,用命令行的,都是描述非常清楚,但是图形界面的就麻烦了;很多时候采用截取全图的方式,那样说明书的体积又太大了

3/电脑视觉的延伸, 看自己输出生成的画面,更加智能化

4/可扩展性 这个目前和watchman是一样的都说基于通用的脚本语言,可以使用脚本语言的函数库(python+java)

有没有可能把selenium和sikuli结合起来?这个问题可以好好研究。前端自动化的春天来了~~

sikuli:前端自动化操作神器【简单实用】相关推荐

  1. python自动化操作神器pyautogui使用

    python中可以使用 selenium库实现对浏览器的自动化操作,但selenium库能操作的还是浏览器对象 今天我们来聊一聊如何在桌面实现自动化操作.与浏览器页面自动化操作类似,桌面自动化操作也是 ...

  2. 个人站长财神的13招简单实用且见效快的网站推广方法

    ‍ 对于我们这做站的一批群体及网站运营专员来说,搭建一个完整的站或拿的一个网站之后,就是要想尽一切办法进行网站推广宣传,从而为网站带来流量,实行转化等,那么如何做呢?下面跟着乐晨一起看下个人站长财神分 ...

  3. 前端自动化工具 grunt 插件 uglify 的简单使用(一)

    Grunt 的简介: Grunt 是一套前端自动化工具,是一个基于 node.js 的命令行工具,它一般用于: 1.压缩文件: 2.合并文件: 3.简单的语法检测: 4.监听文件变动: 5.less ...

  4. 十行代码写个摸鱼神器,帮你自动化操作Excel

    十行代码写个摸鱼神器,帮你自动化操作Excel 为啥要做这个? 代码基于Python,行数很少,不重复代码十行左右 相关的视频: 为啥要做这个? 现在很多公司会监控员工行为,包括上厕所的时长,不在座位 ...

  5. ios13全选手势_iOS13系统5个简单实用的技巧 快速选择/三指操作/批量删除短信/文字转表情...

    iOS 13 已经发布一段时间,苹果带来了不少新内容和细节上的优化,一起来看看 iOS 13 还有哪些隐藏的小技巧,希望对大家有所帮助. iOS13系统5个简单实用的技巧: 快速选择文本 当您在编辑文 ...

  6. 前端自动化构建工具之webpack入门——简单入门

    写在前面 这篇博客也是参照别人的webpack入门,加上自己的一些操作,还有我在此过程中遇到的困难.如果是已经入门的或者这方面的高手,请绕行,也请勿吐槽. 正文开始 我们为什么要学习webpack 首 ...

  7. python自动化操作电脑的简单实现

    最近由于工作原因,需要机械性重复性的计算好多组数据,而这些数据不同点就在于输入参数的不同,所以就想着利用python来解放双手. 在网页直接bing"python自动化"后,发现了 ...

  8. 自动化键盘鼠标简单操作(python)

    用pyautogui包实现自动化键盘鼠标简单操作,包括键盘键位和鼠标移动点击操作. 例如,微(信)消息自动发送: 先停时五秒,再把内容复制到剪贴板 import pyautogui #键盘鼠标操作包 ...

  9. 简单实用的批量去除水印方法及操作步骤

    去除水印是经常要用到的一些功能.现在一起来看看简单实用的批量去除水印功能怎么操作. 我们先看一下视频是有水印的 百度搜索"视频剪辑高手"软件并下载打开. 选择批量剪辑视频区域 打开 ...

最新文章

  1. 阿里云Centos 解决挖矿程序:kdevtmpfsi--服务器CPU占用高、内存占用高
  2. 超赞!2021年最惊艳的38篇AI论文!
  3. win7任务栏还原为xp样式
  4. Class.forName有什么作用
  5. 来自一位家长的肺腑之言,句句在理!!!
  6. python自定义安装哪些不需要_【1】python模块:自定义模块的3种导入方式
  7. Git协助方式:Fork项目开发新功能并使用Pull-Request把新特性推送给原项目
  8. 爬取校园网新闻首页的新闻 使用正则表达式,函数抽离
  9. 同步、异步事件循环(宏任务、微任务「大厂真题解析」)
  10. python请求库_如何使用Python请求库发出post请求?
  11. mybatis框架增删改的注意事项 ,不同数据库取消转义的方法
  12. Android VideoVIew 视频全屏拉伸
  13. ubuntu18.04+语音识别
  14. 软件测试面试题:什么是Ramp up?你如何设置?
  15. 使 div 水平 垂直 居中
  16. [JZOJ5442]【NOIP2017提高A组冲刺11.1】荒诞([BZOJ3060]【POI2012】Tour de Byteotia)
  17. 基于tensorflow的LSTM实现PTB预测
  18. 微微一笑很倾城(3)
  19. 计算机系统结构 外文,计算机系统结构外文文献 计算机系统结构参考文献怎么写...
  20. spring集成kafka运行时报错:Failed to construct kafka producer] with root cause

热门文章

  1. Fonticon在企业移动APP开发中的应用研究
  2. python课程介绍的主要内容有哪些_Python课程包括哪些内容?
  3. 0x80070422是什么错误(hresult 0x80070422错误原因)
  4. 企业内训视频如何防范被盗录和下载?
  5. 宁德畲村赤溪:助乡村振兴,扬民族文化
  6. map集合中常用方法
  7. 将python文件打包成exe文件(带附属txt文件)
  8. STM32CubeMX 简介
  9. 刷题日记-判断一个链表是否为回文结构
  10. anaconda卡在Adding feature channels解决办法