Browser.Playwright 属于特殊包,需按 README 另行安装;rpaframework-core 和 rpaframework-recognition 只是支撑包,单独安装不含任何库;部分库如 AWS、Google、Hubspot 需安装对应的独立包
rpaframework
robocorpApache-2.0活跃维护一套面向 RPA 的开源 Python 库和工具集,兼容 Robot Framework,集成 OCR、文档解析和 NLP 能力,用来搭建业务流程自动化脚本。
Collection of open-source libraries and tools for Robotic Process Automation (RPA), designed to be used with both Robot Framework and Python
面向 RPA 开发者的开源库集合,同时支持 Robot Framework 和 Python 编写软件机器人
一套面向 RPA 的开源 Python 库和工具集,兼容 Robot Framework,集成 OCR、文档解析和 NLP 能力,用来搭建业务流程自动化脚本。
核心能力
- 提供 Excel、PDF、浏览器、邮件等数十个 RPA 专用库
- 同时兼容 Robot Framework 关键字与纯 Python 调用
- 按功能拆分为多个 PyPI 包,可按需安装
- 针对 Robocorp Control Room 与开发者工具优化
- 包含 Selenium 与 Playwright 两种浏览器自动化方案
容易踩的坑
- rpaframework-sema4ai-2.1.0rpaframework-sema4ai 2.1.0最新正式版2026-11-02 · 2026-11-02 17:16 UTC
What's changed
rpaframework34.0.1:RPA.Twittercould not be imported on Python 3.13 and newerrpaframework: the source distribution (.tar.gz) on PyPI is complete again. Sincerpaframework-sema4ai2.1.0, final release, package deprecated: the library is
Packages released
rpaframework34.0.1rpaframework-sema4ai2.1.0
Links
- rpaframework-34.0.1rpaframework 34.0.12026-11-02 · 2026-11-02 17:14 UTC
查看更新说明
What's changed
rpaframework34.0.1:RPA.Twittercould not be imported on Python 3.13 and newerrpaframework: the source distribution (.tar.gz) on PyPI is complete again. Sincerpaframework-sema4ai2.1.0, final release, package deprecated: the library is
Packages released
rpaframework34.0.1rpaframework-sema4ai2.1.0
Links
- rpaframework-sema4ai-2.0.0rpaframework-sema4ai 2.0.02026-11-01 · 2026-11-01 15:14 UTC
查看更新说明
What's changed
- Breaking: All packages now require Python 3.11 or newer. Python 3.10 reached
RPA.Robocorp.Process:List Process Work Itemsnow retrieves all result- New package
rpaframework-decisionwith library RPA.Decision: typed, - Security: Bump
pillow≥13.0.0 (42 advisories, 5 of them CRITICAL: heap buffer - Security: Bump
certifi≥2026.10.18 (CRITICAL — bundled emSign root CAs whose - Security: Bump
pypdf≥6.21.4 (HIGH — infinite loops and unbounded memory use on - Security: Bump
fpdf2≥2.8.8 (MEDIUM — implicit loading of external URLs and local - Security: Bump
pyasn1≥0.6.5 (HIGH — quadratic-time denial of service in BER/CER/DER - Security: Bump
dnspython≥2.9.0 (HIGH — excessive CPU use in - Security: Bump
msgpack≥1.2.3 (HIGH — unbounded memory leak in the C extension on - Security: Bump
setuptools≥84.1.0 (LOW — Windows path escape via - Security: Bump
Werkzeug≥3.1.9 (MEDIUM —safe_join()allows Windows special RPA.Windows: Add keywordControl Parent Window, the counterpart ofrpaframework-pdf,rpaframework-windows,rpaframework-recognition,rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Packages released
rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Links
- rpaframework-windows-12.0.0rpaframework-windows 12.0.02026-11-01 · 2026-11-01 14:42 UTC
查看更新说明
What's changed
- Breaking: All packages now require Python 3.11 or newer. Python 3.10 reached
RPA.Robocorp.Process:List Process Work Itemsnow retrieves all result- New package
rpaframework-decisionwith library RPA.Decision: typed, - Security: Bump
pillow≥13.0.0 (42 advisories, 5 of them CRITICAL: heap buffer - Security: Bump
certifi≥2026.10.18 (CRITICAL — bundled emSign root CAs whose - Security: Bump
pypdf≥6.21.4 (HIGH — infinite loops and unbounded memory use on - Security: Bump
fpdf2≥2.8.8 (MEDIUM — implicit loading of external URLs and local - Security: Bump
pyasn1≥0.6.5 (HIGH — quadratic-time denial of service in BER/CER/DER - Security: Bump
dnspython≥2.9.0 (HIGH — excessive CPU use in - Security: Bump
msgpack≥1.2.3 (HIGH — unbounded memory leak in the C extension on - Security: Bump
setuptools≥84.1.0 (LOW — Windows path escape via - Security: Bump
Werkzeug≥3.1.9 (MEDIUM —safe_join()allows Windows special RPA.Windows: Add keywordControl Parent Window, the counterpart ofrpaframework-pdf,rpaframework-windows,rpaframework-recognition,rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Packages released
rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Links
- rpaframework-recognition-9.0.0rpaframework-recognition 9.0.02026-11-01 · 2026-11-01 14:41 UTC
查看更新说明
What's changed
- Breaking: All packages now require Python 3.11 or newer. Python 3.10 reached
RPA.Robocorp.Process:List Process Work Itemsnow retrieves all result- New package
rpaframework-decisionwith library RPA.Decision: typed, - Security: Bump
pillow≥13.0.0 (42 advisories, 5 of them CRITICAL: heap buffer - Security: Bump
certifi≥2026.10.18 (CRITICAL — bundled emSign root CAs whose - Security: Bump
pypdf≥6.21.4 (HIGH — infinite loops and unbounded memory use on - Security: Bump
fpdf2≥2.8.8 (MEDIUM — implicit loading of external URLs and local - Security: Bump
pyasn1≥0.6.5 (HIGH — quadratic-time denial of service in BER/CER/DER - Security: Bump
dnspython≥2.9.0 (HIGH — excessive CPU use in - Security: Bump
msgpack≥1.2.3 (HIGH — unbounded memory leak in the C extension on - Security: Bump
setuptools≥84.1.0 (LOW — Windows path escape via - Security: Bump
Werkzeug≥3.1.9 (MEDIUM —safe_join()allows Windows special RPA.Windows: Add keywordControl Parent Window, the counterpart ofrpaframework-pdf,rpaframework-windows,rpaframework-recognition,rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Packages released
rpaframework-core14.0.0rpaframework-pdf12.0.0rpaframework-recognition9.0.0rpaframework-windows12.0.0rpaframework-decision1.0.0rpaframework-assistant7.0.0rpaframework-aws9.0.0rpaframework-google13.0.0rpaframework-hubspot5.0.0rpaframework-openai6.0.0rpaframework-sema4ai2.0.0rpaframework34.0.0
Links
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
RPA Framework
.. contents:: Table of Contents :local: :depth: 1
.. include-docs-readme
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:
- 100% Open Source
- Sponsored by Robocorp_
- Optimized for Robocorp
Control Room_ andDeveloper Tools_ - Accepting external contributions
.. _Robot Framework: https://robotframework.org .. _Robot Framework Foundation: https://robotframework.org/foundation/ .. _Python: https://www.python.org/ .. _Robocorp: https://robocorp.com .. _Robocorp Documentation: https://robocorp.com/docs-robot-framework .. _Control Room: https://robocorp.com/docs/control-room .. _Developer Tools: https://robocorp.com/downloads .. _Installing Python Packages: https://robocorp.com/docs/setup/installing-python-package-dependencies
Links ^^^^^
- Homepage:
<https://www.github.com/robocorp/rpaframework/>_ - Documentation:
<https://rpaframework.org/>_ - PyPI:
<https://pypi.org/project/rpaframework/>_ - Release notes:
<https://rpaframework.org/releasenotes.html>_ - RSS feed:
<https://rpaframework.org/releases.xml>_
.. image:: https://img.shields.io/github/actions/workflow/status/robocorp/rpaframework/main.yaml?style=for-the-badge :target: https://github.com/robocorp/rpaframework/actions/workflows/main.yaml :alt: Status
.. image:: https://img.shields.io/pypi/dw/rpaframework?style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework :alt: rpaframework
.. image:: https://img.shields.io/pypi/l/rpaframework.svg?style=for-the-badge&color=brightgreen :target: http://www.apache.org/licenses/LICENSE-2.0.html :alt: License
Packages
.. image:: https://img.shields.io/pypi/v/rpaframework.svg?label=rpaframework&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework :alt: rpaframework latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-assistant.svg?label=rpaframework-assistant&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-assistant :alt: rpaframework-assistant latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-aws.svg?label=rpaframework-aws&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-aws :alt: rpaframework-aws latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-core.svg?label=rpaframework-core&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-core :alt: rpaframework-core latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-google.svg?label=rpaframework-google&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-google :alt: rpaframework-google latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-hubspot.svg?label=rpaframework-hubspot&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-hubspot :alt: rpaframework-hubspot latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-openai.svg?label=rpaframework-openai&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-openai :alt: rpaframework-openai latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-decision.svg?label=rpaframework-decision&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-decision :alt: rpaframework-decision latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-pdf.svg?label=rpaframework-pdf&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-pdf :alt: rpaframework-pdf latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-recognition.svg?label=rpaframework-recognition&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-recognition :alt: rpaframework-recognition latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-windows.svg?label=rpaframework-windows&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-windows :alt: 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,pdf means that RPA.PDF library is provided in both the rpaframework and rpaframework-pdf 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 |
+----------------------------+-------------------------------------------------------+------------------------+
| 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 | hubspot |
+----------------------------+-------------------------------------------------------+------------------------+
| Images_ | Manipulate images | x |
+----------------------------+-------------------------------------------------------+------------------------+
| JavaAccessBridge_ | Control Java applications | x |
+----------------------------+-------------------------------------------------------+------------------------+
| JSON_ | Manipulate JSON objects | x |
+----------------------------+-------------------------------------------------------+------------------------+
| MFA_ | Authenticate using one-time passwords (OTP) & OAuth2 | x |
+----------------------------+-------------------------------------------------------+------------------------+
| MSGraph_ | Access Microsoft 365 via the Microsoft Graph API | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Notifier_ | Notify messages using different services | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Decision_ | Decision model (Jev, Laya) for typed decisions | decision |
| 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 |
+----------------------------+-------------------------------------------------------+------------------------+
| Slack_ | Send messages and interact with Slack workspaces | 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 |
+----------------------------+-------------------------------------------------------+------------------------+
.. _Archive: https://rpaframework.org/libraries/archive/ .. _Assistant: https://rpaframework.org/libraries/assistant/ .. _Browser.Playwright: https://rpaframework.org/libraries/browser_playwright/ .. _Browser.Selenium: https://rpaframework.org/libraries/browser_selenium/ .. _Calendar: https://rpaframework.org/libraries/calendar/ .. _Cloud.AWS: https://rpaframework.org/libraries/cloud_aws/ .. _Cloud.Azure: https://rpaframework.org/libraries/cloud_azure/ .. _Cloud.Google: https://rpaframework.org/libraries/cloud_google/ .. _Crypto: https://rpaframework.org/libraries/crypto/ .. _Database: https://rpaframework.org/libraries/database/ .. _Desktop: https://rpaframework.org/libraries/desktop/ .. _Desktop.Clipboard: https://rpaframework.org/libraries/desktop_clipboard/ .. _Desktop.OperatingSystem: https://rpaframework.org/libraries/desktop_operatingsystem/ .. _DocumentAI: https://rpaframework.org/libraries/documentai .. _DocumentAI.Base64AI: https://rpaframework.org/libraries/documentai_base64ai/ .. _DocumentAI.Nanonets: https://rpaframework.org/libraries/documentai_nanonets/ .. _Email.Exchange: https://rpaframework.org/libraries/email_exchange/ .. _Email.ImapSmtp: https://rpaframework.org/libraries/email_imapsmtp/ .. _Excel.Application: https://rpaframework.org/libraries/excel_application/ .. _Excel.Files: https://rpaframework.org/libraries/excel_files/ .. _FileSystem: https://rpaframework.org/libraries/filesystem/ .. _FTP: https://rpaframework.org/libraries/ftp/ .. _HTTP: https://rpaframework.org/libraries/http/ .. _Hubspot: https://rpaframework.org/libraries/hubspot/ .. _Images: https://rpaframework.org/libraries/images/ .. _JavaAccessBridge: https://rpaframework.org/libraries/javaaccessbridge/ .. _JSON: https://rpaframework.org/libraries/json/ .. _MFA: https://rpaframework.org/libraries/mfa/ .. _MSGraph: https://rpaframework.org/libraries/msgraph/ .. _Notifier: https://rpaframework.org/libraries/notifier/ .. _Decision: https://rpaframework.org/libraries/decision/ .. _OpenAI: https://rpaframework.org/libraries/openai/ .. _Outlook.Application: https://rpaframework.org/libraries/outlook_application/ .. _PDF: https://rpaframework.org/libraries/pdf/ .. _Robocorp.Process: https://rpaframework.org/libraries/robocorp_process/ .. _Robocorp.WorkItems: https://rpaframework.org/libraries/robocorp_workitems/ .. _Robocorp.Vault: https://rpaframework.org/libraries/robocorp_vault/ .. _Robocorp.Storage: https://rpaframework.org/libraries/robocorp_storage/ .. _Salesforce: https://rpaframework.org/libraries/salesforce/ .. _SAP: https://rpaframework.org/libraries/sap/ .. _Slack: https://rpaframework.org/libraries/slack/ .. _Smartsheet: https://rpaframework.org/libraries/smartsheet/ .. _Tables: https://rpaframework.org/libraries/tables/ .. _Tasks: https://rpaframework.org/libraries/tasks/ .. _Twitter: https://rpaframework.org/libraries/twitter/ .. _Windows: https://rpaframework.org/libraries/windows/ .. _Word.Application: https://rpaframework.org/libraries/word_application/
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:
.. code-block:: yaml
channels:
- conda-forge
dependencies:
- python=3.11.13
- nodejs=22.9.0
- pip=24.0
- pip:
- robotframework-browser==18.8.1
- rpaframework==31.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:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.11.13 - pip=24.0 - pip: - rpaframework==31.1.2
To install all extra packages (including Playwright dependencies), you can use:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.11.13 - tesseract=5.4.1 - nodejs=22.9.0 - pip=24.0 - pip: - robotframework-browser==18.8.1 - rpaframework==31.1.2 - rpaframework-aws==5.3.3 - rpaframework-google==9.0.2 - rpaframework-recognition==5.2.5 rccPostInstall: - rfbrowser init
Separate installation of AWS, PDF and Windows libraries without the main
rpaframework:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.11.13 - pip=24.0 - pip: - rpaframework-aws==5.3.3 # included in the rpaframework as an extra - rpaframework-pdf==7.3.3 # included in the rpaframework by default - rpaframework-windows==7.5.2 # included in the rpaframework by default
Installation method with pip using Python venv_:
.. code-block:: shell
python -m venv .venv source .venv/bin/activate pip install rpaframework
.. note:: Python 3.9.2 or higher is required (tested up to 3.13)
Example
After installation the libraries can be directly imported inside
Robot Framework_:
.. code:: robotframework
*** 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_:
.. code:: 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)
Here is another example showing how to read an Excel file and filter rows
using RPA.Excel.Files_ and RPA.Tables_ together:
.. code:: robotframework
*** Settings ***
Library RPA.Excel.Files
Library RPA.Tables
*** Tasks ***
Filter active employees
Open workbook employees.xlsx
${table}= Read worksheet as table header=True
Close workbook
${active}= Filter table by column ${table} Status == Active
Log Found ${active.size} active employees
And the same example in Python_:
.. code:: python
from RPA.Excel.Files import Files
from RPA.Tables import Tables
excel = Files()
tables = Tables()
excel.open_workbook("employees.xlsx")
table = excel.read_worksheet_as_table(header=True)
excel.close_workbook()
active = tables.filter_table_by_column(table, "Status", "==", "Active")
print(f"Found {active.size} active employees")
Support and contact
rpaframework.org <https://rpaframework.org/>_ for library documentationRobocorp Documentation_ for guides and tutorials- #rpaframework channel in
Robot Framework Slack_ if you have open questions or want to contribute - Communicate with your fellow Software Robot Developers and Robocorp experts
at
Robocorp Developers Slack_
.. _Robot Framework Slack: https://robotframework-slack-invite.herokuapp.com/ .. _Robocorp Developers Slack: https://robocorp-developers.slack.com
Contributing
Found a bug? Missing a critical feature? Interested in contributing?
Head over to the Contribution guide <https://rpaframework.org/contributing/guide.html>_
to see where to get started.
Development
Repository development is Python_ based and requires Python 3.11 or higher
(tested up to 3.14) installed on the development machine. Python 3.10 and older are
not supported since the November 2026 releases (3.10 reached end of life in October 2026).
Repository development tooling is based on uv_ and invoke_. uv is used for
dependency management, 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_.
.. _Dev Guide: https://github.com/robocorp/rpaframework/blob/master/docs/source/contributing/development.md
First steps to start developing:
-
Install
uv_ (seeuv installation docs <https://docs.astral.sh/uv/getting-started/installation/>_) -
git clone the repository
#. create a new Git branch or switch to correct branch or stay in master branch
- branch naming conventions: feature/name-of-feature, hotfix/name-of-the-issue, release/number-of-release
#. uv sync — installs the package and its dependencies into the .venv directory
#. if testing against Robocorp Robot which is using devdata/env.json:
- set environment variables
- or
uv buildand use the resulting .whl file (in the dist/ directory) in the Robot conda.yaml - or push the .whl to a repository and reference the raw URL in conda.yaml
#. uv run python -m robot <ROBOT_ARGS> <TARGET_ROBOT_FILE>
- common ROBOT_ARGS from Robocorp Robot template:
--report NONE --outputdir output --logtitle "Task log"
#. uv run python <TARGET_PYTHON_FILE>
#. invoke lint to make sure that code formatting follows rpaframework repository guidelines.
Formatting is based on black_ and flake8_ and those are run with invoke lint.
#. Library documentation can be generated from the repository root (the "meta" package level).
Local changes to the main package are reflected automatically. For optional packages, use
invoke install-local --package <package_name> (e.g. rpaframework-aws) to install them
as editable versions. Reset with invoke install --reset.
uv syncand/orinvoke install-local --package <package name>make docs- open
docs/build/html/index.htmlin a browser, or runmake localand navigate tolocalhost:8000for a live preview.
.. code-block:: toml
# Before
[tool.uv.sources]
rpaframework = { path = "packages/main", extras = ["cv", "playwright", "aws"] }
rpaframework-google = { version = "^4.0.0" }
rpaframework-windows = { version = "^4.0.0" }
# After
[tool.uv.sources]
rpaframework = { path = "packages/main", extras = ["cv", "playwright"] }
rpaframework-aws = { path = "packages/aws" }
rpaframework-google = { version = "^4.0.0" }
rpaframework-windows = { version = "^4.0.0" }
#. invoke test (runs both Python unittests and Robot Framework tests in the package tests/ directory)
- to run a specific Python test:
uv run pytest path/to/test.py::test_function - to run a specific Robot Framework test:
inv testrobot -r <robot_name> -t <task_name>
#. git commit changes #. git push changes to remote #. create a pull request from the branch describing the changes in the description #. 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.
#. in a pull request: update pyproject.toml with the new version according to semantic
versioning, run uv lock in the package (and at the repository root when the root lock
file is affected), and move the changes in docs/source/releasenotes.rst from
Upcoming release into a dated block under Released that ends with the list of released
versions, one bullet per package in the form rpaframework-core 14.0.0
#. merge the pull request once the GitHub Actions on it are green
#. git checkout master && git pull, then in the package directory run
python ../../tools/tag.py. It creates and pushes the tag <package>-<version>
#. the release workflow builds the package from the tagged commit, publishes it to PyPI
(trusted publishing from the pypi environment) and creates the GitHub release from the
dated release-notes block that contains the version
#. when a package depends on another package of this repository with a raised version floor,
release the dependency first: the dependent can only be relocked once the dependency is on PyPI
Some recommended tools for development
-
Visual Studio Code_ as a code editor with following extensions:Sema4.ai_Robot Framework Language Server_GitLens_Python extension_
-
GitHub Desktop_ will make version management less prone to errors
.. _uv: https://docs.astral.sh/uv/ .. _invoke: https://www.pyinvoke.org .. _Visual Studio Code: https://code.visualstudio.com .. _GitHub Desktop: https://desktop.github.com .. _Sema4.ai: https://marketplace.visualstudio.com/items?itemName=sema4ai.sema4ai .. _Robot Framework Language Server: https://marketplace.visualstudio.com/items?itemName=robocorp.robotframework-lsp .. _GitLens: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens .. _Python extension: https://marketplace.visualstudio.com/items?itemName=ms-python.python .. _black: https://pypi.org/project/black/ .. _flake8: https://pypi.org/project/flake8/ .. _venv: https://docs.python.org/3/library/venv.html .. _RPA.Excel.Files: https://rpaframework.org/libraries/excel_files/ .. _RPA.Tables: https://rpaframework.org/libraries/tables/
License
This project is open-source and licensed under the terms of the
Apache License 2.0 <http://apache.org/licenses/LICENSE-2.0>_.