• Stars
    star
    815
  • Rank 55,942 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Collection of open-source libraries and tools for Robotic Process Automation (RPA), designed to be used with both Robot Framework and Python

RPA Framework

REQUEST for user input!

We are looking at improving our keyword usage to cover situations where developer might be struggling to smoothly write task for a Robot. Describe the situation where your implementation speed slows due to the lack of easier syntax.

Comment HERE

Introduction

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.

Learn more about RPA at Robocorp Documentation.

The project is:

Links


Status rpaframework License

Packages

rpaframework latest version rpaframework-assistant latest version rpaframework-aws latest version rpaframework-core latest version rpaframework-dialogs latest version rpaframework-google latest version rpaframework-openai latest version rpaframework-pdf latest version rpaframework-recognition latest version rpaframework-windows latest version

From the above packages, rpaframework-core and rpaframework-recognition are support packages, which alone do not contain any libraries.

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
Archive Archiving TAR and ZIP files x
Assistant Display information to a user and request input. assistant
Browser.Selenium Control browsers and automate the web x
Browser.Playwright Newer way to control browsers special (more below)
Calendar For date and time manipulations x
Cloud.AWS Use Amazon AWS services x,aws
Cloud.Azure Use Microsoft Azure services x
Cloud.Google Use Google Cloud services google
Crypto Common hashing and encryption operations x
Database Interact with databases x
Desktop Cross-platform desktop automation x
Desktop.Clipboard Interact with the system clipboard x
Desktop.OperatingSystem Read OS information and manipulate processes x
Dialogs Request user input during executions dialogs
DocumentAI Intelligent Document Processing wrapper x
DocumentAI.Base64AI Intelligent Document Processing service x
DocumentAI.Nanonets Intelligent Document Processing service x
Email.Exchange E-Mail operations (Exchange protocol) x
Email.ImapSmtp E-Mail operations (IMAP & SMTP) x
Excel.Application Control the Excel desktop application x
Excel.Files Manipulate Excel files directly x
FileSystem Read and manipulate files and paths x
FTP Interact with FTP servers x
HTTP Interact directly with web APIs x
Hubspot Access HubSpot CRM data objects x
Images Manipulate images x
JavaAccessBridge Control Java applications x
JSON Manipulate JSON objects x
MFA Authenticate using one-time passwords (OTP) & OAuth2 x
Notifier Notify messages using different services x
OpenAI Artificial Intelligence service openai
Outlook.Application Control the Outlook desktop application x
PDF Read and create PDF documents x,pdf
Robocorp.Process Use the Robocorp Process API x
Robocorp.WorkItems Use the Robocorp Work Items API x
Robocorp.Vault Use the Robocorp Secrets API x
Robocorp.Storage Use the Robocorp Asset Storage API x
Salesforce Salesforce operations x
SAP Control SAP GUI desktop client x
Smartsheet Access Smartsheet sheets x
Tables Manipulate, sort, and filter tabular data x
Tasks Control task execution x
Twitter Twitter API interface x
Windows Alternative library for Windows automation x,windows
Word.Application Control the Word desktop application x

Installation of RPA.Browser.Playwright

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

Installation

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

Note

Python 3.8 or higher is required

Example

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)

Support and contact

Contributing

Found a bug? Missing a critical feature? Interested in contributing? Head over to the Contribution guide to see where to get started.

Development

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:

  1. initial poetry configuration
