RPALite - An Open Source RPA (Robotic Process Automation) Programming Library for Python and Robot Framework
- Introduction
- Features
- Platform Support
- Performance Optimization
- Documentation
- Installation
- Quick Start
- Contribution Guidelines
RPALite is an open-source RPA (Robotic Process Automation) library. You can use RPALite through Python or Robot Framework to achieve various automation tasks.
RPALite now supports Windows platform. Supporting for macOS and Linux is under development.
RPALite supports the following operations:
- Launching applications
- Finding applications by name or ClassName
- Closing applications
- Mouse clicking on specific text
- Locating and inputting into text boxes based on placeholders or labels
- Mouse clicking based on coordinates
- Support for left-click, right-click, and double-click operations
- Locating controls based on control names, classes, or Automation IDs (Windows) and getting their coordinates
- Image-based location. You can pass a partial screenshot to RPALite to return the coordinates of the corresponding part on the screen.
- Screen recording capabilities
- Clipboard operations
- Advanced keyboard input support with special keys and combinations
- Window management (maximize, minimize, show desktop)
- Full automation support including UI controls
- Windows-specific features like UI Automation
- Administrative privileges may be required for some features
- macOS support is currently under development
- The code is not yet stable, so macOS-related features have been temporarily disabled
- We are working to provide full macOS support in future releases
The most time-consuming operations in RPALite are image recognition and OCR. For OCR, users could choose to use EasyOCR or PaddleOCR. 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:
- Programming Guide for Using RPALite in Python
- Programming Guide for Using RPALite in Robot Framework
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)
# 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}
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.
- GitHub Repository: https://github.com/jieliu2000/RPALite
- Gitee Repository: https://gitee.com/jieliu2000/rpalite
- Gitcode Repository: https://gitcode.com/jieliu2000/rpalite