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包完成自动化测试相关___截图编程控制键盘鼠标的更多相关文章

  1. Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却 ...

  2. 是的,你没看错!Python可以实现自动化办公

    是的,你没看错!Python可以实现自动化办公 公众号[伤心的辣条],如今越来越多的人加入到学习Python的队伍当中,尤其是对于很多职场人来说,不管你是程序员还是非程序员,Python已经为很多职场 ...

  3. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  4. 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 ...

  5. 转:HIBERNATE一些_方法_@注解_代码示例---写的非常好

    HIBERNATE一些_方法_@注解_代码示例操作数据库7步骤 : 1 创建一个SessionFactory对象 2 创建Session对象 3 开启事务Transaction : hibernate ...

  6. 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

    本文转自:http://www.topeetboard.com 视频下载地址: 驱动注册:http://pan.baidu.com/s/1i34HcDB 设备注册:http://pan.baidu.c ...

  7. 3.IP地址分类_规划_子网掩码

    IP地址分类_规划_子网掩码 3.1MAC地址 网卡的身份证号———MAC地址 MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20: ...

  8. 宏定义中的##操作符和... and _ _VA_ARGS_ _

    1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used i ...

  9. 宏 #,##,_ _VA_ARGS_ _

    宏里面使用: 一.#  转为字符串 #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x)) ...

  10. OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图

    读取bmp等图片格式中的像素还有难度,就先用这个棋盘图象素来弄了 代码打错一个就一直First-chance exception ,貌似还有一个要用q或者Q才能成功退出,不知道缺少哪句,我用窗口红叉退 ...

随机推荐

  1. 2.Python封装练习及私有属性

    面向对象三大特性 封装:根据职责将属性和方法封装到一个抽象的类中 继承:实现代码的重用,相同代码不需要重复的编写 1.单继承 2.多继承 多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的 ...

  2. 使用 nvm 对 node 进行版本管理

    前端项目工程化,基本都依赖于 nodejs, 不同的项目对于 nodejs 的版本会有要求,nvm 就是可以让我们在各个版本之间进行快速切换的工具. Linux 系统 下载解压 查看所有版本 , 选择 ...

  3. 在ubuntu 上安装golang

    https://golang.google.cn/dl/ 方式一 下载安装包 wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz 解压 ...

  4. Scrapy 之 docker splash

    Scrapy 之 docker splash 1. ubuntu 安装docker 命令 curl -sSL https://get.daocloud.io/docker | sh 或者 curl - ...

  5. 2流高手速成记(之八):基于Sentinel实现微服务体系下的限流与熔断

    我们接上回 上一篇中,我们进行了简要的微服务实现,也体会到了SpringCloudAlibaba的强大和神奇之处 我们仅改动了两个注释,其他全篇代码不变,原来的独立服务就被我们分为了provider和 ...

  6. EventBridge助力阿里云视觉智能开放平台AI智能存储实践

    本文作者:李建,阿里巴巴达摩院技术专家. 01 视觉智能开放平台(VIAPI)业务场景介绍 阿里云视觉智能开放平台(简称 VIAPI),是基于之前很多技术实践经验积累的 AI 能力的沉淀平台.目前整个 ...

  7. eBPF 实践 -- 网络可观测

    简介 观测云采集器,是一款开源.一体式的数据采集 Agent,它提供全平台操作系统支持,拥有全面数据采集能力,涵盖基础设施.指标.日志.应用性能.用户访问以及安全巡检等各种场景.通过 eBPF 技术的 ...

  8. mindxdl--common--web_cert_utils.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common this file ...

  9. 【云原生 · DevOps】DevOps 解决方案

    DevOps 解决方案 1.1 容器化 CI/CD 1.2 容器化流水线 1.3 深度集成 Jenkins 1.4 灰度发布 1.5 制品库设计 1.6 DevOps 安全 1.6.1 CI/CD 安 ...

  10. kotlin的suspend对比csharp的async&await

    协程的出现大大降低了异步编程的复杂度,可以让我们像写同步代码一样去写异步代码,如果没有它,那么很多异步的代码都是需要靠回调函数来一层层嵌套,这个在我之前的一篇有介绍 rxjava回调地狱-kotlin ...