poetry config virtualenvs.path null
poetry config virtualenvs.in-project true
poetry config repositories.devpi "https://devpi.robocorp.cloud/ci/test"
  1. git clone the repository

  2. create a new Git branch or switch to correct branch or stay in master branch

    • some branch naming conventions feature/name-of-feature, hotfix/name-of-the-issue, release/number-of-release
  3. poetry install which install package with its dependencies into the .venv directory of the package, for example packages/main/.venv

  4. if testing against Robocorp Robot which is using devdata/env.json

    • set environment variables
    • or poetry build and use resulting .whl file (in the dist/ directory) in the Robot conda.yaml
    • or poetry build and push resulting .whl file (in the dist/ directory) into a repository and use raw url to include it in the Robot conda.yaml
    • another possibility for Robocorp internal development is to use Robocorp devpi instance, by poetry publish --ci and point conda.yaml to use rpaframework version in devpi
  5. poetry run python -m robot <ROBOT_ARGS> <TARGET_ROBOT_FILE>

    • common ROBOT_ARGS from Robocorp Robot template: --report NONE --outputdir output --logtitle "Task log"
  6. poetry run python <TARGET_PYTHON_FILE>

  7. invoke lint to make sure that code formatting is according to rpaframework repository guidelines. It is possible and likely that Github action will fail the if developer has not linted the code changes. Code formatting is based on black and flake8 and those are run with the invoke lint.

  8. the library documentation can be created in the repository root (so called "meta" package level). The documentation is built by the docgen tools using the locally installed version of the project, local changes for the main package will be reflected each time you generate the docs, but if you want to see local changes for optional packages, you must utilize invoke install-local --package <package_name> using the appropriate package name (e.g., rpaframework-aws). This will reinstall that package as a local editable version instead of from PyPI. Multiple such packages can be added by repeating the use of the --package option. In order to reset this, use invoke install --reset.

    • poetry update and/or invoke install-local --package <package name>
    • make docs
    • open docs/build/html/index.html with the browser to view the changes or execute make local and navigate to localhost:8000 to view docs as a live local webpage.
    # 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"
  9. invoke test (this will run both Python unittests and robotframework tests defined in the packages tests/ directory)

    • to run specific Python test: poetry run pytest path/to/test.py::test_function
    • to run specific Robotframework test: inv testrobot -r <robot_name> -t <task_name>
  10. git commit changes

  11. git push changes to remote

  12. create pull request from the branch describing changes included in the description

  13. update docs/source/releasenotes.rst with changes (commit and push)

Packaging and publishing are done after changes have been merged into master branch. All the following steps should be done within master branch.

  1. git pull latest changes into master branch
  2. in the package directory containing changes execute invoke lint and invoke test
  3. update pyproject.toml with new version according to semantic versioning
  4. update docs/source/releasenotes.rst with changes
  5. in the repository root (so called "meta" package level) run command poetry update
  6. git commit changed poetry.lock files (on meta and target package level), releasenotes.rst and pyproject.toml with message "PACKAGE. version x.y.z"
  7. git push
  8. invoke publish after Github action on master branch is all green

Some recommended tools for development

License

This project is open-source and licensed under the terms of the Apache License 2.0.

More Repositories

1

robocorp

Create 🐍 Python AI Actions and πŸ€– Automations, and deploy & operate them anywhere
Python
451
star
2

rcc

RCC is a set of tooling that allows you to create, manage, and distribute Python-based self-contained automation packages - or 'robots' as we call them.
Go
359
star
3

robotframework-lsp

Robocorp extensions for VS Code: Robocorp Code and RFW LSP
Python
206
star
4

robocorp-old

Robocorp GitHub profile
65
star
5

llmstatemachine

A Python library for building GPT-powered agents with state machine logic and chat history memory.
Python
54
star
6

actions-cookbook

Showcasing the best AI Actions for Robocorp Action Server. Contributions welcome!
Python
27
star
7

action-trigger-process

GitHub action to trigger a process run in Robocorp Cloud
TypeScript
25
star
8

action-upload-robot

GitHub action to update a robot in Robocorp Cloud
TypeScript
17
star
9

llmfoo

Code with the flow of a river, refactor with the grace of a breeze, and commit like the thunder β€” always moving, gently improving, and powerfully finalizing.
Python
14
star
10

example-process-invoices-with-amazon-textract

This robot processes randomly generated PDF invoices with Amazon Textract and saves the extracted invoice data in an Excel file.
Python
14
star
11

java-access-bridge-wrapper

Python wrapper around the Java Access Bridge Windows .dll
Python
14
star
12

jenkins-rpa-demo

Groovy
13
star
13

example-activities

Robocorp Suite example activities
RobotFramework
13
star
14

robotframework-output-stream

