【使用教程】一个前端写的自动化rpa工具

前言

这个是一个自己写的RPA工具,用python写的,支持EXE直接运行,适用于Windows PC端和Android移动端。本教程将介绍如何安装、配置和使用(以pc端为例)。

项目截图

项目概述

RPA-Tool是一个自动化工具集,可以模拟鼠标点击、键盘输入、图像识别、OCR文字识别等操作,帮助您自动化日常重复性工作。

主要功能

  • 图像识别和点击
  • OCR文本识别和基于文本的操作
  • 鼠标移动、点击、拖拽
  • 键盘输入和按键操作
  • 等待和延时
  • 循环执行
  • 支持JSON和Excel两种配置方式

安装方法

  1. 项目发布页下载最新的EXE安装包
  2. 双击安装包,按照向导指示完成安装
  3. 如果需要使用手机端RPA功能,请确保在电脑上安装了ADB工具(Android Debug Bridge)

运行方式

启动时默认进入GUI界面,你也可以通过命令行参数进入命令行模式。

命令参数详解

以下是PC端RPA支持的命令类型及其参数说明:

1. 图像识别与操作

这里将你图片放到和启动的exe同一个文件夹就可以了

命令类型(cmdType) 描述 参数示例(cmdParam)
ImgClick 查找并点击图片 {"target": ["button.jpg"]}
SearchImage 在屏幕上查找图片 {"target": ["button.jpg"], "waitForTarget": true, "detecttime": 0.5, "maxWaitTime": 30}
ClickAfterImg 在找到的图片位置进行点击 {"x": 0, "y": 0, "clicks": 1, "button": "left"}
MoveToAfterImg 移动到找到的图片位置 {"x": 100, "y": 50}
DragToAfterImg 从找到的图片位置拖拽到指定位置 {"x": 200, "y": 100}

2. 鼠标操作

命令类型(cmdType) 描述 参数示例(cmdParam)
Click 点击指定坐标 {"x": 100, "y": 100, "clicks": 2}
MoveTo 移动鼠标到指定坐标 {"x": 100, "y": 100}
DragTo 拖拽到指定坐标 {"x": 100, "y": 100}
Scroll 滚轮操作 10 (正数向下滚动,负数向上滚动)

3. 键盘操作

命令类型(cmdType) 描述 参数示例(cmdParam)
Write 输入文本 {"message": "Hello World"}
ChineseWrite 输入中文文本 "你好世界"
Press 按下并释放按键 {"keys": "enter", "presses": 1}
KeyDown 按下按键 "enter"
KeyUp 释放按键 "enter"

4. OCR文字识别与操作

命令类型(cmdType) 描述 参数示例(cmdParam)
OCR 执行OCR文字识别 {"target": ["文件"], "waitForTarget": true, "detecttime": 0.5, "maxWaitTime": 30}
ClickAfterOCR 基于OCR结果点击 {"x": 100, "y": 100}
MoveToAfterOCR 基于OCR结果移动鼠标 {"x": 100, "y": 100}
DragToAfterOCR 基于OCR结果拖拽 {"x": 200, "y": 100}

5. 其他操作

命令类型(cmdType) 描述 参数示例(cmdParam)
Sleep 等待指定秒数 2
ShutDown 关机 {"timeout": 10}

参数详细解释

以下是常用参数的详细解释:

通用参数

参数名 类型 描述 示例值
x 整数 屏幕横坐标,以像素为单位,从左到右增大 100
y 整数 屏幕纵坐标,以像素为单位,从上到下增大 200
clicks 整数 点击次数,默认为1,用于设置单击、双击等 2
button 字符串 鼠标按键,可选值为"left"(左键)、"right"(右键)、"middle"(中键),默认为"left" "right"

查找与等待相关参数

参数名 类型 描述 示例值
target 数组 要查找的目标列表,可以是图片文件名或文本内容 ["button.jpg", "button_alt.jpg"]
waitForTarget 布尔值 是否等待目标出现,为true时会持续查找直到找到目标或超时 true
detecttime 浮点数 检测间隔时间(秒),指定每次重新查找的时间间隔 0.5
maxWaitTime 整数 最大等待时间(秒),指定等待目标出现的最长时间,超时后会继续执行下一步 30
region 字符串 查找区域,可选值如"center"(屏幕中心区域),默认为整个屏幕 "center"

