<!DOCTYPE html>
< html class = "writer-html5" lang = "en" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
< title > Welcome to pyOpenRPA’ s wiki — pyOpenRPA v1.2.0 documentation< / title >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "shortcut icon" href = "_static/favicon.ico" / >
<!-- [if lt IE 9]>
< script src = "_static/js/html5shiv.min.js" > < / script >
<![endif]-->
< script type = "text/javascript" id = "documentation_options" data-url_root = "./" src = "_static/documentation_options.js" > < / script >
< script src = "_static/jquery.js" > < / script >
< script src = "_static/underscore.js" > < / script >
< script src = "_static/doctools.js" > < / script >
< script type = "text/javascript" src = "_static/js/theme.js" > < / script >
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
< link rel = "next" title = "1. How to install" href = "01_HowToInstall.html" / >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
< a href = "#" class = "icon icon-home" > pyOpenRPA
< / a >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< p class = "caption" > < span class = "caption-text" > GENERAL< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "01_HowToInstall.html" > 1. How to install< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "02_RoadMap.html" > 2. Roadmap< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "03_Copyrights_Contacts.html" > 3. Copyrights & Contacts< / a > < / li >
< / ul >
< p class = "caption" > < span class = "caption-text" > ROBOT< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/01_Robot.html" > 1. Description< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/02_Defs.html" > 2. Defs< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/03_HowToUse.html" > 3. How to use< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/04_Dependencies.html" > 4. Dependencies< / a > < / li >
< / ul >
< p class = "caption" > < span class = "caption-text" > STUDIO< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Studio/01_Studio.html" > 1. Description< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Studio/02_HowToUse.html" > 2. How to use< / a > < / li >
< / ul >
< p class = "caption" > < span class = "caption-text" > ORCHESTRATOR< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html" > 1. Description< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/02_Defs.html" > 2. Defs< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/03_gSettingsTemplate.html" > 3. gSettings Template< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/04_HowToUse.html" > 4. How to use< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/05_UAC.html" > 5. UAC - User Access Control< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "#" > pyOpenRPA< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "#" class = "icon icon-home" > < / a > » < / li >
< li > Welcome to pyOpenRPA’ s wiki< / li >
< li class = "wy-breadcrumbs-aside" >
< a href = "_sources/index.rst.txt" rel = "nofollow" > View page source< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< div class = "section" id = "welcome-to-pyopenrpa-s-wiki" >
< h1 > Welcome to pyOpenRPA’ s wiki< a class = "headerlink" href = "#welcome-to-pyopenrpa-s-wiki" title = "Permalink to this headline" > ¶< / a > < / h1 >
< img alt = "ModalGuide.png" src = "_images/ModalGuide.png" / >
< p > < em > by Ivan Maslov (Russia)< / em > - see < a class = "reference internal" href = "03_Copyrights_Contacts.html#copyrights-contacts" > < span class = "std std-ref" > 3. Copyrights & Contacts< / span > < / a > .< / p >
< p > ! ATTENTION ! pyOpenRPA works only on MS Windows 7+/Server 2008+. Guys from Unix/Mac - sorry. We will come to you soon :)< / p >
< div class = "section" id = "donate" >
< h2 > Donate< a class = "headerlink" href = "#donate" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > pyOpenRPA is absolutely non-commercial project.< / p >
< p > Please donate some $ if pyOpenRPA project is actual for you. Link to online donations.
< a class = "reference external" href = "https://yoomoney.ru/to/4100115560661986" > https://yoomoney.ru/to/4100115560661986< / a > < / p >
< / div >
< div class = "section" id = "about" >
< h2 > About< a class = "headerlink" href = "#about" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Dear RPA-tors. Let me congratulate you with great change in the RPA world. Since 2019 the first enterprise level open source RPA platform is here!< / p >
< p > The pyOpenRPA - free, fast and reliable
Powerful OpenSource RPA tool for business (based on python 3). Best performance and absolutely free!< / p >
< p > The pyOpenRPA is based on Python and using well known OpenSource solutions such as Selenium, OpenCV, Win32, UI automation and others. Thanks to it we were able to create consolidated platform with all possible features.
The pyOpenRPA is distributed under the MIT license which allows you to use it in any way you want and any time you need without any restrictions.
At the time of this writing the pyOpenRPA is successfully using in several big Russian companies. Companies in which it was decided to develop own RPA division with no dependencies on expensive licenses.< / p >
< / div >
< div class = "section" id = "repo-structure" >
< h2 > Repo structure< a class = "headerlink" href = "#repo-structure" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > The description of the each folder in GitLab repo is going below:< / p >
< ul class = "simple" >
< li > < p > < strong > Agent< / strong > : template build for the pyOpenRPA.Agent component< / p > < / li >
< li > < p > < strong > Orchestrator< / strong > : template build for the pyOpenRPA.Orchestrator component< / p > < / li >
< li > < p > < strong > Resources< / strong > : 3rd party resources which is needed to provide pyOpenRPA encapsulation from the Operating System (OS) dependencies.< / p > < / li >
< li > < p > < strong > Robot< / strong > : template build for the robot< / p > < / li >
< li > < p > < strong > Sources< / strong > : pyOpenRPA python package sources + sphinx sources< / p > < / li >
< li > < p > < strong > Studio< / strong > : build for the pyOpenRPA.Studio which support Desktop UI (support x32 and x64 desktop UI apps)< / p > < / li >
< li > < p > < strong > Utils< / strong > : many additional good tools for the python developer< / p > < / li >
< li > < p > < strong > Wiki< / strong > : compiled wiki documentation< / p > < / li >
< / ul >
< / div >
< div class = "section" id = "the-pyopenrpa-structure" >
< h2 > The pyOpenRPA structure< a class = "headerlink" href = "#the-pyopenrpa-structure" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "section" id = "the-pyopenrpa-has-4-main-tools" >
< h3 > The pyOpenRPA has 4 main tools:< a class = "headerlink" href = "#the-pyopenrpa-has-4-main-tools" title = "Permalink to this headline" > ¶< / a > < / h3 >
< ul class = "simple" >
< li > < p > Studio< / p > < / li >
< li > < p > Robot< / p > < / li >
< li > < p > Orchestrator< / p > < / li >
< li > < p > Agent< / p > < / li >
< / ul >
< / div >
< div class = "section" id = "studio" >
< h3 > Studio< a class = "headerlink" href = "#studio" title = "Permalink to this headline" > ¶< / a > < / h3 >
< p > The pyOpenRPA.Studio tool has been developed to help RPA-tors to create the robot algorythms.< / p >
< p > < strong > Features< / strong > < / p >
< ul class = "simple" >
< li > < p > Run actions< / p > < / li >
< li > < p > Create visual algorythms of the robot< / p > < / li >
< li > < p > Desktop app: Analyze desktop app ui tree< / p > < / li >
< li > < p > Desktop app: Search desktop app ui by mouse< / p > < / li >
< li > < p > Desktop app: Generate & edit the UIO Selector< / p > < / li >
< / ul >
< / div >
< div class = "section" id = "robot" >
< h3 > Robot< a class = "headerlink" href = "#robot" title = "Permalink to this headline" > ¶< / a > < / h3 >
< p > The pyOpenRPA.Robot package is the core of any action execution in the pyOpenRPA. All action from algorythms are perfoming by the Robot tool. It looks like a console process without graphic user interface.< / p >
< p > < strong > Features< / strong > < / p >
< ul class = "simple" >
< li > < p > Based on Python (killer feature)< / p > < / li >
< li > < p > Support Win32 GUI framework (desktop app)< / p > < / li >
< li > < p > Support UI automation framework (desktop app)< / p > < / li >
< li > < p > Support Selenium (web app)< / p > < / li >
< li > < p > Support PyAutoGUI (screen capture & mouse)< / p > < / li >
< li > < p > Support OpenCV (computer vision)< / p > < / li >
< / ul >
< / div >
< div class = "section" id = "orchestrator" >
< h3 > Orchestrator< a class = "headerlink" href = "#orchestrator" title = "Permalink to this headline" > ¶< / a > < / h3 >
< p > The pyOpenRPA.Orchestrator package has been developed to maintain robot infrastructure (2+ robots algorythm).< / p >
< p > < strong > Features< / strong > < / p >
< ul class = "simple" >
< li > < p > Start/Stop robot algorithm< / p > < / li >
< li > < p > Robot scheduler< / p > < / li >
< li > < p > Remote machine screenshot viewer< / p > < / li >
< li > < p > Remote machine cmd shell< / p > < / li >
< li > < p > Remote machine logs storage< / p > < / li >
< / ul >
< / div >
< div class = "section" id = "agent" >
< h3 > Agent< a class = "headerlink" href = "#agent" title = "Permalink to this headline" > ¶< / a > < / h3 >
< p > The pyOpenRPA.Agent tool has been developed to maintain robot infrastructure (2+ robots algorythm).< / p >
< p > < strong > Features< / strong > < / p >
< ul class = "simple" >
< li > < p > Send CMD to the RPA GUI session (start/safe stop/force stop/logout)< / p > < / li >
< li > < p > Get screenshots from the RPA GUI session< / p > < / li >
< li > < p > Get the list of the running processes< / p > < / li >
< / ul >
< / div >
< / div >
< div class = "section" id = "wiki-structure" >
< h2 > Wiki structure< a class = "headerlink" href = "#wiki-structure" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > In wiki you can use the following docs:< / p >
< ul class = "simple" >
< li > < p > ENG Guide HTML < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/Wiki/ENG_Guide/html/index.html" > [|OPEN GITLAB|]< / a > < / p > < / li >
< li > < p > ENG Guide MarkDown < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/Wiki/ENG_Guide/markdown/index.md" > [|OPEN GITLAB|]< / a > < / p > < / li >
< li > < p > ENG Guide PDF < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/Wiki/ENG_Guide/pdf/pyOpenRPA_Guide_ENG.pdf" > [|OPEN GITLAB|]< / a > < / p > < / li >
< li > < p > RUS Article: Less cost - no paid RPA < a class = "reference external" href = "https://habr.com/ru/post/506766/" > [|OPEN HABR|]< / a > < / p > < / li >
< li > < p > RUS Tutorial Desktop UI < a class = "reference external" href = "https://habr.com/ru/post/509644/" > [|OPEN HABR|]< / a > ; < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/Wiki/RUS_Tutorial/DesktopGUI_Habr/index.md" > [|OPEN GITLAB|]< / a > < / p > < / li >
< li > < p > RUS Tutorial Web UI < a class = "reference external" href = "https://habr.com/ru/post/515310/" > [|OPEN HABR|]< / a > ; < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/Wiki/RUS_Tutorial/WebGUI_Habr/readme.md" > [|OPEN GITLAB|]< / a > < / p > < / li >
< li > < p > RUS Leaflet pyOpenRPA v4.pdf < a class = "reference external" href = "https://gitlab.com/UnicodeLabs/OpenRPA/-/tree/master/pyOpenRPA/Wiki/RUS_Leaflet/RUSLeafletpyOpenRPAv4.pdf" > [|OPEN GITLAB|]< / a > < / p > < / li >
< / ul >
< / div >
< div class = "section" id = "guide-content" >
< h2 > Guide content< a class = "headerlink" href = "#guide-content" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "toctree-wrapper compound" >
< p class = "caption" > < span class = "caption-text" > GENERAL< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "01_HowToInstall.html" > 1. How to install< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "01_HowToInstall.html#how-to-check-installation" > How to check installation< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "01_HowToInstall.html#system-requirements" > System requirements< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "02_RoadMap.html" > 2. Roadmap< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "03_Copyrights_Contacts.html" > 3. Copyrights & Contacts< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "03_Copyrights_Contacts.html#ivan-maslov-founder" > Ivan Maslov (founder)< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "03_Copyrights_Contacts.html#rd-party-components-license-dependencies" > 3-rd party components license dependencies< / a > < / li >
< / ul >
< / li >
< / ul >
< / div >
< div class = "toctree-wrapper compound" >
< p class = "caption" > < span class = "caption-text" > ROBOT< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/01_Robot.html" > 1. Description< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/02_Defs.html" > 2. Defs< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/02_Defs.html#references" > References< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/03_HowToUse.html" > 3. How to use< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/03_HowToUse.html#how-to-execute-rpa-script" > How to execute RPA script< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/03_HowToUse.html#desktop-app-ui-access-win32-and-ui-automation-dlls" > Desktop app UI access (win32 and UI automation dlls)< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/03_HowToUse.html#theory-practice-web-app-ui-access-selenium" > Theory & practice. WEB app UI access (selenium)< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/03_HowToUse.html#theory-practice-keyboard-mouse-manipulation" > Theory & practice. Keyboard & mouse manipulation< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Robot/03_HowToUse.html#theory-practice-screen-capture-image-recognition" > Theory & practice. Screen capture & image recognition< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Robot/04_Dependencies.html" > 4. Dependencies< / a > < / li >
< / ul >
< / div >
< div class = "toctree-wrapper compound" >
< p class = "caption" > < span class = "caption-text" > STUDIO< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Studio/01_Studio.html" > 1. Description< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Studio/02_HowToUse.html" > 2. How to use< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Studio/02_HowToUse.html#content" > Content< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Studio/02_HowToUse.html#how-to-run" > How to run< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Studio/02_HowToUse.html#ui-description" > UI Description< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Studio/02_HowToUse.html#how-to-extract-ui-tree" > How to extract UI tree< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Studio/02_HowToUse.html#how-to-extract-ui-object-properties" > How to extract UI object properties< / a > < / li >
< / ul >
< / li >
< / ul >
< / div >
< div class = "toctree-wrapper compound" >
< p class = "caption" > < span class = "caption-text" > ORCHESTRATOR< / span > < / p >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html" > 1. Description< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html#global-settings-dict-concept" > Global settings dict concept< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html#orchestrator-how-to-configure" > Orchestrator how to configure< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html#orchestrator-architecture" > Orchestrator architecture< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html#component-processor" > Component Processor< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/01_Orchestrator.html#references" > References< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/02_Defs.html" > 2. Defs< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#pyopenrpa-orchestrator-orchestrator" > pyOpenRPA.Orchestrator.__Orchestrator__< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-agent" > Group Agent…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-gsettings" > Group GSettings…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-os" > Group OS…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-process" > Group Process…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-processor" > Group Processor…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-python" > Group Python…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-rdpsession" > Group RDPSession…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-web" > Group Web…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-uac" > Group UAC…< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#group-scheduler" > Group Scheduler…< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/02_Defs.html#references" > References< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/03_gSettingsTemplate.html" > 3. gSettings Template< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/04_HowToUse.html" > 4. How to use< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "Orchestrator/05_UAC.html" > 5. UAC - User Access Control< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/05_UAC.html#about" > About< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Orchestrator/05_UAC.html#uac-dict-for-orchestrator-web-ui-rights" > UAC Dict for Orchestrator WEB UI rights< / a > < / li >
< / ul >
< / li >
< / ul >
< / div >
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
< a href = "01_HowToInstall.html" class = "btn btn-neutral float-right" title = "1. How to install" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" aria-hidden = "true" > < / span > < / a >
< / div >
< hr / >
< div role = "contentinfo" >
< p >
© Copyright 2021, Ivan Maslov.
< / p >
< / div >
Built with < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > using a
< a href = "https://github.com/readthedocs/sphinx_rtd_theme" > theme< / a >
provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< / body >
< / html >