RPA Framework is a collection of open-source libraries and tools for Robotic Process Automation (RPA), and it is designed to be used with both Robot Framework and Python. The goal is to offer well-documented and actively maintained core libraries for Software Robot Developers.
The project is:
From the above packages, rpaframework-core and rpaframework-recognition are support packages, which alone do not contain any libraries.
The RPA Framework project currently includes the following libraries:
The x in the PACKAGE column means that library is included in the rpaframework package and for example. x,dialogs means that RPA.Dialogs library is provided in both the rpaframework and rpaframework-dialogs packages.
LIBRARY NAME
DESCRIPTION
PACKAGE
Archiving TAR and ZIP files
Display information to a user and request input.
Control browsers and automate the web
Newer way to control browsers
special (more below)
For date and time manipulations
Use Amazon AWS services
Use Microsoft Azure services
Use Google Cloud services
Common hashing and encryption operations
Interact with databases
Cross-platform desktop automation
Interact with the system clipboard
Read OS information and manipulate processes
Intelligent Document Processing wrapper
Intelligent Document Processing service
Intelligent Document Processing service
E-Mail operations (Exchange protocol)
E-Mail operations (IMAP & SMTP)
Control the Excel desktop application
Manipulate Excel files directly
Read and manipulate files and paths
Interact with FTP servers
Interact directly with web APIs
Access HubSpot CRM data objects
Control Java applications
Manipulate JSON objects
Authenticate using one-time passwords (OTP) & OAuth2
Notify messages using different services
Artificial Intelligence service
Control the Outlook desktop application
Read and create PDF documents
Use the Robocorp Process API
Use the Robocorp Work Items API
Use the Robocorp Secrets API
Use the Robocorp Asset Storage API
Control SAP GUI desktop client
Access Smartsheet sheets
Manipulate, sort, and filter tabular data
Control task execution
Twitter API interface
Alternative library for Windows automation
Control the Word desktop application
The RPA.Browser.Playwright at the moment requires special installation, because of the package size and the post install step it needs to be fully installed.
Minimum required conda.yaml to install Playwright:
channels: - conda-forge dependencies: - python=3.9.16 - nodejs=16.14.2 - pip=22.1.2 - pip: - robotframework-browser==17.2.0 - rpaframework==24.1.2 rccPostInstall: - rfbrowser init
Learn about installing Python packages at Installing Python Packages.
Default installation method with Robocorp Developer Tools using conda.yaml :
channels: - conda-forge dependencies: - python=3.9.16 - pip=22.1.2 - pip: - rpaframework==24.1.2
To install all extra packages (including Playwright dependencies), you can use:
channels: - conda-forge dependencies: - python=3.9.16 - tesseract=4.1.1 - nodejs=16.14.2 - pip=22.1.2 - pip: - robotframework-browser==17.2.0 - rpaframework==24.1.2 - rpaframework-aws==5.2.8 - rpaframework-google==7.0.3 - rpaframework-recognition==5.1.2 rccPostInstall: - rfbrowser init
Separate installation of AWS, Dialogs, PDF and Windows libraries without the main rpaframework :
channels: - conda-forge dependencies: - python=3.9.16 - pip=22.1.2 - pip: - rpaframework-aws==5.2.8 # included in the rpaframework as an extra - rpaframework-dialogs==4.0.4 # included in the rpaframework by default - rpaframework-pdf==7.1.5 # included in the rpaframework by default - rpaframework-windows==7.3.2 # included in the rpaframework by default
Installation method with pip using Python venv:
python -m venv .venv source .venv/bin/activate pip install rpaframework
Python 3.8 or higher is required
After installation the libraries can be directly imported inside Robot Framework:
*** Settings *** Library RPA.Browser.Selenium *** Tasks *** Login as user Open available browser https://example.com Input text id:user-name $USERNAME> Input text id:password $PASSWORD>
The libraries are also available inside Python:
from RPA.Browser.Selenium import Selenium lib = Selenium() lib.open_available_browser("https://example.com") lib.input_text("id:user-name", username) lib.input_text("id:password", password)
Found a bug? Missing a critical feature? Interested in contributing? Head over to the Contribution guide to see where to get started.
Repository development is Python based and requires at minimum Python version 3.8+ installed on the development machine. The default Python version used in the Robocorp Robot template is 3.9.16 so it is a good choice for the version to install. Not recommended versions are 3.7.6 and 3.8.1, because they have issues with some of the dependencies related to rpaframework . At the time the newer Python versions starting from 3.11 are also not recommended, because some of the dependencies might cause issues.
Repository development tooling is based on poetry and invoke. Poetry is the underlying tool used for compiling, building and running the package. Invoke is used for scripting purposes, for example for linting, testing and publishing tasks.
Before writing any code, please read and acknowledge our extensive Dev Guide.
First steps to start developing:
poetry config virtualenvs.path null poetry config virtualenvs.in-project true poetry config repositories.devpi "https://devpi.robocorp.cloud/ci/test"
# Before [tool.poetry.dependencies] python = "^3.8" rpaframework = path = "packages/main", extras = ["cv", "playwright", "aws"] > rpaframework-google = "^4.0.0" rpaframework-windows = "^4.0.0" # After [tool.poetry.dependencies] python = "^3.8" rpaframework = path = "packages/main", extras = ["cv", "playwright"] > rpaframework-aws = path = "packages/aws" > rpaframework-google = "^4.0.0" rpaframework-windows = "^4.0.0"
Packaging and publishing are done after changes have been merged into master branch. All the following steps should be done within master branch.
Some recommended tools for development