键盘操作相关参数

参数名 类型 描述 示例值
message 字符串 要输入的文本内容 "Hello World"
keys 字符串 按键名称,如"enter"、"tab"、"f1"等 "enter"
presses 整数 按键次数,默认为1 2
interval 浮点数 连续点击/按键之间的间隔时间(秒) 0.25

鼠标操作相关参数

参数名 类型 描述 示例值
duration 浮点数 鼠标移动的持续时间(秒),值越大移动越慢,默认为0.25 0.5

其他参数

参数名 类型 描述 示例值
timeout 整数 在ShutDown命令中,指定关机前的等待时间(秒) 60
then 数组 在OCR命令中,指定找到目标后要执行的后续操作列表 [{"cmdType": "ClickAfterOCR", "cmdParam": {"x": 50, "y": 0}}]

使用实例

下面是一个完整的JSON配置文件示例,展示了如何组合使用各种命令实现一个自动化流程:

json 复制代码
{
    "name": "示例",
    "data": [
       {
            "cmdType": "SearchImage",
            "cmdParam": {
                "target": ["button.jpg"],
                "waitForTarget": true,
                "detecttime": 0.5,
                "maxWaitTime": 30
            }
        },
        {
            "cmdType": "Sleep",
            "cmdParam": 2
        },
        {
            "cmdType": "Click",
            "cmdParam": {
                "x": 20,
                "y": 1050,
                "clicks": 1
            }
        }
    ]
}

高级用法

1. 条件等待与超时设置

对于图像识别和OCR操作,你可以设置等待条件:

json 复制代码
{
    "cmdType": "SearchImage",
    "cmdParam": {
        "target": ["button.jpg"],
        "waitForTarget": true,
        "detecttime": 0.5,
        "maxWaitTime": 30
    }
}

这将使RPA-Tool不断尝试寻找目标图像,直到找到或超时。

2. 链式操作

对于OCR识别,你可以定义一系列后续操作:

json 复制代码
{
    "cmdType": "OCR",
    "cmdParam": {
        "target": ["登录"],
        "waitForTarget": true,
        "then": [
            {
                "cmdType": "ClickAfterOCR",
                "cmdParam": {
                    "x": 50,
                    "y": 0
                }
            }
        ]
    }
}

3. 使用Excel配置

除了JSON,你还可以使用Excel表格配置自动化流程。选择"创建Excel模板"选项可以生成一个模板文件,然后按照模板格式填写命令和参数。

4. 全局热键

在脚本执行过程中,按下F10键可以随时中断脚本执行。

注意事项

  1. 对于图像识别功能,建议使用清晰、特征明显的截图
  2. 坐标点是相对于屏幕左上角的像素位置
  3. 使用OCR功能需要确保已正确安装PaddleOCR相关组件
  4. 移动端操作需要确保手机已通过ADB连接到电脑

最后

q: 为什么要写这一个工具呢?

a: 一开始的初衷是当时实习找工作的时候懒得投递简历,于是做了个这个自动化脚本自动去招聘软件海投去,

q: 为什么pc端有ui界面,移动端没有?

a: 主要是想在pc端考虑对一些小白友好吧,然后移动端需要adb的命令本身其实对小白就不友好了,因此默认移动端的都是高玩。也就不用搞ui界面

相关推荐
加班是不可能的,除非双倍日工资4 小时前
css预编译器实现星空背景图
前端·css·vue3
wyiyiyi4 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip5 小时前
vite和webpack打包结构控制
前端·javascript
excel5 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
阿华的代码王国5 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼5 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin
Jimmy5 小时前
AI 代理是什么,其有助于我们实现更智能编程
前端·后端·ai编程
ZXT6 小时前
promise & async await总结
前端
Jerry说前后端6 小时前
RecyclerView 性能优化:从原理到实践的深度优化方案
android·前端·性能优化
画个太阳作晴天6 小时前
A12预装app
linux·服务器·前端