Giter Club home page Giter Club logo

code08-ind / rpaframework-docs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robocorp/rpaframework

0.0 0.0 0.0 63.35 MB

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

Home Page: https://www.rpaframework.org/

License: Apache License 2.0

Python 91.96% Makefile 1.07% RobotFramework 6.11% Dockerfile 0.04% HTML 0.19% CSS 0.28% Shell 0.05% Java 0.29% Batchfile 0.01%

rpaframework-docs's Introduction

RPA Framework

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
rpaframework latest version rpaframework-aws latest version rpaframework-core latest version rpaframework-dialogs latest version rpaframework-google 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 themselves 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
Archive Archiving TAR and ZIP files x
Browser.Selenium Control browsers and automate the web x
Browser.Playwright Newer way to control browsers special (more below)
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
Desktop.Windows Automate Windows desktop applications x
Dialogs Request user input during executions x,dialogs
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
Notifier Notify messages using different services x
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
Salesforce Salesforce operations x
SAP Control SAP GUI desktop client 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

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.7.5
  - pip=20.1
  - nodejs=16.4.2
  - pip:
    - rpaframework==13.0.0
    - robotframework-browser==12.2.0
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.7.5
  - pip=20.1
  - pip:
    - rpaframework==13.0.0

To install all extra packages (including Playwright dependencies), you can use:

channels:
  - conda-forge
dependencies:
  - python=3.7.5
  - tesseract=4.1.1
  - pip=20.1
  - nodejs=16.14.2
  - pip:
    - rpaframework==13.0.0   # rpaframework[aws]==13.0.0
    - rpaframework-aws==1.0.0
    - rpaframework-google==3.0.0
    - rpaframework-recognition==2.0.0
    - robotframework-browser==12.2.0
rccPostInstall:
  - rfbrowser init

Separate installation of AWS, Dialogs, PDF and Windows libraries without main rpaframework:

channels:
  - conda-forge
dependencies:
  - python=3.7.5
  - pip=20.1
  - pip:
    - rpaframework-aws==1.0.0 # included in the rpaframework as an extra
    - rpaframework-dialogs==1.0.0  # included in the rpaframework by default
    - rpaframework-pdf==3.0.0  # included in the rpaframework by default
    - rpaframework-windows==3.0.0 # included in the rpaframework by default

Note

Python 3.6 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.7+ installed on the development machine. The default Python version used in the Robocorp Robot template is 3.7.5 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.9 are also not recommended, because some of the dependencies might cause issues.

Repository development tooling is based on basically 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.

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)
    • poetry update
    • make docs
    • open docs/build/html/index.html with the browser to view the changes
  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

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

rpaframework-docs's People

Contributors

antusystem avatar bogdancondurache avatar cmin764 avatar dependabot[bot] avatar janipalsamaki avatar jooooooooco avatar kensoh avatar kylie-bee avatar mchece avatar mdp avatar mikahanninen avatar mmokko avatar noordsestern avatar orlof avatar osrjv avatar timothylopas avatar tuomasnylund avatar xylix avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.