Skip to main content

Open Source RPA (Robotic Process Automation) Library for Python and Robot Framework

Project description

RPALite - Open Source RPA (Robotic Process Automation) Library for Python and Robot Framework

| English | 中文 |

Introduction

RPALite is an open source RPA (Robotic Process Automation) library. You can use RPALite via Python or Robot Framework to process various automation tasks.

In the current version , RPALite only supports Windows platform , we plan to add support for mac and Linux in the future version , but currently rpalite only supports Windows platform.

Features

Currently RPALite supports the following operations on Windows platform:

  • Start an application
  • Find an application by its name or ClassName.
  • Close an application
  • Mouse clicks on specific text
  • Locating textboxes, controls, windows based on its labels or the text inside the control
  • Text input
  • Support coordinate-based mouse click
  • Left, right mouse button clicks, with single click or double click mode
  • Supports finding the coordinates of a Windows control based on the control's name, class, or Automation ID.
  • Support for image-based positioning. You can pass RPALite a picture of a part of the screen to return the coordinates of the part of the screen that corresponds to the picture.

Documentation

We currently provide a copy of the Robot Framework documentation in English, which you can access online documentation. If you want to open it locally, you can open the Robot Framework help documentation under the project folder directly

Performance Optimization

The most time-consuming operations in RPALite is OCR, for which we utilize EasyOCR. EasyOCR runs more efficiently on computers with a dedicated GPU and CUDA support, so if you find that RPALite is running slowly, consider switching to a computer with a dedicated GPU and CUDA support and installing the corresponding PyTorch version.

Quick Start

Installation

You can install RPALite via pip:

pip install RPALite

You can also install RPALite from source following the instructions below.

Installation from source

Since we are still in the early stages of the project, you need to clone the project and install it after build. First clone the project to you computer:

git clone https://github.com/jieliu2000/RPALite.git

After that, go into the rpalite directory and build and install it

cd RPALite

Install the libraries needed for build:

pip install -r requirements.txt

Perform a project build:

python -m build

After that use pip to install. Below command line is an example. Please make sure to replace the xxx to the actual version number:

cd dist
pip install rpalite-xxx.tar.gz

Usage Examples

You can use RPALite with Python or Robot Framework, the following section shows some examples:

Python example

This is an example for using RPALite in Python to open Notepad and input some text:

from RPALite import RPALite
rpalite = RPALite()

# Press Windows + D to show the desktop
rpalite.send_keys("{VK_LWIN down}D{VK_LWIN up}")

# Open Notepad and type a text
rpalite.run_command("notepad.exe")
rpalite.input_text("This is a demo using RPALite.\n")

# Find the notepad application and close it
app = rpalite.find_application(".*Notepad")
rpalite.close_app(app)

Robot Framework example

This is an example for using RPALite in Robot Framework script to open Notepad and input some text:

*** Settings ***
Library    RPALite

*** Test Cases ***
Notepad Test
    Send Keys    {VK_LWIN down}D{VK_LWIN up}
    Run Command    notepad.exe
    Input Text    This is a demo using RPALite.
    ${app} = Find Application    .*Notepad
    Close App    ${app}

Programming Guide

As mentioned earlier, you can use RPALite with Python or Robot Framework. In the following sections, we will introduce how to use RPALite in Python and Robot Framework. Since Robot Framework is built upon Python at its core, the content of these two sections is essentially the same.

Python

Creating an RPALite Object

You can create an RPALite object with the following code:

from RPALite import RPALite
rpalite = RPALite()

The RPALite constructor includes several optional parameters:

  • debug_mode: A boolean value, defaulting to False. If set to True, RPALite outputs debug information and displays markings of elements within images during recognition.
  • step_pause_interval: An integer representing the duration to wait after each simulated action. The default value is 3 seconds. This value cannot be set to 0 because both Windows and the program being controlled need some time to respond after mouse or keyboard actions; otherwise, the likelihood of issues increases.
  • languages: A list of strings indicating which languages RPALite should use for OCR recognition. The default value is ["en"], meaning English. You can specify other languages by passing their respective language codes.

Application Operations

Launching an Application

You can launch an application with the following code:

rpalite.run_command("notepad.exe")

The run_command function has two parameters:

  • command: A string representing the command to start the application.
  • noblock: An optional boolean value, defaulting to True, meaning RPALite will not wait for the application to finish launching before returning. If set to False, RPALite waits until the application is fully launched.

Finding an Application

You can find an application with the following code:

app = rpalite.find_application(".*Notepad")

find_application supports finding an application through the following parameters:

  • title: A string representing the regular expression for matching the application's title.
  • classname: A string representing the application's class name. To find an application's class name, you can use the Accessibility Insights for Windows tool.

Closing an Application

After obtaining an application instance using the find_application function, you can close an application with the following code:

app = rpalite.find_application(".*Notepad")
rpalite.close_app(app)

Maximizing a Window

You can maximize an application window with the following code:

app = rpalite.find_application(".*Notepad")
rpalite.maximize_window(app)

Simulating Mouse Actions

RPALite supports various mouse simulation operations, such as clicking text, images, and coordinates.

Clicking by Coordinates

You can click a coordinate with the following code:

rpalite.click_by_position(10, 20)

The first parameter is the X-axis coordinate, and the second is the Y-axis coordinate. The top-left corner of the screen is (0, 0).

Clicking Text

You can click text with the following code:

rpalite.click_by_text("Text to click")

Clicking an Image

You can click an image with the following code:

rpalite.click_by_image("path/to/image.png")

RPALite uses OpenCV to search for the corresponding image on the screen and clicks the top-left corner of the image if found.

Simulating Keyboard Actions

Typing Text

You can type a piece of text with the following code:

rpalite.input_text("This is a demo using RPALite.\n")

Sending Keys

You can simulate pressing a key on the keyboard with the following code:

rpalite.send_keys("{VK_LWIN down}D{VK_LWIN up}")

Robot Framework

Refer to our Robot Framework Help Documentation for a list and descriptions of the operations supported by RPALite.

Importing the RPALite Library

You can import the RPALite library with the following code:

Library    RPALite

Application Operations

Launching an Application

You can launch an application with the following code:

Run Command    notepad.exe

Finding an Application

You can find an application with the following code:

${app} =    Find Application    .*Notepad

Closing an Application

You can close an application with the following code:

${app} =    Find Application    .*Notepad
Close App

Simulating Mouse Actions

RPALite supports various mouse simulation operations, such as clicking text, images, and coordinates.

Clicking by Coordinates

You can click a coordinate with the following code:

Click By Position    10    20

Clicking Text

Click By Text    Text to click

Clicking an Image

You can click an image with the following code:

Click By Image    path/to/image.png

Simulating Keyboard Actions

Typing Text

You can input a piece of text with the following code:

Input Text    This is a demo using RPALite.

Sending Keys

You can simulate pressing a key on the keyboard with the following code:

Send Keys    {VK_LWIN down}D{VK_LWIN up}

Contributor Guidelines

If you wish to contribute code to RPALite, you can directly create a Pull Request. Please ensure that your coding style is consistent with the existing codebase and that your changes pass all tests in the tests directory. Additionally, make sure to update unit tests for any new or modified code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rpalite-0.0.4.tar.gz (21.3 kB view hashes)

Uploaded Source

Built Distribution

rpalite-0.0.4-py3-none-any.whl (19.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page