Robot Framework Output Stream (a RF listener to provide an output that's compact and streamable).
Python
11
star
15

example-llm-emails

Summarise and extract structured data from emails using OpenAI gpt-4
Python
9
star
16

example-simple-web-scraper

Opens a web page and stores some content.
RobotFramework
8
star
17

example-rasa-robot

Example robot that returns current time in specified city to RASA. Demonstrates two-way integration between chatbots and RPA.
RobotFramework
8
star
18

example-langchain-data-ingestion

Schedule and run your Python RAG data loaders in cloud with Robocorp Control Room
Python
8
star
19

example-ie-mode-edge

Automating with Selenium and Edge in IE compatibility mode.
RobotFramework
8
star
20

example-desktop-image-ocr

Example robot for automating GnuCash with image templates and OCR
Python
8
star
21

example-html-table-robot

This robot demonstrates how to work with HTML tables using Beautiful Soup and RPA Framework.
Python
8
star
22

example-windows-notepad

Contains a Robocorp robot which automates Windows Notepad.
Python
7
star
23

example-rasa-chatbot

Rasa chatbot demo with Robocorp
Python
7
star
24

example-human-resources-challenge

This example robot completes the Human Resources Challenge.
Python
6
star
25

example-web-store-work-items

An example robot of creating multiple output work items in a process.
Python
5
star
26

example-oauth-email

E-mail authorization with OAuth2 flow
RobotFramework
5
star
27

example-rpa-form-challenge

Run this example to solve the form challenge at rpachallenge.com.
RobotFramework
5
star
28

template-standard

Standard robot template using Robot Framework
RobotFramework
5
star
29

template-extended

Template for extended robot using Robot Framework
RobotFramework
5
star
30

example-excel-employee-training-reminders

An employee training reminder robot written in Python. Gets the employee and training data from Excel files (no Excel installation needed!).
Python
5
star
31

example-desktop-image-template-matching

Cross-platform desktop automation using image template matching and keyboard shortcuts.
RobotFramework
4
star
32

network-diagnostics

Python bot to log and hunt down network traffic TLS level problems
Python
4
star
33

working-with-java

Repository for developers working with Java applications
RobotFramework
4
star
34

docmaker

A robot which can be pulled into an existing robot with custom libraries to generate a keyword and API documentation website.
Python
4
star
35

azure-on-demand-runtimes

Example setup for running on-demand Workforce Environments in Azure infra for Robocorp Control Room
TypeScript
4
star
36

robocorp-docker-manager

Dockerfile
4
star
37

template-python-browser

Template for browser automation using Robocorp -libraries
Python
4
star
38

example-idp-base64

Takes input files from emails (or any work item) and uses Base64.ai to extract data from each supported file.
RobotFramework
4
star
39

example-dialogs-upload-file

This robot demonstrates the use of the RPA.Assistant library to allow the user to choose and upload an Excel file, which is then used by the robot to fill a form in a web application.
RobotFramework
4
star
40

example-vscode-basics

Runs Google image search and guides through the basics of Robocorp VS Code extension.
RobotFramework
3
star
41

example-scrape-shopify-crul

Scrape product and price data from Shopify-based store using Crul
RobotFramework
3
star
42

ecs-on-demand-worker

Example setup of running on-demand worker on ECS+EC2
TypeScript
3
star
43

example-pdf-invites-creator

Starting from an Excel file, this robot will generate a personalized PDF invitation for each participant to an event.
RobotFramework
3
star
44

robot-site-monitor

Robocorp automation stack robot for simple web server monitoring
RobotFramework
3
star
45

example-machine-learning-apis

These examples demonstrate how to use cloud-based ML APIs with RPA Framework and selected set of services from AWS, Microsoft Azure, and Google Cloud.
RobotFramework
3
star
46

example-shared-rpachallenge

Example bot using shared code that implements rpachallenge.com
Python
3
star
47

example-screen-recording

Python
3
star
48

example-shared-code-common

Example repo for storing common parts used by multiple robots
Python
3
star
49

robot-playground

This repository contains proof of concepts and possible solutions to support cases.
Python
3
star
50

example-advanced-python-template

A best practices-based implementation of the Robo Python Automation Framework for advanced use cases.
Python
3
star
51

example-playwright-web-store-order-processor

Example Web Store Order Processor implemented with Playwright
RobotFramework
3
star
52

template-robot-framework-playwright

Want to build a Playwright-based browser robot? This template robot uses Robot Framework syntax, includes all the necessary dependencies and initialization commands, and provides a simple task template to start from.
RobotFramework
3
star
53

example-python-robot

A simple web scraper robot implemented as a Python script using the rpaframework set of libraries.
Python
3
star
54

example-lab-quick-intro

Runs Google image search and guides through the basics of Robocorp Lab.
RobotFramework
2
star
55

template-python

Standard robot template using Python
Python
2
star
56

example-python-workitem-files

Python
2
star
57

example-use-git-submodule-for-shared-code

RobotFramework
2
star
58

example-windows-outlook

This robot sends email using Windows Outlook application UI. Application is launched or already open application is used.
RobotFramework
2
star
59

example-auction-sniper-challenge

A robot that solves the Auction Sniper challenge.
RobotFramework
2
star
60

robot-slack-notifier

Robot for sending Slack notifications
RobotFramework
2
star
61

example-robotsparebin-complete

This example is the end result of Robocorp's beginners course.
RobotFramework
2
star
62

training-module-desktop-robot

RobotFramework
2
star
63

example-mfa-otp

Example of using Multi Factor Authentication with One Time Password
RobotFramework
2
star
64

template-python-assistant-ai

Python template for Assistants using AI/LLMs
Python
2
star
65

k8s-on-demand-runtimes

Example setup for running on-demand Workforce Environments in Kubernetes infra for Robocorp Control Room
TypeScript
2
star
66

template-python-workitems

Template for producer-consumer automations using Robocorp -libraries
Python
2
star
67

example-windows-calculator

Simple bot to demostrate Windows desktop capabilities
Python
2
star
68

example-python-producer-consumer

Python
2
star
69

template-extended-producer-consumer

Extended Producer-Consumer robot template using Robot Framework
RobotFramework
2
star
70

example-writing-excel-file

This simple robot shows how to use the RPA.Excel.Files library to write to a local Excel file.
RobotFramework
2
star
71

example-full-page-website-screenshots

A robot that takes full page screenshots of given websites.
RobotFramework
2
star
72

example-parse-pdf-invoice

Extract information from PDF invoices
Python
2
star
73

example-salesforce-sap

This robot demonstrates how to get accounts details from Salesforce and SAP. Robot also can start process to fix accounts in Salesforce if the Salesforce account data does not match account data in SAP.
Python
2
star
74

example-retry-work-item-bot

An example robot which can automatically retry failed work items with specified exception types.
RobotFramework
2
star
75

template-action

Template for implementing actions for Robocorp Action Server and AI Agents
Python
2
star
76

example-timescale-vector-loader

Creating a vector index from any data using Llamaindex and Timescale
Python
2
star
77

example-windows-desktop-app-robot

This software robot opens the Spotify desktop application, searches for the given song, and plays the song. The robot demonstrates the basic Windows-automation capabilities of the RPA Framework, using keyboard navigation.
RobotFramework
2
star
78

example-rag-document-loader-simple

How to create vector embeddings from PDF documents and run it repeatedly
Python
2
star
79

example-lab-basics

Over the course of this simple 6-part tutorial, using the power of Robot Framework, you'll create a working software robot that opens a web browser, searches for an image of our choosing and display the image to you.
RobotFramework
2
star
80

example-shared-robot-framework-keywords-and-libraries

RobotFramework
1
star
81

example-controlroom-artifacts

Python
1
star
82

example-get-data-from-tableau

HTML
1
star
83

example-atlassian-confluence

Read tables from Confluence pages
Python
1
star
84

example-supply-chain-challenge

This example robot completes the Supply Chain Challenge.
RobotFramework
1
star
85

example-yaml-secrets

RobotFramework
1
star
86

example-twitter-web-scraper

Opens the Twitter web page and stores some content.
RobotFramework
1
star
87

example-x-ray-image-processing

X-ray Image Viewer (NumPy, imageio, Matplotlib, SciPy)
Python
1
star
88

example-qrcode-java

Example Robot that uses java's boofcv library to detect and render QR codes
Java
1
star
89

example-responsive-website-layout-checker

Responsive website layout checker. Reports website layout in different viewport sizes.
RobotFramework
1
star
90

example-web-store-order-processor

Swag order processing robot.
RobotFramework
1
star
91

work-item-error-handling

RobotFramework
1
star
92

example-producer-consumer-reporting

RobotFramework
1
star
93

example-pdf-to-image

This robot converts PDF files to PNG images using Python.
Python
1
star
94

example-private-pypi

Recipe for accessing private PyPI packages with credentials in Robocorp Vault
Python
1
star
95

example-windows-element-path

Using the path locator strategy with the `windows` library to access elements using indexing.
Python
1
star
96

example-signature-match-assistant

Robocorp assistant that takes two files in and finds if they have matching signatures using Base64.ai
RobotFramework
1
star
97

example-copy-text-from-image

Assistant that uses OCR to copy text from on-screen image
Python
1
star
98

example-orders-distribution

RobotSpareBin 3-Step Process for distributing orders by robot part type.
RobotFramework
1
star
99

example-movie-review-sentiment-analyzer

A movie review sentiment analyzer robot. Tries to classify written free-text reviews either as positive or negative.
RobotFramework
1
star
100

example-google-image-search-firefox

Executes Google image search and stores the first result image, using Firefox browser taken loaded from conda-forge
RobotFramework
1
star