sikulix___自动化办公___重复性_机械性_的电脑操作___python脚本___Java运行环境下德jar包完成自动化测试相关___截图编程控制键盘鼠标
sikulix___自动化办公___重复性_机械性_的电脑操作___python脚本___Java运行环境下德jar包完成自动化测试相关___截图编程控制键盘鼠标
应用场景:
公司内的大佬更改了xml的结构,需要在几个固定位置增加几个固定的标签,但是xml文件有几百个,挨个操作起来简直不敢想象工作量有多么大。
于是使用这个基于UI的自动化测试工具完成,通过截图编程写好脚本。脚本执行时会控制鼠标和键盘,识别屏幕上面的信息,并像人一样执行鼠标的单击或双击,键盘的输入和回车等操作。
借助notepad++我打开了所有需要增加标签的xml文件,然后使用sikulix工具,编写脚本,编写完成后执行脚本,实现了在固定的标签的前后增加内容。
首先我们需要了解jvm是什么:即Java虚拟机
Java不同于其他编程语言,是一种需要编译的解释型语言,所有代码都会编译一下,然后在jvm上面运行(jvm由C/C++编写,C属于低级语言,Java是高级语言,低级高级德含义是:低级为贴近硬件层,高级为贴近人类语言。)。
相比C语言来说,Java多了一层,c运行在操作系统层面,Java是运行在jvm上面,jvm运行在操作系统上面,所以Java更像是一个应用程序。
而我们今天讲的工具就是使用Java写的,所以这个工具后缀名为.jar。类似于windows里的.exe。exe可直接在windows操作系统上运行,jar只能在jvm上运行。
所以我们需要先配置Java环境才能使用今天的小工具。登录oracle官网,下载jdk19,现在Java更新的速度太快了,已经变成了一个exe的安装包,双击setup安装即可。无脑下一步完成安装后,我们需要测试一下是否成功。使用“Win+R“输入”cmd“运行dos命令行,在命令行内输入”Java“,如果看到下图即可证明运行环境已经具备,可以直接打开jar包并执行。
注意:我们jar包是使用jdk18编写的,所以尽量找相近版本的安装包。
下面直接双击打开,Java包,即可看到如下操作界面,可以开始编写脚本了。
至此我们完成了准备工作。
-----------------------------------------------------
下面开始脚本编写:
上百度搜索“sikulix函数使用”即可看到该工具的几个常用函数。下面罗列几个本次需要用到的简单的函数。
sikuli常用方法:
根据上面的这些函数我们可以得到如下的脚本:
把这个脚本复制下来就是下面的文本:
flag=0
for flag in range(50):
click("1673426896342.png")
click("1673427738149.png")
type("\n")
type("<GroupColl> \n <Group> \n")
click("1673427759526.png")
type("\n")
type("</Group> \n </GroupColl> \n")
click("1673427794574.png")
click("1673427942910.png")
该脚本完成后我们点击右上角的运行按钮,即可看到成果。For循环的语法结构是和python一致,简单了解即可满足该工具的使用。
对了,这个工具的名字“sikulix”找了半天没找到该怎么读,暂且就读”司库一“吧。
此文仅作为记录学习使用,他用请注明出处。
sikulix___自动化办公___重复性_机械性_的电脑操作___python脚本___Java运行环境下德jar包完成自动化测试相关___截图编程控制键盘鼠标的更多相关文章
- Python自动化办公知识点整理汇总
知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却 ...
- 是的,你没看错!Python可以实现自动化办公
是的,你没看错!Python可以实现自动化办公 公众号[伤心的辣条],如今越来越多的人加入到学习Python的队伍当中,尤其是对于很多职场人来说,不管你是程序员还是非程序员,Python已经为很多职场 ...
- Oracle学习总结_day03_day04_条件查询_排序_函数_子查询
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...
- C Primer Plus_第6章_循环_编程练习
1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...
- 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好
HIBERNATE一些_方法_@注解_代码示例操作数据库7步骤 : 1 创建一个SessionFactory对象 2 创建Session对象 3 开启事务Transaction : hibernate ...
- 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解
本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...
- 3.IP地址分类_规划_子网掩码
IP地址分类_规划_子网掩码 3.1MAC地址 网卡的身份证号———MAC地址 MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20: ...
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used i ...
- 宏 #,##,_ _VA_ARGS_ _
宏里面使用: 一.# 转为字符串 #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x)) ...
- OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
读取bmp等图片格式中的像素还有难度,就先用这个棋盘图象素来弄了 代码打错一个就一直First-chance exception ,貌似还有一个要用q或者Q才能成功退出,不知道缺少哪句,我用窗口红叉退 ...
随机推荐
- 实战进阶 Vue3+Axios+pinia
实战进阶 Vue3+Axios+pinia 创建文件utils/request.js import Axios from 'axios'; export const request = Axios.c ...
- JS 学习笔记 (六) 函数式编程
1.函数闭包 1.1 概述 JavaScript采用词法作用域,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的. 为了实现这种词法作用域,JavaScript函数对 ...
- 我用EasyExcel优化了公司的导出(附踩坑记录)
背景介绍 最近要改一个导出的功能,在原有的基础上,在导出一份明细数据,要求导出内容加在原有 excel 的第二个 sheet 上.考虑到数据量还比较大,干脆引入阿里的 EasyExcel 来做. 下面 ...
- git 进阶篇
在git使用时,有时需要在公司内部搭建自己的git服务器,用于内部的版本控制. 从远程服务器到本地 先创建服务器端的空git库,将其clone到本地,再将本地的修改push到服务器端 # step1: ...
- 源码级深度理解 Java SPI
作者:vivo 互联网服务器团队- Zhang Peng SPI 是一种用于动态加载服务的机制.它的核心思想就是解耦,属于典型的微内核架构模式.SPI 在 Java 世界应用非常广泛,如:Dubbo. ...
- Go语言核心36讲30
你好,我是郝林,今天我继续分享条件变量sync.Cond的内容.我们紧接着上一篇的内容进行知识扩展. 问题 1:条件变量的Wait方法做了什么? 在了解了条件变量的使用方式之后,你可能会有这么几个疑问 ...
- 【云原生 · Kubernetes】部署 kube-proxy 组件
个人名片: 因为云计算成为了监控工程师 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying kube-proxy 运行在所有 worker 节点上,它监听 apiserver 中 se ...
- 剖析一下"抢茅台"脚本底层逻辑
本文作者:梁东东 前言: 今天你撸茅台了么? 撸茅台已经成为社会现象,茶余饭后讨论的最佳实践 2022年双十一大促已经完美收官,兄弟姐妹克服种种困难与挑战.. 备战的会议室忙碌中带着紧张,当峰值过后的 ...
- kubernetes笔记-2-基本操作
一.kubectl的基本操作 语法: kubectl [command] [type] [name] [flags] 语法说明: command:对资源执行相应操作的子命令,如:get.cre ...
- sublime text设置build system automatic提示no build system
解决办法: 将: "selector": "source.asm" 改为: "selector": ["source.asm&qu ...