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

518 阅读6分钟

前言

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

视频教程:b23.tv/u42zUlO

项目截图

example.png

项目概述

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整数按键次数,默认为12
interval浮点数连续点击/按键之间的间隔时间(秒)0.25

鼠标操作相关参数

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

其他参数

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

使用实例

下面是一个完整的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操作,你可以设置等待条件:

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

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

2. 链式操作

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

{
    "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界面