RPALite

RPALite - 一个开源的 Python 和 Robot Framework RPA(机器人流程自动化)编程库

English 中文

PyPI License PyPI - Python Version

目录

简介

RPALite 是一个开源的 RPA(机器人流程自动化)库。您可以通过 Python 或 Robot Framework 来使用 RPALite 实现各种自动化任务,只需少量代码即可完成。

RPALite 提供了强大的自动化能力和简洁的 API,让您能够跨不同应用程序自动化 UI 交互、数据输入和基于图像的操作。

RPALite 目前仅支持 Windows 平台。对 macOS 和 Linux 的支持正在积极开发中。

功能特性

RPALite 支持以下操作:

平台支持

Windows

macOS (开发中)

Linux

性能优化

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。以下是一些示例:

Python

基础示例

以下是使用 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(大写)

Robot Framework

基础示例

以下是使用 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 文档

OCR 引擎选项

RPALite 支持两种 OCR 引擎进行文本识别:

您可以在初始化时指定使用哪个引擎:

# 使用默认引擎(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 配置指南

本节提供在 macOS 上使用 RPALite 的详细设置说明。

系统要求

系统依赖项

RPALite 需要以下 macOS 特定依赖项:

这些依赖项在您通过 pip 安装 RPALite 时会自动安装。如果需要手动安装:

pip install pyobjc-core pyobjc-framework-Cocoa pyobjc-framework-Quartz pyobjc-framework-ApplicationServices

系统权限设置

要在 macOS 上使用 RPALite,您需要在系统设置中授予必要的权限:

1. 屏幕录制权限

2. 辅助功能权限

3. 自动化权限

4. 直接添加 Python(替代方法)

注意:根据您的 macOS 版本,这些设置的确切路径可能略有不同。在较旧的 macOS 版本中,这些设置在系统偏好设置 > 安全性与隐私 > 隐私中。

问题排查指南

如果您在 macOS 上运行 RPALite 时遇到问题:

权限错误

OCR 或截图问题

鼠标/键盘控制问题

应用程序启动问题

已知限制