English | 中文 |
RPALite 是一个开源的 RPA(机器人流程自动化)库。您可以通过 Python 或 Robot Framework 来使用 RPALite 实现各种自动化任务,只需少量代码即可完成。
RPALite 提供了强大的自动化能力和简洁的 API,让您能够跨不同应用程序自动化 UI 交互、数据输入和基于图像的操作。
RPALite 目前仅支持 Windows 平台。对 macOS 和 Linux 的支持正在积极开发中。
RPALite 支持以下操作:
应用程序管理
鼠标操作
键盘操作
视觉自动化
UI 自动化
实用工具
系统依赖项安装:
# Ubuntu/Debian
sudo apt-get install xdotool wmctrl python3-xlib
# CentOS/RHEL
sudo yum install xdotool wmctrl python3-xlib
# Arch Linux
sudo pacman -S xdotool wmctrl python-xlib
RPALite 中最耗时的操作是图像识别和 OCR。对于 OCR,用户可以选择使用 EasyOCR或者 PaddleOCR 进行文本识别。EasyOCR 和 PaddleOCR 在具有独立显卡和 CUDA 支持的计算机上运行效率更高。如果您发现 RPALite 运行缓慢,请考虑在具有独立显卡和 CUDA 支持的计算机上运行,并安装适当版本的 PyTorch。
在这份文档的后面部分,我们提供了快速入门,让你可以对 RPALite 有一个简单直接的了解。
以下是更详细的文档链接:
除了以上文档以外,我们提供一份英文的 Robot Framework Library 文档,你可以通过在线 Robot Framework 文档访问。如果你希望在本地打开,可以直接打开项目目录下的 Robot Framework Library 文档。
您可以通过 pip 安装 RPALite:
pip install RPALite
系统会根据您的操作系统自动安装特定平台所需的依赖项。
如前所述,您可以通过 Python 或 Robot Framework 使用 RPALite。以下是一些示例:
以下是使用 RPALite 操作 Windows 记事本的示例:
from RPALite import RPALite
rpalite = RPALite()
# 显示桌面
rpalite.show_desktop()
# 运行记事本并输入一些文本
rpalite.run_command("notepad.exe")
rpalite.input_text("这是一个使用 RPALite 的演示。\n")
# 查找记事本应用并关闭它
app = rpalite.find_application(".*Notepad")
rpalite.close_app(app)
# 简单文本输入
rpalite.send_keys("欢迎使用 RPALite")
# 特殊键
rpalite.send_keys("{ENTER}")
rpalite.send_keys("{ESC}")
# 组合键
rpalite.send_keys("^c") # Control+C
rpalite.send_keys("%{F4}") # Alt+F4
rpalite.send_keys("+(abc)") # Shift+ABC(大写)
以下是使用 RPALite 操作 Windows 记事本的示例:
*** Settings ***
Library RPALite
*** Test Cases ***
测试记事本
Send Keys {VK_LWIN down}D{VK_LWIN up}
Run Command notepad.exe
${app} = Find Application .*Notepad
Maximize Window ${app}
Input Text 这是一个使用 RPALite 的演示。
Close App ${app}
*** Settings ***
Library RPALite
Library OperatingSystem
*** Test Cases ***
登录表单自动化
# 等待文本出现,设置超时时间
${position} = Wait Until Text Shown 登录 timeout=10
# 点击 UI 元素
Click By Text 登录
# 填写表单字段
Enter In Field 用户名 my_user
Enter In Field 密码 my_password
# 截图验证
${screenshot} = Take Screenshot filename=login_screen.png
# 等待图像出现
Wait Until Image Shown dashboard_icon.png timeout=15
# 开始屏幕录制
${recording_path} = Start Screen Recording fps=15
# 执行测试操作
Click By Text 控制面板
Sleep 2
# 验证屏幕上存在文本
Validate Text Exists 欢迎, my_user
# 停止录制
${final_path} = Stop Screen Recording
Log 录制保存到: ${final_path}
*** Settings ***
Library RPALite
*** Test Cases ***
键盘操作
# 简单文本输入
Input Text 来自 Robot Framework 的问候!
# 特殊键和组合键
Send Keys {ENTER}
Send Keys ^a # 全选
Send Keys ^c # 复制
Send Keys {TAB}
Send Keys ^v # 粘贴
# 功能键和修饰符
Send Keys {F5}
Send Keys %{F4} # Alt+F4
# 获取剪贴板内容
${clipboard_text} = Get Clipboard Text
Log 剪贴板内容: ${clipboard_text}
以下是更详细的文档链接:
除了以上文档以外,我们提供一份英文的 Robot Framework Library 文档,你可以通过在线 Robot Framework 文档访问。如果你希望在本地打开,可以直接打开项目目录下的 Robot Framework Library 文档。
RPALite 支持两种 OCR 引擎进行文本识别:
EasyOCR(默认)
PaddleOCR
您可以在初始化时指定使用哪个引擎:
# 使用默认引擎(EasyOCR)
rpa = RPALite()
# 使用PaddleOCR
rpa = RPALite(ocr_engine="paddleocr")
RPALite 会自动检测您操作系统的显示语言,并为 OCR 引擎添加相应的语言支持。如果您的系统设置为中文,将自动添加中文语言支持以提高文本识别准确性。此功能适用于 EasyOCR 和 PaddleOCR 引擎。
您也可以手动指定 OCR 识别的语言:
# 对于 EasyOCR
rpa = RPALite(ocr_engine="easyocr", languages=["en", "ch_sim", "fr"])
# 对于 PaddleOCR
rpa = RPALite(ocr_engine="paddleocr", languages=["en", "ch", "fr"])
语言代码参考:
RPALite 中最耗时的操作是图像识别和 OCR。这两种 OCR 引擎在具有独立显卡和 CUDA 支持的计算机上运行效率更高。如果您发现 RPALite 运行缓慢,请考虑在具有独立显卡和 CUDA 支持的计算机上运行,并安装适当版本的 PyTorch。
如果您想为 RPALite 贡献代码,欢迎提交 Pull Request。请确保您的代码风格与现有代码库一致,并通过 tests 目录中的所有测试。此外,请确保为任何新增或修改的代码更新单元测试。
本节提供在 macOS 上使用 RPALite 的详细设置说明。
RPALite 需要以下 macOS 特定依赖项:
这些依赖项在您通过 pip 安装 RPALite 时会自动安装。如果需要手动安装:
pip install pyobjc-core pyobjc-framework-Cocoa pyobjc-framework-Quartz pyobjc-framework-ApplicationServices
要在 macOS 上使用 RPALite,您需要在系统设置中授予必要的权限:
/Applications/Utilities/Terminal.app
(应用程序/实用工具/终端)/Applications/Visual Studio Code.app
(或您的自定义安装位置)/Applications/Utilities/Terminal.app
(应用程序/实用工具/终端)/Applications/Visual Studio Code.app
/usr/local/bin/python3
或虚拟环境中)/opt/homebrew/bin/python3
(对于 Apple Silicon)或 /usr/local/bin/python3
(对于 Intel Mac)注意:根据您的 macOS 版本,这些设置的确切路径可能略有不同。在较旧的 macOS 版本中,这些设置在系统偏好设置 > 安全性与隐私 > 隐私中。
如果您在 macOS 上运行 RPALite 时遇到问题:
sudo python your_script.py
rpalite = RPALite(ocr_engine="paddleocr")
send_keys()
方法而不是 input_text()
run_command()
失败,请指定应用程序的完整路径.app
扩展名的完整名称:"Calculator.app"