English | 中文 |
RPALite is an open-source RPA (Robotic Process Automation) library. You can use RPALite through Python or Robot Framework to achieve various automation tasks with minimal code.
RPALite provides powerful automation capabilities with a simple API, allowing you to automate UI interactions, data entry, and image-based operations across different applications.
RPALite currently only supports the Windows platform. Support for macOS and Linux is under active development.
RPALite supports the following operations:
Application Management
Mouse Operations
Keyboard Operations
Visual Automation
UI Automation
Utility Features
RPALite supports two OCR engines for text recognition:
EasyOCR (Default)
PaddleOCR
You can specify which engine to use during initialization:
# Using the default (EasyOCR)
rpa = RPALite()
# Using PaddleOCR
rpa = RPALite(ocr_engine="paddleocr")
The most time-consuming operations in RPALite are image recognition and OCR. Both OCR engines run more efficiently on computers with dedicated GPUs and CUDA support. If you find RPALite running slowly, consider running it on a computer with a dedicated GPU and CUDA support and installing the appropriate version of PyTorch.
In the following sections, we provide a Quick Start Guide to give you a basic understanding of RPALite.
Here are links to more detailed documentation:
In addition to the above documents, we provide an English version of the Robot Framework Library documentation, which you can access through the Online Robot Framework Documentation. If you prefer to view it locally, you can open the Robot Framework Library documentation in the project directory.
You can install RPALite via pip:
pip install RPALite
Platform-specific dependencies will be automatically installed based on your operating system.
As mentioned earlier, you can use RPALite with Python or Robot Framework. Here are some examples:
Below is an example of using RPALite to operate Windows Notepad:
from RPALite import RPALite
rpalite = RPALite()
# Show the desktop
rpalite.show_desktop()
# Run Notepad and input some text
rpalite.run_command("notepad.exe")
rpalite.input_text("This is a demo using RPALite.\n")
# Find the Notepad app and close it
app = rpalite.find_application(".*Notepad")
rpalite.close_app(app)
from RPALite import RPALite
rpalite = RPALite()
# Wait for text to appear with timeout
position = rpalite.wait_until_text_shown("Login", timeout=10)
# Click on a button identified by text
rpalite.click_by_text("Sign In")
# Work with form fields
rpalite.enter_in_field("Username", "my_user")
rpalite.enter_in_field("Password", "my_password")
# Wait for an image to appear
rpalite.wait_until_image_shown("dashboard_icon.png", timeout=15)
# Start screen recording
recording_path = rpalite.start_screen_recording(fps=15)
# Perform some operations...
# Stop recording
rpalite.stop_screen_recording()
# Simple text input
rpalite.send_keys("Hello World")
# Special keys
rpalite.send_keys("{ENTER}")
rpalite.send_keys("{ESC}")
# Key combinations
rpalite.send_keys("^c") # Control+C
rpalite.send_keys("%{F4}") # Alt+F4
rpalite.send_keys("+(abc)") # Shift+ABC (uppercase)
Below is an example of using RPALite to operate Windows Notepad:
*** Settings ***
Library RPALite
*** Test Cases ***
Test Notepad
Send Keys {VK_LWIN down}D{VK_LWIN up}
Run Command notepad.exe
${app} = Find Application .*Notepad
Maximize Window ${app}
Input Text This is a demo using RPALite.
Close App ${app}
*** Settings ***
Library RPALite
Library OperatingSystem
*** Test Cases ***
Login Form Automation
# Wait for text to appear with timeout
${position} = Wait Until Text Shown Login timeout=10
# Click on UI elements
Click By Text Sign In
# Fill in form fields
Enter In Field Username my_user
Enter In Field Password my_password
# Take screenshot for verification
${screenshot} = Take Screenshot filename=login_screen.png
# Wait for an image to appear on screen
Wait Until Image Shown dashboard_icon.png timeout=15
# Start screen recording
${recording_path} = Start Screen Recording fps=15
# Perform test operations
Click By Text Dashboard
Sleep 2
# Validate text exists on screen
Validate Text Exists Welcome, my_user
# Stop recording
${final_path} = Stop Screen Recording
Log Recording saved to: ${final_path}
*** Settings ***
Library RPALite
*** Test Cases ***
Keyboard Operations
# Simple text input
Input Text Hello from Robot Framework!
# Special keys and combinations
Send Keys {ENTER}
Send Keys ^a # Select all
Send Keys ^c # Copy
Send Keys {TAB}
Send Keys ^v # Paste
# Function keys and modifiers
Send Keys {F5}
Send Keys %{F4} # Alt+F4
# Get clipboard content
${clipboard_text} = Get Clipboard Text
Log Clipboard contains: ${clipboard_text}
If you wish to contribute code to RPALite, feel free to submit a Pull Request. Ensure your code style is consistent with the existing codebase and passes all tests in the tests directory. Additionally, make sure to update unit tests for any new or modified code.