【使用教程】一个前端写的自动化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界面

相关推荐
Hi_kenyon7 小时前
VUE3套用组件库快速开发(以Element Plus为例)二
开发语言·前端·javascript·vue.js
起名时在学Aiifox7 小时前
Vue 3 响应式缓存策略:从页面状态追踪到智能数据管理
前端·vue.js·缓存
李剑一8 小时前
uni-app实现本地MQTT连接
前端·trae
EndingCoder8 小时前
Any、Unknown 和 Void:特殊类型的用法
前端·javascript·typescript
oden8 小时前
代码高亮、数学公式、流程图... Astro 博客进阶全指南
前端
GIS之路8 小时前
GDAL 实现空间分析
前端
JosieBook8 小时前
【Vue】09 Vue技术——JavaScript 数据代理的实现与应用
前端·javascript·vue.js
pusheng20258 小时前
算力时代的隐形防线:数据中心氢气安全挑战与技术突破
前端·安全
起名时在学Aiifox9 小时前
前端文件下载功能深度解析:从基础实现到企业级方案
前端·vue.js·typescript