RPA for Python:基于 TagUI 的自动化工具

RPA for Python 是一款基于 TagUI 构建的 Python 自动化包,目前获得了 5,477 个 Star:

正文顶部截图

README区域截图

该项目由 Ken Soh 于 2019 年创建,初衷是为 Python 用户提供简洁的自动化接口。RPA for Python 封装了 TagUI 的核心能力,通过少量代码即可完成网页操作、桌面应用控制、OCR 识别等任务。

安装方式很简单,一条 pip 命令即可:

pip install rpa

使用时导入包:

import rpa as r

RPA for Python 提供了五类典型的自动化场景。

网页自动化是最常用的功能。通过 XPath 或 CSS 选择器定位元素,可以完成点击、输入、截图、抓取表格等操作。工具会自动等待元素出现,默认超时时间为 10 秒。代码示例如下:

r.init()
r.url('https://duckduckgo.com')
r.type('//*[@name="q"]', 'decentralisation[enter]')
r.wait()
r.snap('page', 'results.png')
r.close()

视觉自动化通过图像识别来操作桌面应用。用户只需要准备目标元素的截图,工具会自动匹配屏幕位置并执行点击、输入等动作。这个功能对没有标准接口的系统比较实用。图像标识符支持 png 和 bmp 格式,png 还支持透明背景。

OCR 自动化结合了视觉识别和文字提取。它可以读取屏幕指定区域的文字内容,也支持对 PDF 或图片进行文字识别。用户可以通过坐标范围限定识别区域,精确提取需要的信息。对需要处理扫描文档或图片内文字的场景,这个功能可以直接替代手动录入。

键盘和鼠标自动化提供了底层的输入控制能力。可以模拟快捷键、组合键、鼠标拖拽等操作,覆盖一些高级交互场景。比如用 keyboard() 发送组合键打开应用,用 mouse() 控制拖拽动作。特殊按键包括 shift、ctrl、alt、enter、tab、esc 等常用键位。

RPA for Python 的 API 设计简洁。核心函数包括 init() 启动环境、close() 关闭环境、url() 打开网页、click() 点击元素、type() 输入文字、read() 读取内容、snap() 截图保存等。这些函数覆盖日常自动化的基本需求,参数设计也比较直观。

进阶功能包括 keyboard() 键盘模拟、table() 表格导出、upload() 文件上传、download() 文件下载、run() 执行系统命令、dom() 执行浏览器 JavaScript、vision() 执行 SikuliX 命令等。timeout() 可以调整默认的元素等待时间。frame() 用于处理网页内嵌框架,popup() 用于切换弹窗标签页。

helper 函数也提供了不少便利工具。exist() 检查元素是否在超时前出现,present() 判断元素当前是否存在,count() 返回匹配元素的数量,clipboard() 读写剪贴板内容,get_text() 提取标记之间的文本,del_chars() 删除指定字符,mouse_xy() 获取鼠标坐标,timer() 计算时间间隔等。

该项目支持 Windows、macOS、Linux 以及 Raspberry Pi 等平台。Windows 上建议将显示缩放设置为推荐值或 100%,以保证视觉自动化的稳定性。macOS 需要手动安装 PHP,并注意 PhantomJS 和 Java 弹窗的处理。Linux 视觉自动化模式需要额外配置 OpenCV 和 Tesseract。Raspberry Pi 则有专门的 setup guide 可以参考。

项目默认以正常人类速度运行,也支持 turbo_mode 加速到 10 倍速度。可以设置 error(True) 让异常自动抛出,方便用 try except 管理错误流程。对于无网络环境,项目支持离线安装和更新。用户还可以通过 download_location() 指定浏览器下载路径,通过 tagui_location() 自定义 TagUI 的安装位置。

TagUI 本身是一个成熟的 RPA 工具,拥有数万用户,2016 至 2017 年在新加坡 DBS 银行测试自动化工程师 Ken Soh 的休假期间开发完成。RPA for Python 作为其 Python 封装版本,继承了 TagUI 的架构优势,同时让 Python 开发者可以用熟悉的语法进行流程自动化开发。目前项目由 Marcelo Cecin、Luis Alejandro、Jozsef Fulop 等人组成的团队维护。

整个工具包采用 Apache 2.0 协议开源。

ro、Jozsef Fulop 等人组成的团队维护。

整个工具包采用 Apache 2.0 协议开源。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