From ad02910cde865af4d7040c424b5bde3deb1bb2be Mon Sep 17 00:00:00 2001 From: cmin764 Date: Wed, 1 Nov 2023 16:14:40 +0000 Subject: [PATCH] deploy: d3b25fa36dac07cec4a550976ec753070216c4a8 --- .doctrees/environment.pickle | Bin 1081180 -> 1081582 bytes .doctrees/libraries/http/python.doctree | Bin 309637 -> 309637 bytes .doctrees/releasenotes.doctree | Bin 944431 -> 944709 bytes _sources/releasenotes.rst.txt | 11 +- latest.json | 148 ++++++++++++------------ libdoc/RPA_Archive.html | 2 +- libdoc/RPA_Assistant.html | 2 +- libdoc/RPA_Browser.html | 2 +- libdoc/RPA_Browser_Playwright.html | 2 +- libdoc/RPA_Browser_Selenium.html | 2 +- libdoc/RPA_Browser_common.html | 2 +- libdoc/RPA_Calendar.html | 2 +- libdoc/RPA_Cloud_AWS.html | 2 +- libdoc/RPA_Cloud_Azure.html | 2 +- libdoc/RPA_Cloud_Google.html | 2 +- libdoc/RPA_Crypto.html | 2 +- libdoc/RPA_Database.html | 2 +- libdoc/RPA_Desktop.html | 2 +- libdoc/RPA_Desktop_Clipboard.html | 2 +- libdoc/RPA_Desktop_OperatingSystem.html | 2 +- libdoc/RPA_Desktop_Windows.html | 2 +- libdoc/RPA_Dialogs.html | 2 +- libdoc/RPA_DocumentAI.html | 2 +- libdoc/RPA_DocumentAI_Base64AI.html | 2 +- libdoc/RPA_DocumentAI_DocumentAI.html | 2 +- libdoc/RPA_DocumentAI_Nanonets.html | 2 +- libdoc/RPA_Email_Exchange.html | 2 +- libdoc/RPA_Email_ImapSmtp.html | 2 +- libdoc/RPA_Excel_Application.html | 2 +- libdoc/RPA_Excel_Files.html | 2 +- libdoc/RPA_FTP.html | 2 +- libdoc/RPA_FileSystem.html | 2 +- libdoc/RPA_HTTP.html | 2 +- libdoc/RPA_Hubspot.html | 2 +- libdoc/RPA_Images.html | 2 +- libdoc/RPA_JSON.html | 2 +- libdoc/RPA_JavaAccessBridge.html | 2 +- libdoc/RPA_MFA.html | 2 +- libdoc/RPA_MSGraph.html | 2 +- libdoc/RPA_Netsuite.html | 2 +- libdoc/RPA_Notifier.html | 2 +- libdoc/RPA_OpenAI.html | 2 +- libdoc/RPA_Outlook_Application.html | 2 +- libdoc/RPA_PDF.html | 2 +- libdoc/RPA_Robocloud_Items.html | 2 +- libdoc/RPA_Robocloud_Secrets.html | 2 +- libdoc/RPA_Robocorp_Process.html | 2 +- libdoc/RPA_Robocorp_Storage.html | 2 +- libdoc/RPA_Robocorp_Vault.html | 2 +- libdoc/RPA_Robocorp_WorkItems.html | 2 +- libdoc/RPA_RobotLogListener.html | 2 +- libdoc/RPA_SAP.html | 2 +- libdoc/RPA_Salesforce.html | 2 +- libdoc/RPA_Slack.html | 2 +- libdoc/RPA_Smartsheet.html | 2 +- libdoc/RPA_Tables.html | 2 +- libdoc/RPA_Tasks.html | 2 +- libdoc/RPA_Twitter.html | 2 +- libdoc/RPA_Windows.html | 2 +- libdoc/RPA_Word_Application.html | 2 +- libdoc/RPA_version.html | 2 +- libraries/http/python.html | 12 +- python.json | 2 +- releasenotes.html | 7 +- searchindex.js | 2 +- 65 files changed, 150 insertions(+), 144 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index c3a1216c51f093319d17a94c57236d53e71c6063..ceb045445f21c1943cdd2c95ad343a6dd6bb7e9e 100644 GIT binary patch delta 87683 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
5F6tw9XZq%h7Y1?JBx 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

aR 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 delta 88122 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 UC%yEPCaf|;)3(!=Ri^g;0Wep4{{R30 diff --git a/.doctrees/libraries/http/python.doctree b/.doctrees/libraries/http/python.doctree index d42b65deb4e742e0a0302c5fbb7fdcf5efafc674..a0f75d1b44004693d894a3ba3b1313a36728b394 100644 GIT binary patch delta 1153 zcmZquEY$j0Xv0AXt&ku`XIFI{1$F;`5Kn)hU0ul%a4N;Gs9ILFe zSzMBvQIVjY$%YdpHb+Y>l_IQkv!baM6JceO=N${)yx;tzAQ4J0dVV89)eA2fB2lr@iDQU$_QjUMr1rqUy@8+Pqpt(VFY3(AZFgaJB8&`2mq5XKEwb3 delta 1153 zcmZquEY$j0Xv0AXE&qTJPk+B)bsYtDch?XQ<>Kn&8sZ9Kg#Ix7=4h#Jidf_EQges6n zY`s4i5TR7jRC;q}&1YhQ2jrOxb#DZSF!iEm=wzb_3yDxkl!rDOPLwq!!Z46$x{eUz zna%T#*%KElp_7AeP|YLYB$jp4g2WM{OOmPUsrKC|j6lo;#LU}wr?8v~0RW^%KEwb3 diff --git a/.doctrees/releasenotes.doctree b/.doctrees/releasenotes.doctree index 12983dfe2776baf9a83fc454f46ac266c7ffe22a..d21089ca2ba0d0e337900937afcaf3b545fe7c7c 100644 GIT binary patch literal 944709 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

!*+Zf#e;eZJX{v-D1?byJYbcW*y-`A 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%0AB`p|}b4I_R}X$wp(5{)P~+vHI5<524xE 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�*+YY+4821 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 RHqP|%x$LBwe)m;_-5I?u$;to# diff --git a/_sources/releasenotes.rst.txt b/_sources/releasenotes.rst.txt index d60b4668dd..6c5697d111 100644 --- a/_sources/releasenotes.rst.txt +++ b/_sources/releasenotes.rst.txt @@ -12,15 +12,18 @@ Latest versions `Upcoming release `_ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +`Released `_ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +27.5.1 - 01 Nov 2023 +-------------------- + - Library **RPA.Browser.Selenium** (:pr:`1123`; ``rpaframework-core`` **11.2.3**): Fix "There is no such driver by url" error with Chrome/Chromium versions above **114** attempting a `chromedriver` version resolution. - Library **RPA.Robocorp.WorkItems**: Fix dirty items logging and documentation nits. - -`Released `_ -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 27.5.0 - 24 Oct 2023 -------------------- diff --git a/latest.json b/latest.json index deffb23581..9767d72e93 100644 --- a/latest.json +++ b/latest.json @@ -4,7 +4,7 @@ "name": "RPA.Archive", "doc": "

\n", "version": "", - "generated": "2023-11-01 15:54:03", + "generated": "2023-11-01 16:12:52", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -462,7 +462,7 @@ "name": "RPA.Assistant", "doc": "
\n

The Assistant library provides a way to display information to a user\nand request input while a robot is running. It allows building processes\nthat require human interaction. Also it offers capabilities of running\nother robots inside the current one and determine what to display to the\nuser based on his previous responses.

\n

It is not included in the rpaframework package, so in order to use it\nyou have to add rpaframework-assistant with the desired version in your\nconda.yaml file

\n

Some examples of use-cases could be the following:

\n
    \n
  • Displaying generated files after an execution is finished
  • \n
  • Displaying dynamic and user-friendly error messages
  • \n
  • Requesting passwords or other personal information
  • \n
  • Running Keywords based on user's actions
  • \n
  • Displaying dynamic content based on user's actions
  • \n
  • Automating based on files created by the user
  • \n
\n

Workflow

\n

The library is used to create dialogs, i.e. windows, that can be composed\non-the-fly based on the current state of the execution.

\n

The content of the dialog is defined by calling relevant keywords\nsuch as Add text or Add file input. When the dialog is opened\nthe content is generated based on the previous keywords.

\n

Depending on the way the dialog is started, the execution will either\nblock or continue while the dialog is open. During this time the user\ncan freely edit any possible input fields or handle other tasks.

\n

After the user has successfully submitted the dialog, any possible\nentered input will be returned as a result. The user also has the option\nto abort by closing the dialog window forcefully.

\n

Results

\n

Each input field has a required name argument that controls what\nthe value will be called in the result object. Each input name should be\nunique, and must not be called submit as that is reserved for the submit\nbutton value.

\n

A result object is a Robot Framework DotDict, where each key\nis the name of the input field and the value is what the user entered.\nThe data type of each field depends on the input. For instance,\na text input will have a string, a checkbox will have a boolean, and\na file input will have a list of paths.

\n

If the user closed the window before submitting or there was an internal\nerror, the results object returned by Run Dialog or Ask User won't have a "submit"\nkey.

\n

Layouting

\n

By default elements are added to the assistant dialog from top to bottom, with a bit\nof margin around each element to add spaciousness. This margin is added as a\nContainer you can manually use Open Container to override the default\ncontainer. You can use it to set smaller margins.

\n

You can combine layouting elements with each other. Layouting elements need to be\nclosed with the corresponding Close keyword. (So Open Row and then\nClose Row.)

\n

Open Row can be used to layout elements in the same row.

\n

Open Column can be used to layout elements in columns.

\n

Open Stack and multiple Open Container's inside it can be used to set\npositions like Center, Topleft, BottomRight, or coordinate tuples likes (0, 0),\n(100, 100) and such.

\n

Open Container can bse used for absolute positioning inside a Stack, or anywhere\nfor setting background color or margins and paddings.

\n

Open Navbar can be used to make a navigation bar that will stay at the top of\nthe dialog. Its contents won't be cleared when.

\n

Examples

\n
\n*** Keywords ***\nSuccess dialog\n    Add icon      Success\n    Add heading   Your orders have been processed\n    Add files     *.txt\n    Run dialog    title=Success\n\nFailure dialog\n    Add icon      Failure\n    Add heading   There was an error\n    Add text      The assistant failed to login to the Enterprise portal\n    Add link      https://robocorp.com/docs    label=Troubleshooting guide\n    Run dialog    title=Failure\n\nLarge dialog\n    Add heading    A real chonker   size=large\n    Add image      fat-cat.jpeg\n    Run dialog     title=Large    height=1024    width=1024\n\nConfirmation dialog\n    Add icon      Warning\n    Add heading   Delete user ${username}?\n    Add submit buttons    buttons=No,Yes    default=Yes\n    ${result}=    Run dialog\n    IF   $result.submit == "Yes"\n        Delete user    ${username}\n    END\n\nInput form dialog\n    Add heading       Send feedback\n    Add text input    email    label=E-mail address\n    Add text input    message\n    ...    label=Feedback\n    ...    placeholder=Enter feedback here\n    ...    maximum_rows=5\n    ${result}=    Run dialog\n    Send feedback message    ${result.email}  ${result.message}\n
\n
\ndef success_dialog():\n    assistant = Assistant()\n    assistant.add_icon("success")\n    assistant.add_heading("Your orders have been processed")\n    assistant.add_files("*.txt")\n    assistant.run_dialog(title="Success")\n\ndef failure_dialog():\n    assistant = Assistant()\n    assistant.add_icon("failure")\n    assistant.add_heading("There was an error")\n    assistant.add_text("The assistant failed to login to the Enterprise portal")\n    assistant.add_link("https://robocorp.com/docs", label="Troubleshooting guide")\n    assistant.add_files("*.txt")\n    assistant.run_dialog(title="Failure")\n\ndef large_dialog():\n    assistant = Assistant()\n    assistant.add_heading("A real chonker", size="large")\n    assistant.add_image("fat-cat.jpeg")\n    assistant.run_dialog(title="Large", height=1024, width=1024)\n\ndef confirmation_dialog():\n    assistant = Assistant()\n    assistant.add_icon("warning")\n    assistant.add_heading("Delete user ${username}?")\n    assistant.add_submit_buttons(buttons="No, Yes", default="Yes")\n    result = assistant.run_dialog()\n    if result.submit == "Yes":\n        delete_user(username)\n\ndef input_from_dialog():\n    assistant = Assistant()\n    assistant.add_heading("Send feedback")\n    assistant.add_text_input("email", label="E-mail address")\n    assistant.add_text_input("message", label="Feedback", placeholder="Enter feedback here", maximum_rows=5)\n    assistant.add_submit_buttons("Submit", default="Submit")\n    result = assistant.run_dialog()\n    send_feedback_message(result.email, result.message)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:03", + "generated": "2023-11-01 16:12:53", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -2671,7 +2671,7 @@ "name": "RPA.Browser", "doc": "

SeleniumLibrary is a web testing library for Robot Framework.

\n

This document explains how to use keywords provided by SeleniumLibrary. For information about installation, support, and more, please visit the project pages. For more information about Robot Framework, see http://robotframework.org.

\n

SeleniumLibrary uses the Selenium WebDriver modules internally to control a web browser. See http://seleniumhq.org for more information about Selenium in general and SeleniumLibrary README.rst Browser drivers chapter for more details about WebDriver binary installation.

\n\n

Locating elements

\n

All keywords in SeleniumLibrary that need to interact with an element on a web page take an argument typically named locator that specifies how to find the element. Most often the locator is given as a string using the locator syntax described below, but using WebElements is possible too.

\n

Locator syntax

\n

SeleniumLibrary supports finding elements based on different strategies such as the element id, XPath expressions, or CSS selectors. The strategy can either be explicitly specified with a prefix or the strategy can be implicit.

\n

Default locator strategy

\n

By default, locators are considered to use the keyword specific default locator strategy. All keywords support finding elements based on id and name attributes, but some keywords support additional attributes or other values that make sense in their context. For example, Click Link supports the href attribute and the link text and addition to the normal id and name.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementexample# Match based on id or name.
Click Linkexample# Match also based on link text and href.
Click Buttonexample# Match based on id, name or value.
\n

If a locator accidentally starts with a prefix recognized as explicit locator strategy or implicit XPath strategy, it is possible to use the explicit default prefix to enable the default strategy.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementname:foo# Find element with name foo.
Click Elementdefault:name:foo# Use default strategy with value name:foo.
Click Element//foo# Find element using XPath //foo.
Click Elementdefault: //foo# Use default strategy with value //foo.
\n

Explicit locator strategy

\n

The explicit locator strategy is specified with a prefix using either syntax strategy:value or strategy=value. The former syntax is preferred because the latter is identical to Robot Framework's named argument syntax and that can cause problems. Spaces around the separator are ignored, so id:foo, id: foo and id : foo are all equivalent.

\n

Locator strategies that are supported by default are listed in the table below. In addition to them, it is possible to register custom locators.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
StrategyMatch based onExample
idElement id.id:example
namename attribute.name:example
identifierEither id or name.identifier:example
classElement class.class:example
tagTag name.tag:div
xpathXPath expression.xpath://div[@id=\"example\"]
cssCSS selector.css:div#example
domDOM expression.dom:document.images[5]
linkExact text a link has.link:The example
partial linkPartial link text.partial link:he ex
sizzleSizzle selector deprecated.sizzle:div.example
dataElement data-* attributedata:id:my_id
jqueryjQuery expression.jquery:div.example
defaultKeyword specific default behavior.default:example
\n

See the Default locator strategy section below for more information about how the default strategy works. Using the explicit default prefix is only necessary if the locator value itself accidentally matches some of the explicit strategies.

\n

Different locator strategies have different pros and cons. Using ids, either explicitly like id:foo or by using the default locator strategy simply like foo, is recommended when possible, because the syntax is simple and locating elements by id is fast for browsers. If an element does not have an id or the id is not stable, other solutions need to be used. If an element has a unique tag name or class, using tag, class or css strategy like tag:h1, class:example or css:h1.example is often an easy solution. In more complex cases using XPath expressions is typically the best approach. They are very powerful but a downside is that they can also get complex.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementid:foo# Element with id 'foo'.
Click Elementcss:div#foo h1# h1 element under div with id 'foo'.
Click Elementxpath: //div[@id=\"foo\"]//h1# Same as the above using XPath, not CSS.
Click Elementxpath: //*[contains(text(), \"example\")]# Element containing text 'example'.
\n

NOTE:

\n
    \n
  • The strategy:value syntax is only supported by SeleniumLibrary 3.0 and newer.
  • \n
  • Using the sizzle strategy or its alias jquery requires that the system under test contains the jQuery library.
  • \n
  • Prior to SeleniumLibrary 3.0, table related keywords only supported xpath, css and sizzle/jquery strategies.
  • \n
  • data strategy is conveniance locator that will construct xpath from the parameters. If you have element like <div data-automation=\"automation-id-2\">, you locate the element via data:automation:automation-id-2. This feature was added in SeleniumLibrary 5.2.0
  • \n
\n

Implicit XPath strategy

\n

If the locator starts with // or multiple opening parenthesis in front of the //, the locator is considered to be an XPath expression. In other words, using //div is equivalent to using explicit xpath://div and ((//div)) is equivalent to using explicit xpath:((//div))

\n

Examples:

\n\n\n\n\n\n\n\n\n\n
Click Element//div[@id=\"foo\"]//h1
Click Element(//div)[2]
\n

The support for the (// prefix is new in SeleniumLibrary 3.0. Supporting multiple opening parenthesis is new in SeleniumLibrary 5.0.

\n

Chaining locators

\n

It is possible chain multiple locators together as single locator. Each chained locator must start with locator strategy. Chained locators must be separated with single space, two greater than characters and followed with space. It is also possible mix different locator strategies, example css or xpath. Also a list can also be used to specify multiple locators. This is useful, is some part of locator would match as the locator separator but it should not. Or if there is need to existing WebElement as locator.

\n

Although all locators support chaining, some locator strategies do not abey the chaining. This is because some locator strategies use JavaScript to find elements and JavaScript is executed for the whole browser context and not for the element found be the previous locator. Chaining is supported by locator strategies which are based on Selenium API, like xpath or css, but example chaining is not supported by sizzle or `jquery

\n

Examples:

\n\n\n\n\n\n\n
Click Elementcss:.bar >> xpath://a# To find a link which is present after an element with class \"bar\"
\n

List examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
${locator_list} =Create Listcss:div#div_idxpath://*[text(), \" >> \"]
Page Should Contain Element${locator_list}
${element} =Get WebElementxpath://*[text(), \" >> \"]
${locator_list} =Create Listcss:div#div_id${element}
Page Should Contain Element${locator_list}
\n

Chaining locators in new in SeleniumLibrary 5.0

\n

Using WebElements

\n

In addition to specifying a locator as a string, it is possible to use Selenium's WebElement objects. This requires first getting a WebElement, for example, by using the Get WebElement keyword.

\n\n\n\n\n\n\n\n\n\n\n\n
${elem} =Get WebElementid:example
Click Element${elem}
\n

Custom locators

\n

If more complex lookups are required than what is provided through the default locators, custom lookup strategies can be created. Using custom locators is a two part process. First, create a keyword that returns a WebElement that should be acted on:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Custom Locator Strategy[Arguments]${browser}${locator}${tag}${constraints}
${element}=Execute Javascriptreturn window.document.getElementById('${locator}');
[Return]${element}
\n

This keyword is a reimplementation of the basic functionality of the id locator where ${browser} is a reference to a WebDriver instance and ${locator} is the name of the locator strategy. To use this locator, it must first be registered by using the Add Location Strategy keyword:

\n\n\n\n\n\n\n
Add Location StrategycustomCustom Locator Strategy
\n

The first argument of Add Location Strategy specifies the name of the strategy and it must be unique. After registering the strategy, the usage is the same as with other locators:

\n\n\n\n\n\n
Click Elementcustom:example
\n

See the Add Location Strategy keyword for more details.

\n

Browser and Window

\n

There is different conceptual meaning when SeleniumLibrary talks about windows or browsers. This chapter explains those differences.

\n

Browser

\n

When Open Browser or Create WebDriver keyword is called, it will create a new Selenium WebDriver instance by using the Selenium WebDriver API. In SeleniumLibrary terms, a new browser is created. It is possible to start multiple independent browsers (Selenium Webdriver instances) at the same time, by calling Open Browser or Create WebDriver multiple times. These browsers are usually independent of each other and do not share data like cookies, sessions or profiles. Typically when the browser starts, it creates a single window which is shown to the user.

\n

Window

\n

Windows are the part of a browser that loads the web site and presents it to the user. All content of the site is the content of the window. Windows are children of a browser. In SeleniumLibrary browser is a synonym for WebDriver instance. One browser may have multiple windows. Windows can appear as tabs, as separate windows or pop-ups with different position and size. Windows belonging to the same browser typically share the sessions detail, like cookies. If there is a need to separate sessions detail, example login with two different users, two browsers (Selenium WebDriver instances) must be created. New windows can be opened example by the application under test or by example Execute Javascript keyword:

\n
\nExecute Javascript    window.open()    # Opens a new window with location about:blank\n
\n

The example below opens multiple browsers and windows, to demonstrate how the different keywords can be used to interact with browsers, and windows attached to these browsers.

\n

Structure:

\n
\nBrowserA\n           Window 1  (location=https://robotframework.org/)\n           Window 2  (location=https://robocon.io/)\n           Window 3  (location=https://github.com/robotframework/)\n\nBrowserB\n           Window 1  (location=https://github.com/)\n
\n

Example:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Open Browserhttps://robotframework.org${BROWSER}alias=BrowserA# BrowserA with first window is opened.
Execute Javascriptwindow.open()# In BrowserA second window is opened.
Switch Windowlocator=NEW# Switched to second window in BrowserA
Go Tohttps://robocon.io# Second window navigates to robocon site.
Execute Javascriptwindow.open()# In BrowserA third window is opened.
${handle}Switch Windowlocator=NEW# Switched to third window in BrowserA
Go Tohttps://github.com/robotframework/# Third windows goes to robot framework github site.
Open Browserhttps://github.com${BROWSER}alias=BrowserB# BrowserB with first windows is opened.
${location}Get Location# ${location} is: https://www.github.com
Switch Window${handle}browser=BrowserA# BrowserA second windows is selected.
${location}Get Location# ${location} = https://robocon.io/
@{locations 1}Get Locations# By default, lists locations under the currectly active browser (BrowserA).
@{locations 2}Get Locationsbrowser=ALL# By using browser=ALL argument keyword list all locations from all browsers.
\n

The above example, @{locations 1} contains the following items: https://robotframework.org/, https://robocon.io/ and https://github.com/robotframework/'. The @{locations 2} contains the following items: https://robotframework.org/, https://robocon.io/, https://github.com/robotframework/' and 'https://github.com/.

\n

Timeouts, waits, and delays

\n

This section discusses different ways how to wait for elements to appear on web pages and to slow down execution speed otherwise. It also explains the time format that can be used when setting various timeouts, waits, and delays.

\n

Timeout

\n

SeleniumLibrary contains various keywords that have an optional timeout argument that specifies how long these keywords should wait for certain events or actions. These keywords include, for example, Wait ... keywords and keywords related to alerts. Additionally Execute Async Javascript. Although it does not have timeout, argument, uses a timeout to define how long asynchronous JavaScript can run.

\n

The default timeout these keywords use can be set globally either by using the Set Selenium Timeout keyword or with the timeout argument when importing the library. If no default timeout is set globally, the default is 5 seconds. If None is specified for the timeout argument in the keywords, the default is used. See time format below for supported timeout syntax.

\n

Implicit wait

\n

Implicit wait specifies the maximum time how long Selenium waits when searching for elements. It can be set by using the Set Selenium Implicit Wait keyword or with the implicit_wait argument when importing the library. See Selenium documentation for more information about this functionality.

\n

See time format below for supported syntax.

\n

Page load

\n

Page load timeout is the amount of time to wait for page load to complete until error is raised.

\n

The default page load timeout can be set globally when importing the library with the page_load_timeout argument or by using the Set Selenium Page Load Timeout keyword.

\n

See time format below for supported timeout syntax.

\n

Support for page load is new in SeleniumLibrary 6.1

\n

Selenium speed

\n

Selenium execution speed can be slowed down globally by using Set Selenium speed keyword. This functionality is designed to be used for demonstrating or debugging purposes. Using it to make sure that elements appear on a page is not a good idea. The above-explained timeouts and waits should be used instead.

\n

See time format below for supported syntax.

\n

Time format

\n

All timeouts and waits can be given as numbers considered seconds (e.g. 0.5 or 42) or in Robot Framework's time syntax (e.g. 1.5 seconds or 1 min 30 s). For more information about the time syntax see the Robot Framework User Guide.

\n

Run-on-failure functionality

\n

SeleniumLibrary has a handy feature that it can automatically execute a keyword if any of its own keywords fails. By default, it uses the Capture Page Screenshot keyword, but this can be changed either by using the Register Keyword To Run On Failure keyword or with the run_on_failure argument when importing the library. It is possible to use any keyword from any imported library or resource file.

\n

The run-on-failure functionality can be disabled by using a special value NOTHING or anything considered false (see Boolean arguments) such as NONE.

\n

Boolean arguments

\n

Starting from 5.0 SeleniumLibrary relies on Robot Framework to perform the boolean conversion based on keyword arguments type hint. More details in Robot Framework user guide

\n

Please note SeleniumLibrary 3 and 4 did have own custom methods to covert arguments to boolean values.

\n

EventFiringWebDriver

\n

The SeleniumLibrary offers support for EventFiringWebDriver. See the Selenium and SeleniumLibrary EventFiringWebDriver support documentation for further details.

\n

EventFiringWebDriver is new in SeleniumLibrary 4.0

\n

Thread support

\n

SeleniumLibrary is not thread-safe. This is mainly due because the underlying Selenium tool is not thread-safe within one browser/driver instance. Because of the limitation in the Selenium side, the keywords or the API provided by the SeleniumLibrary is not thread-safe.

\n

Plugins

\n

SeleniumLibrary offers plugins as a way to modify and add library keywords and modify some of the internal functionality without creating a new library or hacking the source code. See plugin API documentation for further details.

\n

Plugin API is new SeleniumLibrary 4.0

\n

Auto closing browser

\n

By default, the browser instances created during a task execution are closed at the end of the task. This can be prevented with the auto_close parameter when importing the library.

\n

The value of the parameter needs to be set to False or any object evaluated as false (see Boolean arguments).

", "version": "6.1.3", - "generated": "2023-11-01 15:54:03", + "generated": "2023-11-01 16:12:53", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -11991,8 +11991,8 @@ "specversion": 1, "name": "RPA.Browser.Playwright", "doc": "

Browser library is a browser automation library for Robot Framework.

\n

This is the keyword documentation for Browser library. For information about installation, support, and more please visit the project pages. For more information about Robot Framework itself, see robotframework.org.

\n

Browser library uses Playwright Node module to automate Chromium, Firefox and WebKit with a single library.

\n

Table of contents

\n\n

Browser, Context and Page

\n

Browser library works with three different layers that build on each other: Browser, Context and Page.

\n

Browsers

\n

A browser can be started with one of the three different engines Chromium, Firefox or Webkit.

\n

Supported Browsers

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
BrowserBrowser with this engine
chromiumGoogle Chrome, Microsoft Edge (since 2020), Opera
firefoxMozilla Firefox
webkitApple Safari, Mail, AppStore on MacOS and iOS
\n

Since Playwright comes with a pack of builtin binaries for all browsers, no additional drivers e.g. geckodriver are needed.

\n

All these browsers that cover more than 85% of the world wide used browsers, can be tested on Windows, Linux and MacOS. There is no need for dedicated machines anymore.

\n

A browser process is started headless (without a GUI) by default. Run New Browser with specified arguments if a browser with a GUI is requested or if a proxy has to be configured. A browser process can contain several contexts.

\n

Contexts

\n

A context corresponds to a set of independent incognito pages in a browser that share cookies, sessions or profile settings. Pages in two separate contexts do not share cookies, sessions or profile settings. Compared to Selenium, these do not require their own browser process. To get a clean environment a test can just open a new context. Due to this new independent browser sessions can be opened with Robot Framework Browser about 10 times faster than with Selenium by just opening a New Context within the opened browser.

\n

To make pages in the same suite share state, use the same context by opening the context with New Context on suite setup.

\n

The context layer is useful e.g. for testing different user sessions on the same webpage without opening a whole new browser context. Contexts can also have detailed configurations, such as geo-location, language settings, the viewport size or color scheme. Contexts do also support http credentials to be set, so that basic authentication can also be tested. To be able to download files within the test, the acceptDownloads argument must be set to True in New Context keyword. A context can contain different pages.

\n

Pages

\n

A page does contain the content of the loaded web site and has a browsing history. Pages and browser tabs are the same.

\n

Typical usage could be:

\n
\n* Test Cases *\nStarting a browser with a page\n    New Browser    chromium    headless=false\n    New Context    viewport={'width': 1920, 'height': 1080}\n    New Page       https://marketsquare.github.io/robotframework-browser/Browser.html\n    Get Title      ==    Browser\n
\n

The Open Browser keyword opens a new browser, a new context and a new page. This keyword is useful for quick experiments or debugging sessions.

\n

When a New Page is called without an open browser, New Browser and New Context are executed with default values first.

\n

Each Browser, Context and Page has a unique ID with which they can be addressed. A full catalog of what is open can be received by Get Browser Catalog as a dictionary.

\n

Automatic page and context closing

\n

Controls when contexts and pages are closed during the test execution.

\n

If automatic closing level is TEST, contexts and pages that are created during a single test are automatically closed when the test ends. Contexts and pages that are created during suite setup are closed when the suite teardown ends.

\n

If automatic closing level is SUITE, all contexts and pages that are created during the test suite are closed when the suite teardown ends.

\n

If automatic closing level is MANUAL, nothing is closed automatically while the test execution is ongoing.

\n

All browsers are automatically closed, always and regardless of the automatic closing level at the end of the test execution. This will also close all remaining pages and contexts.

\n

Automatic closing can be configured or switched off with the auto_closing_level library import parameter.

\n

See: Importing

\n

Finding elements

\n

All keywords in the library that need to interact with an element on a web page take an argument typically named selector that specifies how to find the element. Keywords can find elements with strict mode. If strict mode is true and locator finds multiple elements from the page, keyword will fail. If keyword finds one element, keyword does not fail because of strict mode. If strict mode is false, keyword does not fail if selector points many elements. Strict mode is enabled by default, but can be changed in library importing or Set Strict Mode keyword. Keyword documentation states if keyword uses strict mode. If keyword does not state that strict mode is used, then strict mode is not applied for the keyword. For more details, see Playwright strict documentation.

\n

Selector strategies that are supported by default are listed in the table below.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
StrategyMatch based onExample
cssCSS selector.css=.class > \\#login_btn
xpathXPath expression.xpath=//input[@id=\"login_btn\"]
textBrowser text engine.text=Login
idElement ID Attribute.id=login_btn
\n

CSS Selectors can also be recorded with Record selector keyword.

\n

Explicit Selector Strategy

\n

The explicit selector strategy is specified with a prefix using syntax strategy=value. Spaces around the separator are ignored, so css=foo, css= foo and css = foo are all equivalent.

\n

Implicit Selector Strategy

\n

The default selector strategy is css.

\n

If selector does not contain one of the know explicit selector strategies, it is assumed to contain css selector.

\n

Selectors that are starting with // or .. are considered as xpath selectors.

\n

Selectors that are in quotes are considered as text selectors.

\n

Examples:

\n
\n# CSS selectors are default.\nClick  span > button.some_class         # This is equivalent\nClick  css=span > button.some_class     # to this.\n\n# // or .. leads to xpath selector strategy\nClick  //span/button[@class=\"some_class\"]\nClick  xpath=//span/button[@class=\"some_class\"]\n\n# \"text\" in quotes leads to exact text selector strategy\nClick  \"Login\"\nClick  text=\"Login\"\n
\n

CSS

\n

As written before, the default selector strategy is css. See css selector for more information.

\n

Any malformed selector not starting with // or .. nor starting and ending with a quote is assumed to be a css selector.

\n

Note that # is a comment character in Robot Framework syntax and needs to be escaped like \\# to work as a css ID selector.

\n

Examples:

\n
\nClick  span > button.some_class\nGet Text  \\#username_field  ==  George\n
\n

XPath

\n

XPath engine is equivalent to Document.evaluate. Example: xpath=//html/body//span[text()=\"Hello World\"].

\n

Malformed selector starting with // or .. is assumed to be an xpath selector. For example, //html/body is converted to xpath=//html/body. More examples are displayed in Examples.

\n

Note that xpath does not pierce shadow_roots.

\n

Text

\n

Text engine finds an element that contains a text node with the passed text. For example, Click text=Login clicks on a login button, and Wait For Elements State text=\"lazy loaded text\" waits for the \"lazy loaded text\" to appear in the page.

\n

Text engine finds fields based on their labels in text inserting keywords.

\n

Malformed selector starting and ending with a quote (either \" or ') is assumed to be a text selector. For example, Click \"Login\" is converted to Click text=\"Login\". Be aware that these leads to exact matches only! More examples are displayed in Examples.

\n

Insensitive match

\n

By default, the match is case-insensitive, ignores leading/trailing whitespace and searches for a substring. This means text= Login matches <button>Button loGIN (click me)</button>.

\n

Exact match

\n

Text body can be escaped with single or double quotes for precise matching, insisting on exact match, including specified whitespace and case. This means text=\"Login \" will only match <button>Login </button> with exactly one space after \"Login\". Quoted text follows the usual escaping rules, e.g. use \\\" to escape double quote in a double-quoted string: text=\"foo\\\"bar\".

\n

RegEx

\n

Text body can also be a JavaScript-like regex wrapped in / symbols. This means text=/^hello .*!$/i or text=/^Hello .*!$/ will match <span>Hello Peter Parker!</span> with any name after Hello, ending with !. The first one flagged with i for case-insensitive. See https://regex101.com for more information about RegEx.

\n

Button and Submit Values

\n

Input elements of the type button and submit are rendered with their value as text, and text engine finds them. For example, text=Login matches <input type=button value=\"Login\">.

\n

Cascaded selector syntax

\n

Browser library supports the same selector strategies as the underlying Playwright node module: xpath, css, id and text. The strategy can either be explicitly specified with a prefix or the strategy can be implicit.

\n

A major advantage of Browser is that multiple selector engines can be used within one selector. It is possible to mix XPath, CSS and Text selectors while selecting a single element.

\n

Selectors are strings that consists of one or more clauses separated by >> token, e.g. clause1 >> clause2 >> clause3. When multiple clauses are present, next one is queried relative to the previous one's result. Browser library supports concatenation of different selectors separated by >>.

\n

For example:

\n
\nHighlight Elements    \"Hello\" >> ../.. >> .select_button\nHighlight Elements    text=Hello >> xpath=../.. >> css=.select_button\n
\n

Each clause contains a selector engine name and selector body, e.g. engine=body. Here engine is one of the supported engines (e.g. css or a custom one). Selector body follows the format of the particular engine, e.g. for css engine it should be a css selector. Body format is assumed to ignore leading and trailing white spaces, so that extra whitespace can be added for readability. If the selector engine needs to include >> in the body, it should be escaped inside a string to not be confused with clause separator, e.g. text=\"some >> text\".

\n

Selector engine name can be prefixed with * to capture an element that matches the particular clause instead of the last one. For example, css=article >> text=Hello captures the element with the text Hello, and *css=article >> text=Hello (note the *) captures the article element that contains some element with the text Hello.

\n

For convenience, selectors in the wrong format are heuristically converted to the right format. See Implicit Selector Strategy

\n

Examples

\n
\n# queries 'div' css selector\nGet Element    css=div\n\n# queries '//html/body/div' xpath selector\nGet Element    //html/body/div\n\n# queries '\"foo\"' text selector\nGet Element    text=foo\n\n# queries 'span' css selector inside the result of '//html/body/div' xpath selector\nGet Element    xpath=//html/body/div >> css=span\n\n# converted to 'css=div'\nGet Element    div\n\n# converted to 'xpath=//html/body/div'\nGet Element    //html/body/div\n\n# converted to 'text=\"foo\"'\nGet Element    \"foo\"\n\n# queries the div element of every 2nd span element inside an element with the id foo\nGet Element    \\#foo >> css=span:nth-child(2n+1) >> div\nGet Element    id=foo >> css=span:nth-child(2n+1) >> div\n
\n

Be aware that using # as a starting character in Robot Framework would be interpreted as comment. Due to that fact a #id must be escaped as \\#id.

\n

Frames

\n

By default, selector chains do not cross frame boundaries. It means that a simple CSS selector is not able to select an element located inside an iframe or a frameset. For this use case, there is a special selector >>> which can be used to combine a selector for the frame and a selector for an element inside a frame.

\n

Given this simple pseudo html snippet:

\n
\n<iframe id=\"iframe\" src=\"src.html\">\n  #document\n    <!DOCTYPE html>\n    <html>\n      <head></head>\n      <body>\n        <button id=\"btn\">Click Me</button>\n      </body>\n    </html>\n</iframe>\n
\n

Here's a keyword call that clicks the button inside the frame.

\n
\nClick   id=iframe >>> id=btn\n
\n

The selectors on the left and right side of >>> can be any valid selectors. The selector clause directly before the frame opener >>> must select the frame element. Frame selection is the only place where Browser Library modifies the selector, as explained in above. In all cases, the library does not alter the selector in any way, instead it is passed as is to the Playwright side.

\n

WebComponents and Shadow DOM

\n

Playwright and so also Browser are able to do automatic piercing of Shadow DOMs and therefore are the best automation technology when working with WebComponents.

\n

Also other technologies claim that they can handle Shadow DOM and Web Components. However, none of them do pierce shadow roots automatically, which may be inconvenient when working with Shadow DOM and Web Components.

\n

For that reason, the css engine pierces shadow roots. More specifically, every Descendant combinator pierces an arbitrary number of open shadow roots, including the implicit descendant combinator at the start of the selector.

\n

That means, it is not necessary to select each shadow host, open its shadow root and select the next shadow host until you reach the element that should be controlled.

\n

CSS:light

\n

css:light engine is equivalent to Document.querySelector and behaves according to the CSS spec. However, it does not pierce shadow roots.

\n

css engine first searches for elements in the light dom in the iteration order, and then recursively inside open shadow roots in the iteration order. It does not search inside closed shadow roots or iframes.

\n

Examples:

\n
\n<article>\n  <div>In the light dom</div>\n  <div slot='myslot'>In the light dom, but goes into the shadow slot</div>\n  <open mode shadow root>\n      <div class='in-the-shadow'>\n          <span class='content'>\n              In the shadow dom\n              <open mode shadow root>\n                  <li id='target'>Deep in the shadow</li>\n              </open mode shadow root>\n          </span>\n      </div>\n      <slot name='myslot'></slot>\n  </open mode shadow root>\n</article>\n
\n

Note that <open mode shadow root> is not an html element, but rather a shadow root created with element.attachShadow({mode: 'open'}).

\n
    \n
  • Both \"css=article div\" and \"css:light=article div\" match the first <div>In the light dom</div>.
  • \n
  • Both \"css=article > div\" and \"css:light=article > div\" match two div elements that are direct children of the article.
  • \n
  • \"css=article .in-the-shadow\" matches the <div class='in-the-shadow'>, piercing the shadow root, while \"css:light=article .in-the-shadow\" does not match anything.
  • \n
  • \"css:light=article div > span\" does not match anything, because both light-dom div elements do not contain a span.
  • \n
  • \"css=article div > span\" matches the <span class='content'>, piercing the shadow root.
  • \n
  • \"css=article > .in-the-shadow\" does not match anything, because <div class='in-the-shadow'> is not a direct child of article
  • \n
  • \"css:light=article > .in-the-shadow\" does not match anything.
  • \n
  • \"css=article li#target\" matches the <li id='target'>Deep in the shadow</li>, piercing two shadow roots.
  • \n
\n

text:light

\n

text engine open pierces shadow roots similarly to css, while text:light does not. Text engine first searches for elements in the light dom in the iteration order, and then recursively inside open shadow roots in the iteration order. It does not search inside closed shadow roots or iframes.

\n

id, data-testid, data-test-id, data-test and their :light counterparts

\n

Attribute engines are selecting based on the corresponding attribute value. For example: data-test-id=foo is equivalent to css=[data-test-id=\"foo\"], and id:light=foo is equivalent to css:light=[id=\"foo\"].

\n

Element reference syntax

\n

It is possible to get a reference to a Locator by using Get Element and Get Elements keywords. Keywords do not save reference to an element in the HTML document, instead it saves reference to a Playwright Locator. In nutshell Locator captures the logic of how to retrieve that element from the page. Each time an action is performed, the locator re-searches the elements in the page. This reference can be used as a first part of a selector by using a special selector syntax element=. like this:

\n
\n${ref}=    Get Element    .some_class\n           Click          ${ref} >> .some_child     # Locator searches an element from the page.\n           Click          ${ref} >> .other_child    # Locator searches again an element from the page.\n
\n

The .some_child and .other_child selectors in the example are relative to the element referenced by ${ref}. Please note that frame piercing is not possible with element reference.

\n

Assertions

\n

Keywords that accept arguments assertion_operator <AssertionOperator> and assertion_expected can optionally assert that a specified condition holds. Keywords will return the value even when the assertion is performed by the keyword.

\n

Assert will retry and fail only after a specified timeout. See Importing and retry_assertions_for (default is 1 second) for configuring this timeout.

\n

Currently supported assertion operators are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OperatorAlternative OperatorsDescriptionValidate Equivalent
==equal, equals, should beChecks if returned value is equal to expected value.value == expected
!=inequal, should not beChecks if returned value is not equal to expected value.value != expected
>greater thanChecks if returned value is greater than expected value.value > expected
>=Checks if returned value is greater than or equal to expected value.value >= expected
<less thanChecks if returned value is less than expected value.value < expected
<=Checks if returned value is less than or equal to expected value.value <= expected
*=containsChecks if returned value contains expected value as substring.expected in value
not containsChecks if returned value does not contain expected value as substring.expected in value
^=should start with, startsChecks if returned value starts with expected value.re.search(f\"^{expected}\", value)
$=should end with, endsChecks if returned value ends with expected value.re.search(f\"{expected}$\", value)
matchesChecks if given RegEx matches minimum once in returned value.re.search(expected, value)
validateChecks if given Python expression evaluates to True.
evaluatethenWhen using this operator, the keyword does return the evaluated Python expression.
\n

Currently supported formatters for assertions are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FormatterDescription
normalize spacesSubstitutes multiple spaces to single space from the value
stripRemoves spaces from the beginning and end of the value
case insensitiveConverts value to lower case before comparing
apply to expectedApplies rules also for the expected value
\n

Formatters are applied to the value before assertion is performed and keywords returns a value where rule is applied. Formatter is only applied to the value which keyword returns and not all rules are valid for all assertion operators. If apply to expected formatter is defined, then formatters are then formatter are also applied to expected value.

\n

By default, keywords will provide an error message if an assertion fails. Default error messages can be overwritten with a message argument. The message argument accepts {value}, {value_type}, {expected} and {expected_type} format options. The {value} is the value returned by the keyword and the {expected} is the expected value defined by the user, usually the value in the assertion_expected argument. The {value_type} and {expected_type} are the type definitions from {value} and {expected} arguments. In similar fashion as Python type returns type definition. Assertions will retry until timeout has expired if they do not pass.

\n

The assertion assertion_expected value is not converted by the library and is used as is. Therefore when assertion is made, the assertion_expected argument value and value returned the keyword must have the same type. If types are not the same, assertion will fail. Example Get Text always returns a string and has to be compared with a string, even the returned value might look like a number.

\n

Other Keywords have other specific types they return. Get Element Count always returns an integer. Get Bounding Box and Get Viewport Size can be filtered. They return a dictionary without a filter and a number when filtered. These Keywords do automatic conversion for the expected value if a number is returned.

\n

* < less or greater > With Strings* Comparisons of strings with greater than or less than compares each character, starting from 0 regarding where it stands in the code page. Example: A < Z, Z < a, ac < dc It does never compare the length of elements. Neither lists nor strings. The comparison stops at the first character that is different. Examples: `'abcde' < 'abd', '100.000' < '2' In Python 3 and therefore also in Browser it is not possible to compare numbers with strings with a greater or less operator. On keywords that return numbers, the given expected value is automatically converted to a number before comparison.

\n

The getters Get Page State and Get Browser Catalog return a dictionary. Values of the dictionary can directly asserted. Pay attention of possible types because they are evaluated in Python. For example:

\n
\nGet Page State    validate    2020 >= value['year']                     # Comparison of numbers\nGet Page State    validate    \"IMPORTANT MESSAGE!\" == value['message']  # Comparison of strings\n
\n

The 'then' or 'evaluate' closure

\n

Keywords that accept arguments assertion_operator and assertion_expected can optionally also use then or evaluate closure to modify the returned value with BuiltIn Evaluate. Actual value can be accessed with value.

\n

For example Get Title then 'TITLE: '+value. See Builtin Evaluating expressions for more info on the syntax.

\n

Examples

\n
\n# Keyword    Selector                    Key        Assertion Operator    Assertion Expected\nGet Title                                           equal                 Page Title\nGet Title                                           ^=                    Page\nGet Style    //*[@id=\"div-element\"]      width      >                     100\nGet Title                                           matches               \\\\w+\\\\s\\\\w+\nGet Title                                           validate              value == \"Login Page\"\nGet Title                                           evaluate              value if value == \"some value\" else \"something else\"\n
\n

Implicit waiting

\n

Browser library and Playwright have many mechanisms to help in waiting for elements. Playwright will auto-wait before performing actions on elements. Please see Auto-waiting on Playwright documentation for more information.

\n

On top of Playwright auto-waiting Browser assertions will wait and retry for specified time before failing any Assertions. Time is specified in Browser library initialization with retry_assertions_for.

\n

Browser library also includes explicit waiting keywords such as Wait for Elements State if more control for waiting is needed.

\n

Experimental: Re-using same node process

\n

Browser library integrated nodejs and python. The NodeJS side can be also executed as a standalone process. Browser libraries running on the same machine can talk to that instead of starting new node processes. This can speed execution when running tests parallel. To start node side run on the directory when the Browser package is PLAYWRIGHT_BROWSERS_PATH=0 node Browser/wrapper/index.js PORT.

\n

PORT is the port you want to use for the node process. To execute tests then with pabot for example do ROBOT_FRAMEWORK_BROWSER_NODE_PORT=PORT pabot ...

\n

Experimental: Provide parameters to node process

\n

Browser library is integrated with NodeJSand and Python. Browser library starts a node process, to communicate Playwright API in NodeJS side. It is possible to provide parameters for the started node process by defining ROBOT_FRAMEWORK_BROWSER_NODE_DEBUG_OPTIONS environment variable, before starting the test execution. Example: ROBOT_FRAMEWORK_BROWSER_NODE_DEBUG_OPTIONS=--inspect;robot path/to/tests. There can be multiple arguments defined in the environment variable and arguments must be separated with comma.

\n

Scope Setting

\n

Some keywords which manipulates library settings have a scope argument. With that scope argument one can set the \"live time\" of that setting. Available Scopes are: Global, Suite and Test/Task See Scope. Is a scope finished, this scoped setting, like timeout, will no longer be used.

\n

Live Times:

\n
    \n
  • A Global scope will live forever until it is overwritten by another Global scope. Or locally temporarily overridden by a more narrow scope.
  • \n
  • A Suite scope will locally override the Global scope and live until the end of the Suite within it is set, or if it is overwritten by a later setting with Global or same scope. Children suite does inherit the setting from the parent suite but also may have its own local Suite setting that then will be inherited to its children suites.
  • \n
  • A Test or Task scope will be inherited from its parent suite but when set, lives until the end of that particular test or task.
  • \n
\n

A new set higher order scope will always remove the lower order scope which may be in charge. So the setting of a Suite scope from a test, will set that scope to the robot file suite where that test is and removes the Test scope that may have been in place.

\n

Extending Browser library with a JavaScript module

\n

Browser library can be extended with JavaScript. The module must be in CommonJS format that Node.js uses. You can translate your ES6 module to Node.js CommonJS style with Babel. Many other languages can be also translated to modules that can be used from Node.js. For example TypeScript, PureScript and ClojureScript just to mention few.

\n
\nasync function myGoToKeyword(url, args, page, logger, playwright) {\n  logger(args.toString())\n  playwright.coolNewFeature()\n  return await page.goto(url);\n}\n
\n

Functions can contain any number of arguments and arguments may have default values.

\n

There are some reserved arguments that are not accessible from Robot Framework side. They are injected to the function if they are in the arguments:

\n

page: the playwright Page object.

\n

args: the rest of values from Robot Framework keyword call *args.

\n

logger: callback function that takes strings as arguments and writes them to robot log. Can be called multiple times.

\n

playwright: playwright module (* from 'playwright'). Useful for integrating with Playwright features that Browser library doesn't support with it's own keywords. API docs

\n

also argument name self can not be used.

\n

Example module.js

\n
\nasync function myGoToKeyword(pageUrl, page) {\n  await page.goto(pageUrl);\n  return await page.title();\n}\nexports.__esModule = true;\nexports.myGoToKeyword = myGoToKeyword;\n
\n

Example Robot Framework side

\n
\n* Settings *\nLibrary   Browser  jsextension=${CURDIR}/module.js\n\n* Test Cases *\nHello\n  New Page\n  ${title}=  myGoToKeyword  https://playwright.dev\n  Should be equal  ${title}  Playwright\n
\n

Also selector syntax can be extended with a custom selector using a js module

\n

Example module keyword for custom selector registering

\n
\nasync function registerMySelector(playwright) {\nplaywright.selectors.register(\"myselector\", () => ({\n   // Returns the first element matching given selector in the root's subtree.\n   query(root, selector) {\n      return root.querySelector(a[data-title=\"${selector}\"]);\n    },\n\n    // Returns all elements matching given selector in the root's subtree.\n    queryAll(root, selector) {\n      return Array.from(root.querySelectorAll(a[data-title=\"${selector}\"]));\n    }\n}));\nreturn 1;\n}\nexports.__esModule = true;\nexports.registerMySelector = registerMySelector;\n
\n

Plugins

\n

Browser library offers plugins as a way to modify and add library keywords and modify some of the internal functionality without creating a new library or hacking the source code. See plugin API documentation for further details.

\n

Automatic headless detection is supported when opening a new browser.

", - "version": "17.5.1", - "generated": "2023-11-01 15:54:04", + "version": "17.5.2", + "generated": "2023-11-01 16:12:54", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -24054,7 +24054,7 @@ "name": "RPA.Browser.Selenium", "doc": "

SeleniumLibrary is a web testing library for Robot Framework.

\n

This document explains how to use keywords provided by SeleniumLibrary. For information about installation, support, and more, please visit the project pages. For more information about Robot Framework, see http://robotframework.org.

\n

SeleniumLibrary uses the Selenium WebDriver modules internally to control a web browser. See http://seleniumhq.org for more information about Selenium in general and SeleniumLibrary README.rst Browser drivers chapter for more details about WebDriver binary installation.

\n\n

Locating elements

\n

All keywords in SeleniumLibrary that need to interact with an element on a web page take an argument typically named locator that specifies how to find the element. Most often the locator is given as a string using the locator syntax described below, but using WebElements is possible too.

\n

Locator syntax

\n

SeleniumLibrary supports finding elements based on different strategies such as the element id, XPath expressions, or CSS selectors. The strategy can either be explicitly specified with a prefix or the strategy can be implicit.

\n

Default locator strategy

\n

By default, locators are considered to use the keyword specific default locator strategy. All keywords support finding elements based on id and name attributes, but some keywords support additional attributes or other values that make sense in their context. For example, Click Link supports the href attribute and the link text and addition to the normal id and name.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementexample# Match based on id or name.
Click Linkexample# Match also based on link text and href.
Click Buttonexample# Match based on id, name or value.
\n

If a locator accidentally starts with a prefix recognized as explicit locator strategy or implicit XPath strategy, it is possible to use the explicit default prefix to enable the default strategy.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementname:foo# Find element with name foo.
Click Elementdefault:name:foo# Use default strategy with value name:foo.
Click Element//foo# Find element using XPath //foo.
Click Elementdefault: //foo# Use default strategy with value //foo.
\n

Explicit locator strategy

\n

The explicit locator strategy is specified with a prefix using either syntax strategy:value or strategy=value. The former syntax is preferred because the latter is identical to Robot Framework's named argument syntax and that can cause problems. Spaces around the separator are ignored, so id:foo, id: foo and id : foo are all equivalent.

\n

Locator strategies that are supported by default are listed in the table below. In addition to them, it is possible to register custom locators.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
StrategyMatch based onExample
idElement id.id:example
namename attribute.name:example
identifierEither id or name.identifier:example
classElement class.class:example
tagTag name.tag:div
xpathXPath expression.xpath://div[@id=\"example\"]
cssCSS selector.css:div#example
domDOM expression.dom:document.images[5]
linkExact text a link has.link:The example
partial linkPartial link text.partial link:he ex
sizzleSizzle selector deprecated.sizzle:div.example
dataElement data-* attributedata:id:my_id
jqueryjQuery expression.jquery:div.example
defaultKeyword specific default behavior.default:example
\n

See the Default locator strategy section below for more information about how the default strategy works. Using the explicit default prefix is only necessary if the locator value itself accidentally matches some of the explicit strategies.

\n

Different locator strategies have different pros and cons. Using ids, either explicitly like id:foo or by using the default locator strategy simply like foo, is recommended when possible, because the syntax is simple and locating elements by id is fast for browsers. If an element does not have an id or the id is not stable, other solutions need to be used. If an element has a unique tag name or class, using tag, class or css strategy like tag:h1, class:example or css:h1.example is often an easy solution. In more complex cases using XPath expressions is typically the best approach. They are very powerful but a downside is that they can also get complex.

\n

Examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Click Elementid:foo# Element with id 'foo'.
Click Elementcss:div#foo h1# h1 element under div with id 'foo'.
Click Elementxpath: //div[@id=\"foo\"]//h1# Same as the above using XPath, not CSS.
Click Elementxpath: //*[contains(text(), \"example\")]# Element containing text 'example'.
\n

NOTE:

\n
    \n
  • The strategy:value syntax is only supported by SeleniumLibrary 3.0 and newer.
  • \n
  • Using the sizzle strategy or its alias jquery requires that the system under test contains the jQuery library.
  • \n
  • Prior to SeleniumLibrary 3.0, table related keywords only supported xpath, css and sizzle/jquery strategies.
  • \n
  • data strategy is conveniance locator that will construct xpath from the parameters. If you have element like <div data-automation=\"automation-id-2\">, you locate the element via data:automation:automation-id-2. This feature was added in SeleniumLibrary 5.2.0
  • \n
\n

Implicit XPath strategy

\n

If the locator starts with // or multiple opening parenthesis in front of the //, the locator is considered to be an XPath expression. In other words, using //div is equivalent to using explicit xpath://div and ((//div)) is equivalent to using explicit xpath:((//div))

\n

Examples:

\n\n\n\n\n\n\n\n\n\n
Click Element//div[@id=\"foo\"]//h1
Click Element(//div)[2]
\n

The support for the (// prefix is new in SeleniumLibrary 3.0. Supporting multiple opening parenthesis is new in SeleniumLibrary 5.0.

\n

Chaining locators

\n

It is possible chain multiple locators together as single locator. Each chained locator must start with locator strategy. Chained locators must be separated with single space, two greater than characters and followed with space. It is also possible mix different locator strategies, example css or xpath. Also a list can also be used to specify multiple locators. This is useful, is some part of locator would match as the locator separator but it should not. Or if there is need to existing WebElement as locator.

\n

Although all locators support chaining, some locator strategies do not abey the chaining. This is because some locator strategies use JavaScript to find elements and JavaScript is executed for the whole browser context and not for the element found be the previous locator. Chaining is supported by locator strategies which are based on Selenium API, like xpath or css, but example chaining is not supported by sizzle or `jquery

\n

Examples:

\n\n\n\n\n\n\n
Click Elementcss:.bar >> xpath://a# To find a link which is present after an element with class \"bar\"
\n

List examples:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
${locator_list} =Create Listcss:div#div_idxpath://*[text(), \" >> \"]
Page Should Contain Element${locator_list}
${element} =Get WebElementxpath://*[text(), \" >> \"]
${locator_list} =Create Listcss:div#div_id${element}
Page Should Contain Element${locator_list}
\n

Chaining locators in new in SeleniumLibrary 5.0

\n

Using WebElements

\n

In addition to specifying a locator as a string, it is possible to use Selenium's WebElement objects. This requires first getting a WebElement, for example, by using the Get WebElement keyword.

\n\n\n\n\n\n\n\n\n\n\n\n
${elem} =Get WebElementid:example
Click Element${elem}
\n

Custom locators

\n

If more complex lookups are required than what is provided through the default locators, custom lookup strategies can be created. Using custom locators is a two part process. First, create a keyword that returns a WebElement that should be acted on:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Custom Locator Strategy[Arguments]${browser}${locator}${tag}${constraints}
${element}=Execute Javascriptreturn window.document.getElementById('${locator}');
[Return]${element}
\n

This keyword is a reimplementation of the basic functionality of the id locator where ${browser} is a reference to a WebDriver instance and ${locator} is the name of the locator strategy. To use this locator, it must first be registered by using the Add Location Strategy keyword:

\n\n\n\n\n\n\n
Add Location StrategycustomCustom Locator Strategy
\n

The first argument of Add Location Strategy specifies the name of the strategy and it must be unique. After registering the strategy, the usage is the same as with other locators:

\n\n\n\n\n\n
Click Elementcustom:example
\n

See the Add Location Strategy keyword for more details.

\n

Browser and Window

\n

There is different conceptual meaning when SeleniumLibrary talks about windows or browsers. This chapter explains those differences.

\n

Browser

\n

When Open Browser or Create WebDriver keyword is called, it will create a new Selenium WebDriver instance by using the Selenium WebDriver API. In SeleniumLibrary terms, a new browser is created. It is possible to start multiple independent browsers (Selenium Webdriver instances) at the same time, by calling Open Browser or Create WebDriver multiple times. These browsers are usually independent of each other and do not share data like cookies, sessions or profiles. Typically when the browser starts, it creates a single window which is shown to the user.

\n

Window

\n

Windows are the part of a browser that loads the web site and presents it to the user. All content of the site is the content of the window. Windows are children of a browser. In SeleniumLibrary browser is a synonym for WebDriver instance. One browser may have multiple windows. Windows can appear as tabs, as separate windows or pop-ups with different position and size. Windows belonging to the same browser typically share the sessions detail, like cookies. If there is a need to separate sessions detail, example login with two different users, two browsers (Selenium WebDriver instances) must be created. New windows can be opened example by the application under test or by example Execute Javascript keyword:

\n
\nExecute Javascript    window.open()    # Opens a new window with location about:blank\n
\n

The example below opens multiple browsers and windows, to demonstrate how the different keywords can be used to interact with browsers, and windows attached to these browsers.

\n

Structure:

\n
\nBrowserA\n           Window 1  (location=https://robotframework.org/)\n           Window 2  (location=https://robocon.io/)\n           Window 3  (location=https://github.com/robotframework/)\n\nBrowserB\n           Window 1  (location=https://github.com/)\n
\n

Example:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Open Browserhttps://robotframework.org${BROWSER}alias=BrowserA# BrowserA with first window is opened.
Execute Javascriptwindow.open()# In BrowserA second window is opened.
Switch Windowlocator=NEW# Switched to second window in BrowserA
Go Tohttps://robocon.io# Second window navigates to robocon site.
Execute Javascriptwindow.open()# In BrowserA third window is opened.
${handle}Switch Windowlocator=NEW# Switched to third window in BrowserA
Go Tohttps://github.com/robotframework/# Third windows goes to robot framework github site.
Open Browserhttps://github.com${BROWSER}alias=BrowserB# BrowserB with first windows is opened.
${location}Get Location# ${location} is: https://www.github.com
Switch Window${handle}browser=BrowserA# BrowserA second windows is selected.
${location}Get Location# ${location} = https://robocon.io/
@{locations 1}Get Locations# By default, lists locations under the currectly active browser (BrowserA).
@{locations 2}Get Locationsbrowser=ALL# By using browser=ALL argument keyword list all locations from all browsers.
\n

The above example, @{locations 1} contains the following items: https://robotframework.org/, https://robocon.io/ and https://github.com/robotframework/'. The @{locations 2} contains the following items: https://robotframework.org/, https://robocon.io/, https://github.com/robotframework/' and 'https://github.com/.

\n

Timeouts, waits, and delays

\n

This section discusses different ways how to wait for elements to appear on web pages and to slow down execution speed otherwise. It also explains the time format that can be used when setting various timeouts, waits, and delays.

\n

Timeout

\n

SeleniumLibrary contains various keywords that have an optional timeout argument that specifies how long these keywords should wait for certain events or actions. These keywords include, for example, Wait ... keywords and keywords related to alerts. Additionally Execute Async Javascript. Although it does not have timeout, argument, uses a timeout to define how long asynchronous JavaScript can run.

\n

The default timeout these keywords use can be set globally either by using the Set Selenium Timeout keyword or with the timeout argument when importing the library. If no default timeout is set globally, the default is 5 seconds. If None is specified for the timeout argument in the keywords, the default is used. See time format below for supported timeout syntax.

\n

Implicit wait

\n

Implicit wait specifies the maximum time how long Selenium waits when searching for elements. It can be set by using the Set Selenium Implicit Wait keyword or with the implicit_wait argument when importing the library. See Selenium documentation for more information about this functionality.

\n

See time format below for supported syntax.

\n

Page load

\n

Page load timeout is the amount of time to wait for page load to complete until error is raised.

\n

The default page load timeout can be set globally when importing the library with the page_load_timeout argument or by using the Set Selenium Page Load Timeout keyword.

\n

See time format below for supported timeout syntax.

\n

Support for page load is new in SeleniumLibrary 6.1

\n

Selenium speed

\n

Selenium execution speed can be slowed down globally by using Set Selenium speed keyword. This functionality is designed to be used for demonstrating or debugging purposes. Using it to make sure that elements appear on a page is not a good idea. The above-explained timeouts and waits should be used instead.

\n

See time format below for supported syntax.

\n

Time format

\n

All timeouts and waits can be given as numbers considered seconds (e.g. 0.5 or 42) or in Robot Framework's time syntax (e.g. 1.5 seconds or 1 min 30 s). For more information about the time syntax see the Robot Framework User Guide.

\n

Run-on-failure functionality

\n

SeleniumLibrary has a handy feature that it can automatically execute a keyword if any of its own keywords fails. By default, it uses the Capture Page Screenshot keyword, but this can be changed either by using the Register Keyword To Run On Failure keyword or with the run_on_failure argument when importing the library. It is possible to use any keyword from any imported library or resource file.

\n

The run-on-failure functionality can be disabled by using a special value NOTHING or anything considered false (see Boolean arguments) such as NONE.

\n

Boolean arguments

\n

Starting from 5.0 SeleniumLibrary relies on Robot Framework to perform the boolean conversion based on keyword arguments type hint. More details in Robot Framework user guide

\n

Please note SeleniumLibrary 3 and 4 did have own custom methods to covert arguments to boolean values.

\n

EventFiringWebDriver

\n

The SeleniumLibrary offers support for EventFiringWebDriver. See the Selenium and SeleniumLibrary EventFiringWebDriver support documentation for further details.

\n

EventFiringWebDriver is new in SeleniumLibrary 4.0

\n

Thread support

\n

SeleniumLibrary is not thread-safe. This is mainly due because the underlying Selenium tool is not thread-safe within one browser/driver instance. Because of the limitation in the Selenium side, the keywords or the API provided by the SeleniumLibrary is not thread-safe.

\n

Plugins

\n

SeleniumLibrary offers plugins as a way to modify and add library keywords and modify some of the internal functionality without creating a new library or hacking the source code. See plugin API documentation for further details.

\n

Plugin API is new SeleniumLibrary 4.0

\n

Auto closing browser

\n

By default, the browser instances created during a task execution are closed at the end of the task. This can be prevented with the auto_close parameter when importing the library.

\n

The value of the parameter needs to be set to False or any object evaluated as false (see Boolean arguments).

", "version": "6.1.3", - "generated": "2023-11-01 15:54:05", + "generated": "2023-11-01 16:12:54", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -33375,7 +33375,7 @@ "name": "RPA.Browser.common", "doc": "

Documentation for library RPA.Browser.common.

", "version": "", - "generated": "2023-11-01 15:54:05", + "generated": "2023-11-01 16:12:54", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -33466,7 +33466,7 @@ "name": "RPA.Calendar", "doc": "
\n

Library for handling different operations for date and time\nhandling especially in business days and holiday contexts.

\n

Utilizing pendulum and\nholidays packages.

\n

Library is by default using days from Monday to Friday as business\ndays, but that can be changed by giving list of weekdays to\nSet Business Days keyword. A weekday is given as a integer, the\n0 for Sunday and 6 for Saturday.

\n

Common country holidays are respected when getting next and previous\nbusiness days, but custom holidays can be added into consideration\nusing keyword Add Custom Holidays keyword.

\n

Some dates containing for example month names are in English (en), but\nthe locale of the library can be changed with keyword Set Locale or\nfor specific keyword if that has a locale parameter.

\n
\n", "version": "", - "generated": "2023-11-01 15:54:05", + "generated": "2023-11-01 16:12:55", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -34736,7 +34736,7 @@ "name": "RPA.Cloud.AWS", "doc": "
\n

AWS is a library for operating with Amazon AWS services S3, SQS,\nTextract and Comprehend.

\n

Services are initialized with keywords like Init S3 Client for S3.

\n

AWS authentication

\n

Authentication for AWS is set with key id and access key which can be given to the library\nin three different ways.

\n
    \n
  • Method 1 as environment variables, AWS_KEY_ID and AWS_KEY.
  • \n
  • Method 2 as keyword parameters to Init Textract Client for example.
  • \n
  • Method 3 as Robocorp vault secret. The vault name needs to be given in library init or\nwith keyword Set Robocorp Vault. Secret keys are expected to match environment variable\nnames.
  • \n
\n

Note. Starting from rpaframework-aws 1.0.3 region can be given as environment\nvariable AWS_REGION or include as Robocorp Vault secret with the same key name.

\n

Redshift Data authentication: Depending on the authorization method, use\none of the following combinations of request parameters, which can only\nbe passed via method 2:

\n
\n
    \n
  • Secrets Manager - when connecting to a cluster, specify the Amazon\nResource Name (ARN) of the secret, the database name, and the\ncluster identifier that matches the cluster in the secret. When\nconnecting to a serverless endpoint, specify the Amazon Resource\nName (ARN) of the secret and the database name.
  • \n
  • Temporary credentials - when connecting to a cluster, specify the\ncluster identifier, the database name, and the database user name.\nAlso, permission to call the redshift:GetClusterCredentials\noperation is required. When connecting to a serverless endpoint,\nspecify the database name.
  • \n
\n
\n

Role Assumption: With the use of the STS service client, you are able\nto assume another role, which will return temporary credentials. The\ntemporary credentials will include an access key and session token, see\nkeyword documentation for Assume Role for details of how the\ncredentials are returned. You can use these temporary credentials\nas part of method 2, but you must also include the session token.

\n

Method 1. credentials using environment variable

\n
\n*** Settings ***\nLibrary   RPA.Cloud.AWS\n\n*** Tasks ***\nInit AWS services\n    # NO parameters for client, expecting to get credentials\n    # with AWS_KEY, AWS_KEY_ID and AWS_REGION environment variables\n    Init S3 Client\n
\n

Method 2. credentials with keyword parameter

\n
\n*** Settings ***\nLibrary   RPA.Cloud.AWS   region=us-east-1\n\n*** Tasks ***\nInit AWS services\n    Init S3 Client  aws_key_id=${AWS_KEY_ID}  aws_key=${AWS_KEY}\n
\n

Method 3. setting Robocorp Vault in the library init

\n
\n*** Settings ***\nLibrary   RPA.Cloud.AWS  robocorp_vault_name=aws\n\n*** Tasks ***\nInit AWS services\n    Init S3 Client  use_robocorp_vault=${TRUE}\n
\n

Method 3. setting Robocorp Vault with keyword

\n
\n*** Settings ***\nLibrary   RPA.Cloud.AWS\n\n*** Tasks ***\nInit AWS services\n    Set Robocorp Vault     vault_name=aws\n    Init Textract Client    use_robocorp_vault=${TRUE}\n
\n

Requirements

\n

The default installation depends on boto3 library. Due to the size of the\ndependency, this library is available separate package rpaframework-aws but can\nalso be installed as an optional package for rpaframework.

\n

Recommended installation is rpaframework-aws plus rpaframework package.\nRemember to check latest versions from rpaframework Github repository.

\n
\nchannels:\n  - conda-forge\ndependencies:\n  - python=3.7.5\n  - pip=20.1\n  - pip:\n    - rpaframework==13.0.2\n    - rpaframework-aws==1.0.3\n
\n

Example

\n
\n*** Settings ***\nLibrary   RPA.Cloud.AWS   region=us-east-1\n\n*** Variables ***\n${BUCKET_NAME}        testbucket12213123123\n\n*** Tasks ***\nUpload a file into S3 bucket\n    [Setup]   Init S3 Client\n    Upload File      ${BUCKET_NAME}   ${/}path${/}to${/}file.pdf\n    @{files}         List Files   ${BUCKET_NAME}\n    FOR   ${file}  IN   @{files}\n        Log  ${file}\n    END\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:06", + "generated": "2023-11-01 16:12:55", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -37187,7 +37187,7 @@ "name": "RPA.Cloud.Azure", "doc": "
\n

Azure is a library for operating with Microsoft Azure API endpoints.

\n

List of supported service names:

\n\n

Azure authentication

\n

Authentication for Azure is set with service subscription key which can be given to the library\nin two different ways.

\n
    \n
  • Method 1 as environment variables, either service specific environment variable\nfor example AZURE_TEXTANALYTICS_KEY or with common key AZURE_SUBSCRIPTION_KEY which\nwill be used for all the services.
  • \n
  • Method 2 as Robocorp Vault secret. The vault name needs to be given in library init or\nwith keyword Set Robocorp Vault. Secret keys are expected to match environment variable\nnames.
  • \n
\n

Method 1. subscription key using environment variable

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Azure\n\n*** Tasks ***\nInit Azure services\n    # NO parameters for client, expecting to get subscription key\n    # with AZURE_TEXTANALYTICS_KEY or AZURE_SUBSCRIPTION_KEY environment variable\n    Init Text Analytics Service\n
\n

Method 2. setting Robocorp Vault in the library init

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Azure  robocorp_vault_name=azure\n\n*** Tasks ***\nInit Azure services\n    Init Text Analytics Service  use_robocorp_vault=${TRUE}\n
\n

Method 2. setting Robocorp Vault with keyword

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Azure\n\n*** Tasks ***\nInit Azure services\n    Set Robocorp Vault          vault_name=googlecloud\n    Init Text Analytics Service  use_robocorp_vault=${TRUE}\n
\n

References

\n

List of supported language locales - Azure locale list

\n

List of supported region identifiers - Azure region list

\n

Examples

\n

Robot Framework

\n

This is a section which describes how to use the library in your\nRobot Framework tasks.

\n
\n*** Settings ***\nLibrary  RPA.Cloud.Azure\n\n*** Variables ***\n${IMAGE_URL}   IMAGE_URL\n${FEATURES}    Faces,ImageType\n\n*** Tasks ***\nVisioning image information\n   Init Computer Vision Service\n   &{result}   Vision Analyze  image_url=${IMAGE_URL}  visual_features=${FEATURES}\n   @{faces}    Set Variable  ${result}[faces]\n   FOR  ${face}  IN   @{faces}\n      Log  Age: ${face}[age], Gender: ${face}[gender], Rectangle: ${face}[faceRectangle]\n   END\n
\n

Python

\n

This is a section which describes how to use the library in your\nown Python modules.

\n
\nlibrary = Azure()\nlibrary.init_text_analytics_service()\nlibrary.init_face_service()\nlibrary.init_computer_vision_service()\nlibrary.init_speech_service("westeurope")\n\nresponse = library.sentiment_analyze(\n   text="The rooms were wonderful and the staff was helpful."\n)\nresponse = library.detect_face(\n   image_file=PATH_TO_FILE,\n   face_attributes="age,gender,smile,hair,facialHair,emotion",\n)\nfor item in response:\n   gender = item["faceAttributes"]["gender"]\n   age = item["faceAttributes"]["age"]\n   print(f"Detected a face, gender:{gender}, age: {age}")\n\nresponse = library.vision_analyze(\n   image_url=URL_TO_IMAGE,\n   visual_features="Faces,ImageType",\n)\nmeta = response['metadata']\nprint(\n   f"Image dimensions meta['width']}x{meta['height']} pixels"\n)\n\nfor face in response["faces"]:\n   left = face["faceRectangle"]["left"]\n   top = face["faceRectangle"]["top"]\n   width = face["faceRectangle"]["width"]\n   height = face["faceRectangle"]["height"]\n   print(f"Detected a face, gender:{face['gender']}, age: {face['age']}")\n   print(f"      Face rectangle: (left={left}, top={top})")\n   print(f"      Face rectangle: (width={width}, height={height})")\n\nlibrary.text_to_speech(\n    text="Developer tools for open-source RPA leveraging the Robot Framework ecosystem",\n    neural_voice_style="cheerful",\n    target_file='output.mp3'\n)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:06", + "generated": "2023-11-01 16:12:55", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -38167,7 +38167,7 @@ "name": "RPA.Cloud.Google", "doc": "
\n

Google is a library for operating with Google API endpoints.

\n

Usage requires the following steps:

\n
    \n
  • Create a GCP project
  • \n
  • Enable approriate APIs
  • \n
  • Create credentials (OAuth or service account)
  • \n
  • Install rpaframework-google package
  • \n
\n

Google authentication

\n

Authentication for Google is set with service account JSON file which can be given to the library\nin three different ways or with OAuth2 token, which is used for OAuth authentication.

\n

Methods when using service account:

\n
    \n
  • Method 1 as environment variables, GOOGLE_APPLICATION_CREDENTIALS with path to service account file.
  • \n
  • Method 2 as keyword parameter to Init Storage for example.
  • \n
  • Method 3 as Robocorp vault secret. The vault name and secret key name needs to be given in library init\nor with keyword Set Robocorp Vault. Secret value should contain JSON file contents.
  • \n
\n

Method 1. service account using environment variable

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n\n*** Tasks ***\nInit Google services\n    # NO parameters for Init Vision, expecting to get JSON\n    # with GOOGLE_APPLICATION_CREDENTIALS environment variable\n    Init Vision\n
\n

Method 2. service account with keyword parameter

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n\n*** Tasks ***\nInit Google services\n    Init Speech To Text   /path/to/service_account.json\n
\n

Method 3. setting Robocorp Vault in the library init

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n...       vault_name=googlecloud\n...       vault_secret_key=servicecreds\n\n*** Tasks ***\nInit Google services\n    Init Storage\n
\n

Method 3. setting Robocorp Vault with keyword

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n\n*** Tasks ***\nInit Google services\n    Set Robocorp Vault   vault_name=googlecloud  vault_secret_key=servicecreds\n    Init Storage    use_robocorp_vault=${TRUE}\n
\n

Methods when using OAuth token:

\n
    \n
  • Method 1 as keyword parameter token_file to Init Storage for example.
  • \n
  • Method 2 as Robocorp vault secret. The vault name and secret key name needs to be given in library init\nor with keyword Set Robocorp Vault. Secret value should contain JSON file contents.
  • \n
\n

Method 1. The Google Apps Script and Google Drive services are authenticated using this method.

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n\n*** Variables ***\n@{SCRIPT_SCOPES}     forms   spreadsheets\n\n*** Tasks ***\nInit Google OAuth services\n    Init Apps Script    token_file=oauth_token   ${SCRIPT_SCOPES}\n
\n

Method 2. setting Robocorp Vault in the library init

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n...       vault_name=googlecloud\n...       vault_secret_key=oauth\n...       cloud_auth_type=token\n\n*** Tasks ***\nInit Google services\n    Init Storage\n
\n

Creating and using OAuth token file

\n

The token file can be created using credentials.json by running command:

\n

rpa-google-oauth --credentials <filepath> --service drive or\nrpa-google-oauth --credentials <filepath> --scopes drive.appdata,drive.file,drive.install

\n

This will start web based authentication process, which outputs the token at the end.\nToken could be stored into Robocorp Vault.

\n

Example Vault content.

\n
\n"googlecloud": {\n    "oauth-token": "gANfd123321aabeedYsc"\n}\n
\n

Using the Vault.

\n
\n*** Keywords ***\nSet up Google Drive authentication\n    Set Robocorp Vault   vault_name=googlecloud\n    ...  vault_secret_key=oauth-token\n    ...  cloud_auth_type=token\n    Init Drive\n
\n

Installation

\n

This library, RPA.Cloud.Google is available via rpaframework-google package.

\n

Check the latest package version from PyPI.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary   RPA.Cloud.Google\n\n*** Variables ***\n${SERVICE_ACCOUNT}    ${/}path${/}to${/}service_account.json\n${BUCKET_NAME}            testbucket12213123123\n\n*** Tasks ***\nUpload a file into a new storage bucket\n    [Setup]   Init Storage    ${SERVICE_ACCOUNT}\n    Create Storage Bucket    ${BUCKET_NAME}\n    Upload Storage File      ${BUCKET_NAME}\n    ...   ${/}path${/}to${/}file.pdf\n    ...   myfile.pdf\n    @{files}         List Storage Files   ${BUCKET_NAME}\n    FOR   ${file}  IN   @{files}\n        Log  ${file}\n    END\n
\n

Python

\n
\nfrom RPA.Cloud.Google import Google\n\nlibrary = Google\nservice_account = '/path/to/service_account.json'\n\nlibrary.init_vision(service_account)\nlibrary.init_text_to_speech(service_account)\n\nresponse = library.detect_text('imagefile.png', 'result.json')\nlibrary.synthesize_speech('I want this said aloud', target_file='said.mp3')\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:08", + "generated": "2023-11-01 16:12:56", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -43115,7 +43115,7 @@ "name": "RPA.Crypto", "doc": "
\n

Library for common encryption and hashing operations.

\n

It uses the Fernet\nformat for encryption. More specifically, it uses AES in\nCBC mode with a 128-bit key for encryption and HMAC with SHA256 for\nauthentication.

\n

To use the encryption features, generate a key with the command line\nutility rpa-crypto or with the keyword Generate Key. Store\nthe key in a secure place, such as Robocorp Vault, and load it within\nthe execution before calling encryption/decryption keywords.

\n

Example usage with Robocorp Vault

\n

Create an encryption key with the CLI utility:

\n
\n> rpa-crypto key\nrGx1edA07yz7uD08ChiPSunn8vaauRxw0pAbsal9zjM=\n
\n

Store the key in Robocorp Vault, in this case with the name EncryptionKey.

\n

Load the key from the vault before encryption operations:

\n
\nUse encryption key from vault    EncryptionKey\n${encrypted}=   Encrypt file    orders.xlsx\nAdd work item file    ${encrypted}    name=Orders\n
\n

In another task, this same key can be used to decrypt the file:

\n
\nUse encryption key from vault    EncryptionKey\n${encrypted}=    Get work item file    Orders\n${orders}=   Decrypt file    ${encrypted}\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:08", + "generated": "2023-11-01 16:12:56", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -43602,7 +43602,7 @@ "name": "RPA.Database", "doc": "
\n

Database is a library for handling different database operations.

\n

All database operations are supported. Keywords Query and Get Rows\nreturn values by default in RPA.Table format.

\n

Library is compatible with any Database API Specification 2.0 module.

\n

Workaround for inserting large JSON data for Call Stored Procedure

\n

Workaround is to use instead Query keyword. At the moment there is\nno known fix for the Call Stored Procedure keyword as it fails if\nJSON string is more than 8000 characters long.

\n

Robot Framework

\n
\n${data}=    Load JSON from file    random_data.json\n${json}=    Convert JSON to String    ${data}\n# Single quotes around ${json} string are necessary\nQuery    exec InsertJsonDataToSampleTable '${json}'\n
\n

References:

\n\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary         RPA.Database\n\n*** Tasks ***\nGet Orders From Database\n    Connect To Database  pymysql  tester  user  password  127.0.0.1\n    @{orders}            Query    Select * FROM incoming_orders\n    FOR   ${order}  IN  @{orders}\n        Handle Order  ${order}\n    END\n
\n

Python

\n
\nfrom RPA.Database import Database\nfrom RPA.Robocorp.Vault import FileSecrets\n\nfilesecrets = FileSecrets("secrets.json")\nsecrets = filesecrets.get_secret("databasesecrets")\n\ndb = Database()\ndb.connect_to_database('pymysql',\n                    secrets["DATABASE"],\n                    secrets["USERNAME"],\n                    secrets["PASSWORD"],\n                    '127.0.0.1'\n                    )\norders = db.query("SELECT * FROM incoming_orders")\nfor order in orders:\n    print(order)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:08", + "generated": "2023-11-01 16:12:56", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -44262,7 +44262,7 @@ "name": "RPA.Desktop", "doc": "
\n

Desktop is a cross-platform library for navigating and interacting with\ndesktop environments. It can be used to automate applications through\nthe same interfaces that are available to human users.

\n

The library includes the following features:

\n
    \n
  • Mouse and keyboard input emulation
  • \n
  • Starting and stopping applications
  • \n
  • Finding elements through image template matching
  • \n
  • Scraping text from given regions
  • \n
  • Taking screenshots
  • \n
  • Clipboard management
  • \n
\n
\n

Warning

\n

Windows element selectors are not currently supported, and require the use of RPA.Desktop.Windows

\n
\n

Installation

\n

The basic features such as mouse and keyboard input and application\ncontrol work with a default rpaframework install.

\n

Advanced computer-vision features such as image template matching and\nOCR require an additional library called rpaframework-recognition.

\n

The dependency should be added separately by specifing it in your conda.yaml\nas rpaframework-recognition==5.0.1 for example. If installing recognition\nthrough pip instead of conda, the OCR feature also requires tesseract.

\n

Locating elements

\n

To automate actions on the desktop, a robot needs to interact with various\ngraphical elements such as buttons or input fields. The locations of these\nelements can be found using a feature called locators.

\n

A locator describes the properties or features of an element. This information\ncan be later used to locate similar elements even when window positions or\nstates change.

\n

The currently supported locator types are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameArgumentsDescription
aliasname (str)A custom named locator from the locator database, the default.
imagepath (str)Image of an element that is matched to current screen content.
pointx (int), y (int)Pixel coordinates as absolute position.
offsetx (int), y (int)Pixel coordinates relative to current mouse position.
sizewidth (int), height (int)Region of fixed size, around point or screen top-left
regionleft (int), top (int), right (int), bottom (int)Bounding coordinates for a rectangular region.
ocrtext (str), confidence (float, optional)Text to find from the current screen.
\n

A locator is defined by its type and arguments, divided by a colon.\nSome example usages are shown below. Note that the prefix for alias can\nbe omitted as its the default type.

\n
\nClick       point:50,100\nClick       region:20,20,100,30\n\nMove mouse  image:%{ROBOT_ROOT}/logo.png\nMove mouse  offset:200,0\nClick\n\nClick       alias:SpareBin.Login\nClick       SpareBin.Login\n\nClick       ocr:"Create New Account"\n
\n

You can also pass internal region objects as locators:

\n
\n${region}=  Find Element  ocr:"Customer name"\nClick       ${region}\n
\n

Locator chaining

\n

Often it is not enough to have one locator, but instead an element\nis defined through a relationship of various locators. For this use\ncase the library supports a special syntax, which we will call\nlocator chaining.

\n

An example of chaining:

\n
\n# Read text from area on the right side of logo\nRead text    image:logo.png + offset:600,0 + size:400,200\n
\n

The supported operators are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
OperatorDescription
then, +Base locator relative to the previous one
and, &&, &Both locators should be found
or, ||, |Either of the locators should be found
not, !The locator should not be found
\n

Further examples:

\n
\n# Click below either label\nClick    (image:name.png or image:email.png) then offset:0,300\n\n# Wait until dialog disappears\nWait for element    not image:cookie.png\n
\n

Named locators

\n

The library supports storing locators in a database, which contains\nall of the required fields and various bits of metadata. This enables\nhaving one source of truth, which can be updated if a website's or applications's\nUI changes. Robot Framework scripts can then only contain a reference\nto a stored locator by name.

\n

The main way to create named locators is with VSCode.

\n

Read more on identifying elements and crafting locators:

\n\n

Keyboard and mouse

\n

Keyboard keywords can emulate typing text, but also pressing various function keys.\nThe name of a key is case-insensitive and spaces will be converted to underscores,\ni.e. the key Page Down and page_down are equivalent.

\n

The following function keys are supported:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyDescription
shiftA generic Shift key. This is a modifier.
shift_lThe left Shift key. This is a modifier.
shift_rThe right Shift key. This is a modifier.
ctrlA generic Ctrl key. This is a modifier.
ctrl_lhe left Ctrl key. This is a modifier.
ctrl_rThe right Ctrl key. This is a modifier.
altA generic Alt key. This is a modifier.
alt_lThe left Alt key. This is a modifier.
alt_rThe right Alt key. This is a modifier.
alt_grThe AltGr key. This is a modifier.
cmdA generic command button (Windows / Command / Super key). This may be a modifier.
cmd_lThe left command button (Windows / Command / Super key). This may be a modifier.
cmd_rThe right command button (Windows / Command / Super key). This may be a modifier.
upAn up arrow key.
downA down arrow key.
leftA left arrow key.
rightA right arrow key.
enterThe Enter or Return key.
spaceThe Space key.
tabThe Tab key.
backspaceThe Backspace key.
deleteThe Delete key.
escThe Esc key.
homeThe Home key.
endThe End key.
page_downThe Page Down key.
page_upThe Page Up key.
caps_lockThe Caps Lock key.
f1 to f20The function keys.
insertThe Insert key. This may be undefined for some platforms.
menuThe Menu key. This may be undefined for some platforms.
num_lockThe Num Lock key. This may be undefined for some platforms.
pauseThe Pause / Break key. This may be undefined for some platforms.
print_screenThe Print Screen key. This may be undefined for some platforms.
scroll_lockThe Scroll Lock key. This may be undefined for some platforms.
\n

When controlling the mouse, there are different types of actions that can be\ndone. Same formatting rules as function keys apply. They are as follows:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ActionDescription
clickClick with left mouse button
left_clickClick with left mouse button
double_clickDouble click with left mouse button
triple_clickTriple click with left mouse button
right_clickClick with right mouse button
\n

The supported mouse button types are left, right, and middle.

\n

Examples

\n

Both Robot Framework and Python examples follow.

\n

The library must be imported first.

\n
\n*** Settings ***\nLibrary    RPA.Desktop\n
\n
\nfrom RPA.Desktop import Desktop\ndesktop = Desktop()\n
\n

The library can open applications and interact with them through\nkeyboard and mouse events.

\n
\n*** Keywords ***\nWrite entry in accounting\n    [Arguments]    ${entry}\n    Open application    erp_client.exe\n    Click         image:%{ROBOT_ROOT}/images/create.png\n    Type text     ${entry}\n    Press keys    ctrl    s\n    Press keys    enter\n
\n
\ndef write_entry_in_accounting(entry):\n    desktop.open_application("erp_client.exe")\n    desktop.click(f"image:{ROBOT_ROOT}/images/create.png")\n    desktop.type_text(entry)\n    desktop.press_keys("ctrl", "s")\n    desktop.press_keys("enter")\n
\n

Targeting can be currently done using coordinates (absolute or relative),\nbut using template matching is preferred.

\n
\n*** Keywords ***\nWrite to field\n    [Arguments]  ${text}\n    Move mouse   image:input_label.png\n    Move mouse   offset:200,0\n    Click\n    Type text    ${text}\n    Press keys   enter\n
\n
\ndef write_to_field(text):\n    desktop.move_mouse("image:input_label.png")\n    desktop.move_mouse("offset:200,0")\n    desktop.click()\n    desktop.type_text(text)\n    desktop.press_keys("enter")\n
\n

Elements can be found by text too.

\n
\n*** Keywords ***\nClick New\n    Click       ocr:New\n
\n
\ndef click_new():\n    desktop.click('ocr:"New"')\n
\n

It is recommended to wait for the elements to be visible before\ntrying any interaction. You can also pass region objects as locators.

\n
\n*** Keywords ***\nClick New\n    ${region}=  Wait For element  ocr:New\n    Click       ${region}\n
\n
\ndef click_new():\n    region = desktop.wait_for_element("ocr:New")\n    desktop.click(region)\n
\n

Another way to find elements by offsetting from an anchor:

\n
\n*** Keywords ***\nType Notes\n    [Arguments]        ${text}\n    Click With Offset  ocr:Notes  500  0\n    Type Text          ${text}\n
\n
\ndef type_notes(text):\n    desktop.click_with_offset("ocr:Notes", 500, 0)\n    desktop.type_text(text)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:08", + "generated": "2023-11-01 16:12:57", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -45472,7 +45472,7 @@ "name": "RPA.Desktop.Clipboard", "doc": "
\n

DEPRECATED!! Use library RPA.Desktop's clipboard functionality instead.

\n

Clipboard is a library for managing clipboard - copy text to,\npaste text from, and clear clipboard contents.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.Desktop.Clipboard\n\n*** Tasks ***\nClipping\n    Copy To Clipboard   Text from Robot to clipboard\n    ${var}=             Paste From Clipboard\n    Clear Clipboard\n
\n

Python

\n
\nfrom RPA.Desktop.Clipboard import Clipboard\n\nclip = Clipboard()\nclip.copy_to_clipboard('Text from Python to clipboard')\ntext = clip.paste_from_clipboard()\nprint(f"clipboard had text: '{text}'")\nclip.clear_clipboard()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:09", + "generated": "2023-11-01 16:12:57", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -45530,7 +45530,7 @@ "name": "RPA.Desktop.OperatingSystem", "doc": "
\n

OperatingSystem is a cross-platform library for managing\ncomputer properties and actions.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.Desktop.OperatingSystem\n\n*** Tasks ***\nGet computer information\n    ${boot_time}=   Get Boot Time  as_datetime=${TRUE}\n    ${machine}=     Get Machine Name\n    ${username}=    Get Username\n    &{memory}=      Get Memory Stats\n    Log Many        ${memory}\n
\n

Python

\n
\nfrom RPA.Desktop.OperatingSystem import OperatingSystem\n\ndef get_computer_information():\n    ops = OperatingSystem()\n    print(f"Boot time    : { ops.get_boot_time(as_datetime=True) }"\n          f"Machine name : { ops.get_machine_name() }"\n          f"Username     : { ops.get_username() }"\n          f"Memory       : { ops.get_memory_stats() }")\n\nif __name__ == "__main__":\n    get_computer_information()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:09", + "generated": "2023-11-01 16:12:57", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -45794,7 +45794,7 @@ "name": "RPA.Desktop.Windows", "doc": "
\n

Windows is a library for managing the Windows operating system.

\n

DEPRECATION WARNING! USE RPA.Windows library instead.

\n

For Windows desktop automation Robocorp recommends the RPA.Windows library.

\n

No further updates will be released for this library and new functionality will continue\nto be developed in RPA.Windows library.

\n

Running Windows applications

\n

Windows applications can be started in several ways. The library supports\nthe following keywords:

\n
    \n
  • Open Application (dispatch Office applications)
  • \n
  • Open File (open the file as process which opens the associated application)
  • \n
  • Open Executable (uses pywinauto start)
  • \n
  • Open Using Run Dialog (uses Windows run dialog)
  • \n
  • Open From Search (uses Windows search dialog)
  • \n
\n

Locators

\n

Locator is used to identify the element for interaction - usually for a mouse click.

\n

Locators can investigated for application once it has been opened by calling\nthe keyword get_windows_elements which can store locator information into JSON file\nand screenshot of the element into an image file.

\n

Identifying locator

\n

The element needs to be identified by a unique method, for example, "Three" for button 3\nin the Calculator application. It can be given either as Three or name:Three.

\n

Possible search criterias:

\n
    \n
  • name
  • \n
  • class (class_name)
  • \n
  • type (control_type)
  • \n
  • id (automation_id)
  • \n
  • any if none was defined
  • \n
\n

The current method of inspecting elements on Windows is inspect.exe which is part\nof Windows SDK.

\n

Keyboard

\n

The keyword send_keys can be used to send keys to the active window. The keyword\ntype_keys sends keys to the active window element.

\n

Special key codes are documented on pywinauto\ndocumentation page.

\n

FAQ

\n
    \n
  1. I see error message AttributeError: module 'win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9' has no attribute 'CLSIDToClassMap'
  2. \n
\n
    \n
  1. From PowerShell run this command: Remove-Item -path $env:LOCALAPPDATATempgen_py -recurse
  2. \n
\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary          RPA.Desktop.Windows\nSuite Teardown   Close all applications\n\n*** Tasks ***\nOpen Calculator using run dialog\n    ${result}=              Open using run dialog    calc.exe   Calculator\n    ${result}=              Get Window Elements\n    Send Keys               5*2=\n    ${result}=              Get element             partial name:Display is\n    Log Many                ${result}\n    ${result}=              Get element rich text   id:CalculatorResults\n    Should Be Equal As Strings  ${result}  Display is 10\n    ${result}=              Get element rectangle   partial name:Display is\n    ${result}=              Is Element Visible      CalculatorResults\n    ${result}=              Is Element Enabled      partial name:Display is\n
\n

Python

\n
\nfrom RPA.Desktop.Windows import Windows\n\nwin = Windows()\n\ndef open_calculator():\n    win.open_from_search("calc.exe", "Calculator")\n    elements = win.get_window_elements()\n\ndef make_calculations(expression):\n    win.send_keys(expression)\n    result = win.get_element_rich_text('id:CalculatorResults')\n    return int(result.strip('Display is '))\n\nif __name__ == "__main__":\n    open_calculator()\n    exp = '5*2='\n    result = make_calculations(exp)\n    print(f"Calculation result of '{exp}' is '{result}'")\n    win.close_all_applications()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:10", + "generated": "2023-11-01 16:12:57", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -48205,7 +48205,7 @@ "name": "RPA.Dialogs", "doc": "
\n

NOTICE: The Dialogs library is now marked for deprecation.\nThe library will be replaced by Assistant. In order to get more\ninformation about the changes and the migration guide, please\ncheck the release note: https://updates.robocorp.com/release/Gfko5-rpaframework-2200

\n

The Dialogs library provides a way to display information to a user\nand request input while a robot is running. It allows building processes\nthat require human interaction.

\n

Some examples of use-cases could be the following:

\n
    \n
  • Displaying generated files after an execution is finished
  • \n
  • Displaying dynamic and user-friendly error messages
  • \n
  • Requesting passwords or other personal information
  • \n
  • Automating based on files created by the user
  • \n
\n

Workflow

\n

The library is used to create dialogs, i.e. windows, that can be composed\non-the-fly based on the current state of the execution.

\n

The content of the dialog is defined by calling relevant keywords\nsuch as Add text or Add file input. When the dialog is opened\nthe content is generated based on the previous keywords.

\n

Depending on the way the dialog is started, the execution will either\nblock or continue while the dialog is open. During this time the user\ncan freely edit any possible input fields or handle other tasks.

\n

After the user has successfully submitted the dialog, any possible\nentered input will be returned as a result. The user also has the option\nto abort by closing the dialog window forcefully.

\n

Results

\n

Each input field has a required name argument that controls what\nthe value will be called in the result object. Each input name should be\nunique, and must not be called submit as that is reserved for the submit\nbutton value.

\n

A result object is a Robot Framework DotDict, where each key\nis the name of the input field and the value is what the user entered.\nThe data type of each field depends on the input. For instance,\na text input will have a string, a checkbox will have a boolean, and\na file input will have a list of paths.

\n

If the user closed the window before submitting or there was an internal\nerror, the library will raise an exception and the result values will\nnot be available.

\n

Examples

\n
\nSuccess dialog\n    Add icon      Success\n    Add heading   Your orders have been processed\n    Add files     *.txt\n    Run dialog    title=Success\n\nFailure dialog\n    Add icon      Failure\n    Add heading   There was an error\n    Add text      The assistant failed to login to the Enterprise portal\n    Add link      https://robocorp.com/docs    label=Troubleshooting guide\n    Run dialog    title=Failure\n\nLarge dialog\n    Add heading    A real chonker   size=large\n    Add image      fat-cat.jpeg\n    Run dialog     title=Large    height=1024    width=1024\n\nConfirmation dialog\n    Add icon      Warning\n    Add heading   Delete user ${username}?\n    Add submit buttons    buttons=No,Yes    default=Yes\n    ${result}=    Run dialog\n    IF   $result.submit == "Yes"\n        Delete user    ${username}\n    END\n\nInput form dialog\n    Add heading       Send feedback\n    Add text input    email    label=E-mail address\n    Add text input    message\n    ...    label=Feedback\n    ...    placeholder=Enter feedback here\n    ...    rows=5\n    ${result}=    Run dialog\n    Send feedback message    ${result.email}  ${result.message}\n\nDialog as progress indicator\n    Add heading    Please wait while I open a browser\n    ${dialog}=     Show dialog    title=Please wait    on_top=${TRUE}\n    Open available browser    https://robocorp.com\n    Close dialog   ${dialog}\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:10", + "generated": "2023-11-01 16:12:58", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -49492,7 +49492,7 @@ "name": "RPA.DocumentAI", "doc": "
\n

Wrapper library offering generic keywords for initializing, scanning and\nretrieving results as fields from documents (PDF, PNG etc.).

\n

Library requires at the minimum rpaframework version 19.0.0.

\n

This is a helper facade for the following libraries:

\n
    \n
  • RPA.Cloud.Google (requires rpaframework-google)
  • \n
  • RPA.DocumentAI.Base64AI
  • \n
  • RPA.DocumentAI.Nanonets
  • \n
\n

Where the following steps are required:

\n
    \n
  1. Engine initialization: Init Engine
  2. \n
  3. Document scan: Predict
  4. \n
  5. Result retrieval: Get Result
  6. \n
\n

So no matter the engine you're using, the very same keywords can be used, as only\nthe passed parameters will differ (please check the docs on each library for\nparticularities). Once initialized, you can jump between the engines with\nSwitch Engine. Before scanning documents, you must configure the service first,\nwith a model to scan the files with and an API key for authorizing the access.

\n

See Portal example: https://robocorp.com/portal/robot/robocorp/example-document-ai

\n

Example: Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.DocumentAI\n\n*** Tasks ***\nScan Documents\n    Init Engine    base64ai    vault=document_ai:base64ai\n    Init Engine    nanonets    vault=document_ai:nanonets\n\n    Switch Engine   base64ai\n    Predict    invoice.png\n    ${data} =    Get Result\n    Log List    ${data}\n\n    Switch Engine   nanonets\n    Predict    invoice.png      model=858e4b37-6679-4552-9481-d5497dfc0b4a\n    ${data} =    Get Result\n    Log List    ${data}\n
\n

Example: Python

\n
\nfrom RPA.DocumentAI import DocumentAI, EngineName\n\nlib_docai = DocumentAI()\nlib_docai.init_engine(\n    EngineName.GOOGLE, vault="document_ai:serviceaccount", region="eu"\n)\nlib_docai.predict(\n    "invoice.pdf", model="df1d166771005ff4",\n    project_id="complete-agency-347912", region="eu"\n)\nprint(lib_docai.get_result())\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:10", + "generated": "2023-11-01 16:12:58", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -49807,7 +49807,7 @@ "name": "RPA.DocumentAI.Base64AI", "doc": "
\n

Library to support Base64.ai service for intelligent\ndocument processing (IDP).

\n

Library requires at the minimum rpaframework version 19.0.0.

\n

Service supports identifying fields in the documents, which can be given to the\nservice in multiple different file formats and via URL.

\n

Robot Framework example usage

\n
\n*** Settings ***\nLibrary   RPA.DocumentAI.Base64AI\nLibrary   RPA.Robocorp.Vault\n\n*** Tasks ***\nIdentify document\n    ${secrets}=   Get Secret  base64ai-auth\n    Set Authorization  ${secrets}[email-address]   ${secrets}[apikey]\n    ${results}=  Scan Document File\n    ...   ${CURDIR}${/}invoice.pdf\n    ...   model_types=finance/check/usa,finance/invoice/usa\n    # Scan response contains list of detected models in the document\n    FOR  ${result}  IN  @{results}\n        Log To Console  Model: ${result}[model]\n        Log To Console  Field keys: ${{','.join($result['fields'].keys())}}\n        Log To Console  Fields: ${result}[fields]\n        Log To Console  Text (OCR): ${result}[ocr]\n    END\n
\n

Python example usage

\n
\nfrom RPA.DocumentAI.Base64AI import Base64AI\nfrom RPA.Robocorp.Vault import Vault\n\nsecrets = Vault().get_secret("base64ai-auth")\nbaselib = Base64AI()\nbaselib.set_authorization(secrets["email-address"], secrets["apikey"])\nresult = baselib.scan_document_file(\n    "invoice.pdf",\n    model_types="finance/invoice,finance/check/usa",\n)\nfor r in result:\n    print(f"Model: {r['model']}")\n    for key, props in r["fields"].items():\n        print(f"FIELD {key}: {props['value']}")\n    print(f"Text (OCR): {r['ocr']}")\n
\n

Portal example: https://github.com/robocorp/example-idp-base64

\n
\n", "version": "", - "generated": "2023-11-01 15:54:11", + "generated": "2023-11-01 16:12:58", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -50320,7 +50320,7 @@ "name": "RPA.DocumentAI.DocumentAI", "doc": "
\n

Wrapper library offering generic keywords for initializing, scanning and\nretrieving results as fields from documents (PDF, PNG etc.).

\n

Library requires at the minimum rpaframework version 19.0.0.

\n

This is a helper facade for the following libraries:

\n
    \n
  • RPA.Cloud.Google (requires rpaframework-google)
  • \n
  • RPA.DocumentAI.Base64AI
  • \n
  • RPA.DocumentAI.Nanonets
  • \n
\n

Where the following steps are required:

\n
    \n
  1. Engine initialization: Init Engine
  2. \n
  3. Document scan: Predict
  4. \n
  5. Result retrieval: Get Result
  6. \n
\n

So no matter the engine you're using, the very same keywords can be used, as only\nthe passed parameters will differ (please check the docs on each library for\nparticularities). Once initialized, you can jump between the engines with\nSwitch Engine. Before scanning documents, you must configure the service first,\nwith a model to scan the files with and an API key for authorizing the access.

\n

See Portal example: https://robocorp.com/portal/robot/robocorp/example-document-ai

\n

Example: Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.DocumentAI\n\n*** Tasks ***\nScan Documents\n    Init Engine    base64ai    vault=document_ai:base64ai\n    Init Engine    nanonets    vault=document_ai:nanonets\n\n    Switch Engine   base64ai\n    Predict    invoice.png\n    ${data} =    Get Result\n    Log List    ${data}\n\n    Switch Engine   nanonets\n    Predict    invoice.png      model=858e4b37-6679-4552-9481-d5497dfc0b4a\n    ${data} =    Get Result\n    Log List    ${data}\n
\n

Example: Python

\n
\nfrom RPA.DocumentAI import DocumentAI, EngineName\n\nlib_docai = DocumentAI()\nlib_docai.init_engine(\n    EngineName.GOOGLE, vault="document_ai:serviceaccount", region="eu"\n)\nlib_docai.predict(\n    "invoice.pdf", model="df1d166771005ff4",\n    project_id="complete-agency-347912", region="eu"\n)\nprint(lib_docai.get_result())\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:11", + "generated": "2023-11-01 16:12:58", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -50635,7 +50635,7 @@ "name": "RPA.DocumentAI.Nanonets", "doc": "
\n

Library to support Nanonets service for intelligent document processing (IDP).

\n

Library requires at the minimum rpaframework version 19.0.0.

\n

Service supports identifying fields in the documents, which can be given to the\nservice in multiple different file formats and via URL.

\n

Robot Framework example usage

\n
\n*** Settings ***\nLibrary   RPA.DocumentAI.Nanonets\nLibrary   RPA.Robocorp.Vault\n\n*** Tasks ***\nIdentify document\n    ${secrets}=   Get Secret  nanonets-auth\n    Set Authorization    ${secrets}[apikey]\n    ${result}=    Predict File\n    ...  ${CURDIR}${/}files${/}eckero.jpg\n    ...  ${secrets}[receipts-model-id]\n    ${fields}=    Get Fields From Prediction Result    ${result}\n    FOR    ${field}    IN    @{fields}\n        Log To Console    Label:${field}[label] Text:${field}[ocr_text]\n    END\n    ${tables}=    Get Tables From Prediction Result    ${result}\n    FOR    ${table}    IN    @{tables}\n        FOR    ${rows}    IN    ${table}[rows]\n            FOR    ${row}    IN    @{rows}\n                ${cells}=    Evaluate    [cell['text'] for cell in $row]\n                Log To Console    ROW:${{" | ".join($cells)}}\n            END\n        END\n    END\n
\n

Python example usage

\n
\nfrom RPA.DocumentAI.Nanonets import Nanonets\nfrom RPA.Robocorp.Vault import Vault\n\nsecrets = Vault().get_secret("nanonets-auth")\nnanolib = Nanonets()\nnanolib.set_authorization(secrets["apikey"])\nresult = nanolib.predict_file(file_to_scan, secrets["receipts-model-id"])\nfields = nanolib.get_fields_from_prediction_result(result)\nfor field in fields:\n    print(f"Label: {field['label']} Text: {field['ocr_text']}")\ntables = nanolib.get_tables_from_prediction_result(result)\nfor table in tables:\n    rpatable = Tables().create_table(table["rows"])\n    for row in table["rows"]:\n        cells = [cell["text"] for cell in row]\n        print(f"ROW: {' | '.join(cells)}")\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:11", + "generated": "2023-11-01 16:12:58", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -50933,7 +50933,7 @@ "name": "RPA.Email.Exchange", "doc": "
\n

Exchange is a library for sending, reading, and deleting emails.\nExchange is interfacing with Exchange Web Services (EWS).

\n

For more information about server settings, see\nthis Microsoft support article.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary     RPA.Email.Exchange\n...     vault_name=email_oauth_microsoft    vault_token_key=token\n...     tenant=ztzvn.onmicrosoft.com  # your custom tenant here\nTask Setup      Ensure Auth\n\n*** Variables ***\n${ACCOUNT}              ACCOUNT_NAME\n${RECIPIENT_ADDRESS}    RECIPIENT\n${IMAGES}               myimage.png\n${ATTACHMENTS}          C:${/}files${/}mydocument.pdf\n\n*** Keywords ***\nEnsure Auth\n    ${secrets} =    Get Secret    email_oauth_microsoft\n    RPA.Email.Exchange.Authorize    ${ACCOUNT}\n    ...    is_oauth=${True}  # use the OAuth2 auth code flow (required)\n    ...    client_id=${secrets}[client_id]  # app ID\n    ...    client_secret=${secrets}[client_secret]  # app password\n    ...    token=${secrets}[token]  # token dict (access, refresh, scope etc.)\n\n*** Tasks ***\nTask of sending email\n    Send Message  recipients=${RECIPIENT_ADDRESS}\n    ...           subject=Exchange Message from RPA Robot\n    ...           body=<p>Exchange RPA Robot message body<br><img src='myimage.png'/></p>\n    ...           save=${TRUE}\n    ...           html=${TRUE}\n    ...           images=${IMAGES}\n    ...           cc=EMAIL_ADDRESS\n    ...           bcc=EMAIL_ADDRESS\n    ...           attachments=${ATTACHMENTS}\n\nTask of listing messages\n    # Attachments are saved specifically with a keyword Save Attachments\n    ${messages}=    List Messages\n    FOR    ${msg}    IN    @{messages}\n        Log Many    ${msg}\n        ${attachments}=    Run Keyword If    "${msg}[subject]"=="about my orders"\n        ...    Save Attachments\n        ...    ${msg}\n        ...    save_dir=${CURDIR}${/}savedir\n    END\n    # Using save_dir all attachments in listed messages are saved\n    ${messages}=    List Messages\n    ...    INBOX/Problems/sub1\n    ...    criterion=subject:'about my orders'\n    ...    save_dir=${CURDIR}${/}savedir2\n    FOR    ${msg}    IN    @{messages}\n        Log Many    ${msg}\n    END\n\nTask of moving messages\n    Move Messages    criterion=subject:'about my orders'\n    ...    source=INBOX/Processed Purchase Invoices/sub2\n    ...    target=INBOX/Problems/sub1\n
\n

Python

\n
\nfrom RPA.Email.Exchange import Exchange\nfrom RPA.Robocorp.Vault import Vault\n\nvault_name = "email_oauth_microsoft"\nsecrets = Vault().get_secret(vault_name)\nex_account = "ACCOUNT_NAME"\n\nmail = Exchange(\n    vault_name=vault_name,\n    vault_token_key="token",\n    tenant="ztzvn.onmicrosoft.com"\n)\nmail.authorize(\n    username=ex_account,\n    is_oauth=True,\n    client_id=secrets["client_id"],\n    client_secret=secrets["client_secret"],\n    token=secrets["token"]\n)\nmail.send_message(\n    recipients="RECIPIENT",\n    subject="Message from RPA Python",\n    body="RPA Python message body",\n)\n
\n

OAuth2

\n

The OAuth2 flow is the only way of authorizing at the moment as Microsoft disabled\nentirely the usage of passwords, even App Passwords. And since you have to work\nwith tokens now and because this library has the capability to automatically\nrefresh an expired token, please don't forget to initialize the library with the\nfollowing parameters: vault_name, vault_token_key and tenant.

\n

Learn more on how to use the OAuth2 flow in this Portal robot\nexample-oauth-email.

\n

About criterion parameter

\n

Following table shows possible criterion keys that can be used to filter emails.\nThere apply to all keywords which have criterion parameter.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyEffective search
subjectsubject to match
subject_containssubject to contain
bodybody to match
body_containsbody to contain
sendersender (from) to match
sender_containssender (from) to contain
beforereceived time before this time
afterreceived time after this time
betweenreceived time between start and end
categorycategories to match
category_containscategories to contain
importanceimportance to match
\n

Keys before, after and between at the moment support two\ndifferent timeformats either %d-%m-%Y %H:%M or %d-%m-%Y. These\nkeys also support special string NOW which can be used especially\ntogether with keyword Wait for message  criterion=after:NOW.

\n

When giving time which includes hours and minutes then the whole\ntime string needs to be enclosed into single quotes.

\n
\nbefore:25-02-2022\nafter:NOW\nbetween:'31-12-2021 23:50 and 01-01-2022 00:10'\n
\n

Different criterion keys can be combined.

\n
\nsubject_contains:'new year' between:'31-12-2021 23:50 and 01-01-2022 00:10'\n
\n

Please note that all values in the criterion that contain spaces need\nto be enclosed within single quotes.

\n

In the following example the email subject is going to matched\nonly against new not new year.

\n
\nsubject_contains:new year\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:12", + "generated": "2023-11-01 16:12:59", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -52334,7 +52334,7 @@ "name": "RPA.Email.ImapSmtp", "doc": "
\n

ImapSmtp is a library for sending, reading, and deleting emails.\nImapSmtp is interfacing with SMTP and IMAP protocols.

\n

*About criteria argument*

\n

Various keywords like List Messages and Move Messages have keyword\nargument called criterion which can be used to filter emails according\nto given criteria.

\n

Syntax needs to according to specification and more information about that\ncan be read from https://robocorp.com/docs/development-guide/email/sending-emails-with-gmail-smtp#listing-email-messages-by-criteria

\n

Troubleshooting

\n
    \n
  • \n
    Authentication error with GMail - "Application-specific password required"
    \n

    See: https://support.google.com/mail/answer/185833?hl=en

    \n
    \n
    \n
  • \n
  • \n
    More secure apps (XOAUTH2 protocol) - Use the OAuth2 flow as in this Portal robot:
    \n

    example-oauth-email

    \n

    Make sure to specify a provider (and optionally a tenant) when importing\nthe library and planning to use this flow.

    \n
    \n
    \n
  • \n
\n

Examples

\n

Robot Framework

\n

It is highly recommended to secure your passwords and take care\nthat they are not stored in version control by mistake.\nSee RPA.Robocorp.Vault to see how to store secrets in\nRobocorp Vault.

\n

When sending HTML content with IMG tags, the src filenames must match\nthe base image name given with the images parameter.

\n
\n*** Settings ***\nLibrary     RPA.Email.ImapSmtp   smtp_server=smtp.gmail.com  smtp_port=587\nTask Setup  Authorize  account=${GMAIL_ACCOUNT}  password=${GMAIL_PASSWORD}\n\n*** Variables ***\n${GMAIL_ACCOUNT}        ACCOUNT_NAME\n${GMAIL_PASSWORD}       APP_PASSWORD\n${RECIPIENT_ADDRESS}    RECIPIENT\n${BODY_IMG1}            ${IMAGEDIR}${/}approved.png\n${BODY_IMG2}            ${IMAGEDIR}${/}invoice.png\n${EMAIL_BODY}     <h1>Heading</h1><p>Status: <img src='approved.png' alt='approved image'/></p>\n...               <p>INVOICE: <img src='invoice.png' alt='invoice image'/></p>\n\n*** Tasks ***\nSending email\n    Send Message  sender=${GMAIL_ACCOUNT}\n    ...           recipients=${RECIPIENT_ADDRESS}\n    ...           subject=Message from RPA Robot\n    ...           body=RPA Robot message body\n\nSending HTML Email With Image\n    [Documentation]     Sending email with HTML content and attachment\n    Send Message\n    ...                 sender=${GMAIL_ACCOUNT}\n    ...                 recipients=${RECIPIENT_ADDRESS}\n    ...                 subject=HTML email with body images (2) plus one attachment\n    ...                 body=${EMAIL_BODY}\n    ...                 html=${TRUE}\n    ...                 images=${BODY_IMG1}, ${BODY_IMG2}\n    ...                 attachments=example.png\n
\n

Python

\n
\nfrom RPA.Email.ImapSmtp import ImapSmtp\n\ngmail_account = "ACCOUNT_NAME"\ngmail_password = "APP_PASSWORD"\n\nmail = ImapSmtp(smtp_server="smtp.gmail.com", smtp_port=587)\nmail.authorize(account=gmail_account, password=gmail_password)\nmail.send_message(\n    sender=gmail_account,\n    recipients="RECIPIENT",\n    subject="Message from RPA Python",\n    body="RPA Python message body",\n)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:12", + "generated": "2023-11-01 16:12:59", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -54523,7 +54523,7 @@ "name": "RPA.Excel.Application", "doc": "
\n

Excel.Application is a library for controlling the Excel application.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary             RPA.Excel.Application\nTask Setup          Open Application\nTask Teardown       Quit Application\n\n*** Tasks ***\nManipulate Excel application\n    Open Workbook           workbook.xlsx\n    Set Active Worksheet    sheetname=new stuff\n    Write To Cells          row=1\n    ...                     column=1\n    ...                     value=my data\n    Save Excel\n\nRun Excel Macro\n    Open Workbook   orders_with_macro.xlsm\n    Run Macro       Sheet1.CommandButton1_Click\n\nExport Workbook as PDF\n    Open Workbook           workbook.xlsx\n    Export as PDF           workbook.pdf\n
\n

Python

\n
\nfrom RPA.Excel.Application import Application\n\napp = Application()\n\napp.open_application()\napp.open_workbook('workbook.xlsx')\napp.set_active_worksheet(sheetname='new stuff')\napp.write_to_cells(row=1, column=1, value='new data')\napp.save_excel()\napp.quit_application()\n
\n

Caveats

\n

This library works on a Windows operating system with UI enabled only, and you must\nensure that you open the app first with Open Application before running any\nother relevant keyword which requires to operate on an open app. The application is\nautomatically closed at the end of the task execution, so this can be changed by\nimporting the library with the autoexit=${False} setting.

\n
\n*** Settings ***\nLibrary     RPA.Excel|Outlook|Word.Application    autoexit=${False}\n
\n

If you're running the Process by Control Room through a custom self-hosted Worker\nservice, then please make sure that you enable an RDP session by ticking "Use\nDesktop Connection" under the Step configuration.

\n

If you still encounter issues with opening a document, please ensure that file can\nbe opened first manually and dismiss any alert potentially blocking the process.

\n

Check the documentation below for more info:

\n\n
\n", "version": "", - "generated": "2023-11-01 15:54:12", + "generated": "2023-11-01 16:12:59", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -55179,7 +55179,7 @@ "name": "RPA.Excel.Files", "doc": "
\n

The Excel.Files library can be used to read and write Excel\nfiles without the need to start the actual Excel application.

\n

It supports both legacy .xls files and modern .xlsx files.

\n

Note: To run macros or load password protected worksheets,\nplease use the Excel application library.

\n

Examples

\n

Robot Framework

\n

A common use-case is to load an existing Excel file as a table,\nwhich can be iterated over later in a Robot Framework keyword or task:

\n
\n*** Settings ***\nLibrary    RPA.Tables\nLibrary    RPA.Excel.Files\n\n*** Keywords ***\nRead orders as table\n    Open workbook    ${ORDERS_FILE}\n    ${worksheet}=    Read worksheet   header=${TRUE}\n    ${orders}=       Create table     ${worksheet}\n    [Return]         ${orders}\n    [Teardown]       Close workbook\n
\n

Processing all worksheets in the Excel file and checking row count:

\n
\n*** Settings ***\nLibrary    RPA.Excel.Files\n\n*** Variables ***\n${EXCEL_FILE}   /path/to/excel.xlsx\n\n*** Tasks ***\nRows in the sheet\n    [Setup]      Open Workbook    ${EXCEL_FILE}\n    @{sheets}=   List Worksheets\n    FOR  ${sheet}  IN   @{sheets}\n        ${count}=  Get row count in the sheet   ${sheet}\n        Log   Worksheet '${sheet}' has ${count} rows\n    END\n\n*** Keywords ***\nGet row count in the sheet\n    [Arguments]      ${SHEET_NAME}\n    ${sheet}=        Read Worksheet   ${SHEET_NAME}\n    ${rows}=         Get Length  ${sheet}\n    [Return]         ${rows}\n
\n

Creating a new Excel file with a dictionary:

\n
\n*** Tasks ***\nCreating new Excel\n    Create Workbook  my_new_excel.xlsx\n    FOR    ${index}    IN RANGE    20\n        &{row}=       Create Dictionary\n        ...           Row No   ${index}\n        ...           Amount   ${index * 25}\n        Append Rows to Worksheet  ${row}  header=${TRUE}\n    END\n    Save Workbook\n
\n

Creating a new Excel file with a list:

\n
\n*** Variables ***\n@{heading}   Row No   Amount\n@{rows}      ${heading}\n\n*** Tasks ***\nCreating new Excel\n    Create Workbook  my_new_excel.xlsx\n    FOR    ${index}    IN RANGE   1  20\n        @{row}=         Create List   ${index}   ${index * 25}\n        Append To List  ${rows}  ${row}\n    END\n    Append Rows to Worksheet  ${rows}\n    Save Workbook\n
\n

Python

\n

The library can also be imported directly into Python.

\n
\nfrom RPA.Excel.Files import Files\n\ndef read_excel_worksheet(path, worksheet):\n    lib = Files()\n    lib.open_workbook(path)\n    try:\n        return lib.read_worksheet(worksheet)\n    finally:\n        lib.close_workbook()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:13", + "generated": "2023-11-01 16:13:00", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -57111,7 +57111,7 @@ "name": "RPA.FTP", "doc": "
\n

FTP library can be used to access an FTP server,\nand interact with files.

\n

The library is based on Python's built-in ftplib.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.FTP\n\n*** Variables ***\n${HOST}       127.0.0.1\n${PORT}       27345\n${USER}       user\n${PASS}       12345\n\n*** Tasks ***\nList files on the server directory\n    Connect   ${HOST}  ${PORT}  ${USER}  ${PASS}\n    @{files}  List Files\n    FOR  ${file}  IN  @{files}\n        Log  ${file}\n    END\n
\n

Python

\n
\nfrom RPA.FTP import FTP\n\nlibrary = FTP()\nlibrary.connect('127.0.0.1', 27345, 'user', '12345')\nfiles = library.list_files()\nfor f in files:\n    print(f)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:13", + "generated": "2023-11-01 16:13:01", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -57714,7 +57714,7 @@ "name": "RPA.FileSystem", "doc": "
\n

The FileSystem library can be used to interact with files and directories\non the local computer. It can inspect and list files, remove and create them,\nread contents from files, and write data out.

\n

It shadows the built-in OperatingSystem library but contains keywords\nwhich are more RPA-oriented.

\n

Examples

\n

Robot Framework

\n

The library allows, for instance, iterating over files and inspecting them.

\n
\n*** Settings ***\nLibrary    RPA.FileSystem\n\n*** Keywords ***\nDelete large files\n    ${files}=    List files in directory    archive/orders/\n    FOR    ${file}  IN  @{FILES}\n        Run keyword if    ${file.size} > 10**8    Remove file    ${file}\n    END\n\nRead process output\n    Start external program\n    Wait until modified    process.log\n    ${output}=  Read file  process.log\n    [Return]    ${output}\n
\n

Python

\n

The library can also be used inside Python.

\n
\nfrom RPA.FileSystem import FileSystem\n\ndef move_to_archive():\n    lib = FileSystem()\n\n    matches = lib.find_files("**/*.xlsx")\n    if matches:\n        lib.create_directory("archive")\n        lib.move_files(matches, "archive")\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:13", + "generated": "2023-11-01 16:13:01", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -59372,7 +59372,7 @@ "name": "RPA.HTTP", "doc": "
\n

The RPA.HTTP library extends functionality of the RequestsLibrary.\nSee that documentation for several examples of how to issue GET\nrequests and utilize the returned result objects.

\n

This extension provides helper keywords to get an HTTP resource on a\nsession. The HTTP Get and Download keywords will initiate a\nsession if one does not exist for the provided URL, or use an existing\nsession. When using these keywords, you do not need to manage\nsessions with Create Session. Session management is still\nrequired if you use the underlying session keywords, e.g.,\n* On Session.

\n
\n", "version": "0.9.5", - "generated": "2023-11-01 15:54:14", + "generated": "2023-11-01 16:13:01", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -59543,10 +59543,10 @@ "name": "retry_method_list", "types": [], "typedocs": {}, - "defaultValue": "['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']", + "defaultValue": "['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "retry_method_list=['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']" + "repr": "retry_method_list=['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']" } ], "doc": "
\n

Create Session: create a HTTP session to a server

\n

url Base url of the server

\n

alias Robot Framework alias to identify the session

\n

headers Dictionary of default headers

\n

cookies Dictionary of cookies

\n

client_certs ['client certificate', 'client key'] PEM files containing the client key and certificate

\n

timeout Connection timeout

\n
\n
proxies Dictionary mapping protocol or protocol and host to the URL of the proxy
\n
(e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'})
\n
verify Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.
\n
Defaults to False.
\n
debug Enable http verbosity option more information
\n
https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel
\n
max_retries Number of maximum retries each connection should attempt.
\n
By default it will retry 3 times in case of connection errors only.\nA 0 value will disable any kind of retries regardless of other retry settings.\nIn case the number of retries is reached a retry exception is raised.
\n
\n

disable_warnings Disable requests warning useful when you have large number of testcases

\n
\n
backoff_factor Introduces a delay time between retries that is longer after each retry.
\n
eg. if backoff_factor is set to 0.1\nthe sleep between attemps will be: 0.0, 0.2, 0.4\nMore info here: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html
\n
retry_method_list List of uppercased HTTP method verbs where retries are allowed.
\n
By default retries are allowed only on HTTP requests methods that are considered to be\nidempotent (multiple requests with the same parameters end with the same state).\neg. set to ['POST', 'GET'] to retry only those kind of requests.
\n
retry_status_list List of integer HTTP status codes that, if returned, a retry is attempted.
\n
eg. set to [502, 503] to retry requests if those status are returned.\nNote that max_retries must be greater than 0.
\n
\n
\n", @@ -59679,10 +59679,10 @@ "name": "retry_method_list", "types": [], "typedocs": {}, - "defaultValue": "['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']", + "defaultValue": "['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "retry_method_list=['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']" + "repr": "retry_method_list=['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']" } ], "doc": "
\n

Create Session: create a HTTP session to a server

\n

url Base url of the server

\n

alias Robot Framework alias to identify the session

\n

headers Dictionary of default headers

\n

cookies Dictionary of cookies

\n
\n
auth A Custom Authentication object to be passed on to the requests library.
\n
http://docs.python-requests.org/en/master/user/advanced/#custom-authentication
\n
\n

timeout Connection timeout

\n
\n
proxies Dictionary mapping protocol or protocol and host to the URL of the proxy
\n
(e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'})
\n
verify Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.
\n
Defaults to False.
\n
debug Enable http verbosity option more information
\n
https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel
\n
max_retries Number of maximum retries each connection should attempt.
\n
By default it will retry 3 times in case of connection errors only.\nA 0 value will disable any kind of retries regardless of other retry settings.\nIn case the number of retries is reached a retry exception is raised.
\n
\n

disable_warnings Disable requests warning useful when you have large number of testcases

\n
\n
backoff_factor Introduces a delay time between retries that is longer after each retry.
\n
eg. if backoff_factor is set to 0.1\nthe sleep between attemps will be: 0.0, 0.2, 0.4\nMore info here: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html
\n
retry_method_list List of uppercased HTTP method verbs where retries are allowed.
\n
By default retries are allowed only on HTTP requests methods that are considered to be\nidempotent (multiple requests with the same parameters end with the same state).\neg. set to ['POST', 'GET'] to retry only those kind of requests.
\n
retry_status_list List of integer HTTP status codes that, if returned, a retry is attempted.
\n
eg. set to [502, 503] to retry requests if those status are returned.\nNote that max_retries must be greater than 0.
\n
\n
\n", @@ -59815,10 +59815,10 @@ "name": "retry_method_list", "types": [], "typedocs": {}, - "defaultValue": "['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']", + "defaultValue": "['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "retry_method_list=['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']" + "repr": "retry_method_list=['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']" } ], "doc": "
\n

Create Session: create a HTTP session to a server

\n

url Base url of the server

\n

alias Robot Framework alias to identify the session

\n

headers Dictionary of default headers

\n

cookies Dictionary of cookies

\n

auth ['DOMAIN', 'username', 'password'] for NTLM Authentication

\n

timeout Connection timeout

\n
\n
proxies Dictionary mapping protocol or protocol and host to the URL of the proxy
\n
(e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'})
\n
verify Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.
\n
Defaults to False.
\n
debug Enable http verbosity option more information
\n
https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel
\n
max_retries Number of maximum retries each connection should attempt.
\n
By default it will retry 3 times in case of connection errors only.\nA 0 value will disable any kind of retries regardless of other retry settings.\nIn case the number of retries is reached a retry exception is raised.
\n
\n

disable_warnings Disable requests warning useful when you have large number of testcases

\n
\n
backoff_factor Introduces a delay time between retries that is longer after each retry.
\n
eg. if backoff_factor is set to 0.1\nthe sleep between attemps will be: 0.0, 0.2, 0.4\nMore info here: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html
\n
retry_method_list List of uppercased HTTP method verbs where retries are allowed.
\n
By default retries are allowed only on HTTP requests methods that are considered to be\nidempotent (multiple requests with the same parameters end with the same state).\neg. set to ['POST', 'GET'] to retry only those kind of requests.
\n
retry_status_list List of integer HTTP status codes that, if returned, a retry is attempted.
\n
eg. set to [502, 503] to retry requests if those status are returned.\nNote that max_retries must be greater than 0.
\n
\n
\n", @@ -59951,10 +59951,10 @@ "name": "retry_method_list", "types": [], "typedocs": {}, - "defaultValue": "['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']", + "defaultValue": "['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "retry_method_list=['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']" + "repr": "retry_method_list=['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']" } ], "doc": "
\n

Create Session: create a HTTP session to a server

\n

url Base url of the server

\n

alias Robot Framework alias to identify the session

\n

headers Dictionary of default headers

\n

cookies Dictionary of cookies

\n

auth ['DOMAIN', 'username', 'password'] for NTLM Authentication

\n

timeout Connection timeout

\n
\n
proxies Dictionary mapping protocol or protocol and host to the URL of the proxy
\n
(e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'})
\n
verify Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.
\n
Defaults to False.
\n
debug Enable http verbosity option more information
\n
https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel
\n
max_retries Number of maximum retries each connection should attempt.
\n
By default it will retry 3 times in case of connection errors only.\nA 0 value will disable any kind of retries regardless of other retry settings.\nIn case the number of retries is reached a retry exception is raised.
\n
\n

disable_warnings Disable requests warning useful when you have large number of testcases

\n
\n
backoff_factor Introduces a delay time between retries that is longer after each retry.
\n
eg. if backoff_factor is set to 0.1\nthe sleep between attemps will be: 0.0, 0.2, 0.4\nMore info here: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html
\n
retry_method_list List of uppercased HTTP method verbs where retries are allowed.
\n
By default retries are allowed only on HTTP requests methods that are considered to be\nidempotent (multiple requests with the same parameters end with the same state).\neg. set to ['POST', 'GET'] to retry only those kind of requests.
\n
retry_status_list List of integer HTTP status codes that, if returned, a retry is attempted.
\n
eg. set to [502, 503] to retry requests if those status are returned.\nNote that max_retries must be greater than 0.
\n
\n
\n", @@ -60087,10 +60087,10 @@ "name": "retry_method_list", "types": [], "typedocs": {}, - "defaultValue": "['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']", + "defaultValue": "['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "retry_method_list=['GET', 'OPTIONS', 'TRACE', 'DELETE', 'HEAD', 'PUT']" + "repr": "retry_method_list=['PUT', 'TRACE', 'OPTIONS', 'HEAD', 'GET', 'DELETE']" } ], "doc": "
\n

Create Session: create a HTTP session to a server

\n

alias Robot Framework alias to identify the session

\n

url Base url of the server

\n

headers Dictionary of default headers

\n

cookies Dictionary of cookies

\n

auth List of username & password for HTTP Basic Auth

\n

timeout Connection timeout

\n
\n
proxies Dictionary mapping protocol or protocol and host to the URL of the proxy
\n
(e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'})
\n
\n

verify Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.

\n
\n
debug Enable http verbosity option more information
\n
https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel
\n
max_retries Number of maximum retries each connection should attempt.
\n
By default it will retry 3 times in case of connection errors only.\nA 0 value will disable any kind of retries regardless of other retry settings.\nIn case the number of retries is reached a retry exception is raised.
\n
\n

disable_warnings Disable requests warning useful when you have large number of testcases

\n
\n
backoff_factor Introduces a delay time between retries that is longer after each retry.
\n
eg. if backoff_factor is set to 0.1\nthe sleep between attemps will be: 0.0, 0.2, 0.4\nMore info here: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html
\n
retry_method_list List of uppercased HTTP method verbs where retries are allowed.
\n
By default retries are allowed only on HTTP requests methods that are considered to be\nidempotent (multiple requests with the same parameters end with the same state).\neg. set to ['POST', 'GET'] to retry only those kind of requests.
\n
retry_status_list List of integer HTTP status codes that, if returned, a retry is attempted.
\n
eg. set to [502, 503] to retry requests if those status are returned.\nNote that max_retries must be greater than 0.
\n
\n
\n", @@ -61469,7 +61469,7 @@ "name": "RPA.Hubspot", "doc": "
\n

Hubspot is a library for accessing HubSpot using REST API. It\nextends hubspot-api-client.

\n

Current features of this library focus on retrieving CRM object data\nfrom HubSpot via API. For additional information, see\nUnderstanding the CRM.

\n
\n

Using Date Times When Searching

\n

When using date times with the Hubspot API, you must provide\nthem as Unix-style epoch timestamps (with milliseconds), which can be obtained\nusing the DateTime library's Convert Date with the\nargument result_format=epoch. The resulting timestamp string\nwill be a float, but the API only accepts integers, so you must\nmultiply the resulting timestamp by 1,000 and then round it to\nthe nearest integar to include in API calls (i.e., the resulting\ninteger sent to the API must have 13 digits as of March 18, 2022).

\n

Robot framework example usage:

\n
\n*** Settings ***\nLibrary     DateTime\nLibrary     RPA.Hubspot\nTask Setup  Authorize Hubspot\n\n*** Tasks ***\nSearch with date\n    ${yesterday}=    Get current date    increment=-24h   result_format=epoch\n    ${yesterday_hs_ts}=    Evaluate    round(${yesterday} * 1000)\n    ${deals}=    Search for objects    DEALS\n    ...    hs_lastmodifieddate    GTE    ${yesterday_hs_ts}\n
\n

Python example usage

\n
\nfrom robot.libraries.DateTime import get_current_date, subtract_time_from_date\nfrom RPA.Hubspot import Hubspot\nfrom RPA.Robocorp.Vault import Vault\n\nsecrets = Vault().get_secret("hubspot")\n\nhs = Hubspot(hubspot_apikey=secrets["api_key"])\nyesterday = round(\n    subtract_time_from_date(get_current_date(), "24h", result_format="epoch") * 1000\n)\ndeals = hs.search_for_objects("DEALS", "hs_lastmodifieddate", "GTE", yesterday)\nprint(deals)\n
\n
\n
\n

Batch Inputs

\n

When retrieving information, the library automatically batches requests\nthat are provided as lists, see Get object keyword for an example,\nbut when wishing to create or update many objects, the library provides\na batching system.

\n

In order to start a batch, you must first call the Create new batch\nkeyword. This initializes a new batch to accept inputs. If a batch\nalready exists when you call this keyword, it will be lost and a new\nblank one will be started.

\n

Once the batch has been initialized, you can add inputs one at a time with\nAdd input to batch or many at a time with Extend batch with inputs.

\n

In order to finally send the batch to HubSpot, you must call\nExecute batch. The final keyword will return the created or updated\nobjects from HubSpot. New object IDs can be obtained from the id\nproperty, see the SimplePublicObject reference.

\n

Robot framework example:

\n
\n*** Settings ***\nLibrary         RPA.Hubspot\nLibrary         RPA.Robocorp.Vault\nTask Setup      Authorize Hubspot\n\n*** Tasks ***\nCreate objects via batch\n    Create new batch\n    Add input to batch    name=Nokia    country=Finland\n    Add input to batch    name=Google    country=USA\n    ${new_companies}=    Execute batch\n    Log    The first new company added has the new id ${{$new_companies[0].id}}\n\n*** Keywords ***\nAuthorize Hubspot\n    ${secrets}=    Get secret    hubspot\n    Auth with api key    ${secrets}[API_KEY]\n
\n

Python example:

\n

NOTE: When executing a batch input in Python, you can directly import the\nBatchInputFactory class to use to create your batch input before\nexecuting the batch.

\n
\nfrom RPA.Hubspot import Hubspot, BatchInputFactory, BatchMode\nfrom RPA.Robocorp.Vault import RobocorpVault\n\n\nvault = RobocorpVault()\nsecrets = vault.get_secret("hubspot")\n\nhs = Hubspot(secrets["API_KEY"])\n\nbatch = BatchInputFactory(BatchMode.UPDATE, "company")\nbatch.extend_inputs(\n    [\n        {"name": "Nokia's New Name", "city": "Espoo"},\n        {"name": "Alphabet", "city": "Mountain View"},\n    ],\n    ["1001", "1002"],\n)\nhs.batch_input = batch\nupdated_companies = hs.execute_batch()\nprint(\n    "Companies have been updated:\\\\n" +\n    "\\\\n".join([str(c) for c in updated_companies])\n)\n
\n
\n
\n

Information Caching

\n

This library loads custom object schemas and pipelines into memory\nthe first time when keywords using them are called. These cached versions\nare recalled unless the use_cache is set to False, where available.

\n
\n
\n

Custom Object Types

\n

All keywords that request a parameter of object_type can accept\ncustom object type names as long as they are properly configured in\nHubSpot. The system will lookup the custom object ID using the\nprovided name against the configured name or one of the configured\nlabels (e.g., "singular" and "plural" types of the name).

\n
\n
\n

HubSpot Object Reference

\n

This section describes the types of objects returned by this Library\nand their associated attributes. These attributes can be accessed via\ndot-notation as described in the Attribute Access section below.

\n
\n

Attribute Access

\n

Keywords return native Python Hubspot objects, rather than common Robot\nFramework types. These types have sets of defined attributes allowing\nfor dot-notation access of object properties. Properties (e.g.,\nthose configured in Hubspot settings for each object) will be\naccessible in a Python dictionary attached to the properties attribute\nof the returned object. See the Attribute Definitions section for\ndetails of that associated attributes for all types returned by this\nlibrary.

\n

Example usage retrieving the city property of a Company object:

\n

Robot framework example:

\n
\n*** Settings ***\nLibrary         RPA.Hubspot\nLibrary         RPA.Robocorp.Vault\n\nTask Setup      Authorize Hubspot\n\n*** Variables ***\n${ACCOUNT_NOKIA}    6818764598\n\n*** Tasks ***\nObtain city information from Hubspot\n    ${account}=    Get object    COMPANY    ${ACCOUNT_NOKIA}\n    Log    The city for account number ${ACCOUNT_NOKIA} is ${account.properties}[city]\n\n*** Keywords ***\nAuthorize Hubspot\n    ${secrets}=    Get secret    hubspot\n    Auth with api key    ${secrets}[API_KEY]\n
\n

Python example:

\n
\nfrom RPA.Hubspot import Hubspot\nfrom RPA.Robocorp.Vault import RobocorpVault\n\nvault = RobocorpVault()\nsecrets = vault.get_secret("hubspot")\n\nhs = Hubspot(secrets["API_KEY"])\nnokia_account_id = "6818764598"\naccount = hs.get_object("COMPANY", nokia_account_id)\nprint(f"The city for account number {nokia_account_id} is {account.properties['city']}")\n
\n
\n
\n

Attribute Definitions

\n

This library can return various types of objects, whose attributes\nare only accessible via dot-notation. The below reference describes\nthe attributes available on these objects.

\n
\n

SimplePublicObject

\n

An object in HubSpot. The object itself does not describe what type\nit represents.

\n
\n
id : str
\n
The HubSpot ID of the object.
\n
properties : Dict[str, str]
\n
A dictionary representing all returned properties associated\nto this object. Properties must be accessed as via standard\ndictionary subscription, e.g., properties["name"].
\n
created_at : datetime
\n
The timestamp when this object was created in HubSpot.
\n
updated_at : datetime
\n
The last modified timestamp for this object.
\n
archived : bool
\n
Whether this object is archived.
\n
archived_at : datetime
\n
The timestamp when this object was archived.
\n
\n
\n
\n

SimplePublicObjectWithAssociations

\n

An object in HubSpot including associations to other objects. The\nobject itself does not describe what type it represents.

\n
\n
id : str
\n
The HubSpot ID of the object.
\n
properties : Dict[str, str]
\n
A dictionary representing all returned properties associated\nto this object. Properties must be accessed as via standard\ndictionary subscription, e.g., properties["name"].
\n
created_at : datetime
\n
The timestamp when this object was created in HubSpot.
\n
updated_at : datetime
\n
The last modified timestamp for this object.
\n
archived : bool
\n
Whether this object is archived.
\n
archived_at : datetime
\n
The timestamp when this object was archived.
\n
associations : Dict[str, CollectionResponseAssociatedId]
\n
A dictionary whose key will be the requested association type, e.g.,\ncompanies and associated value will be a container object\nwith all the associations. See CollectionResponseAssociatedId.
\n
\n
\n
\n

AssociatedId

\n

The ID of an associated object, as well as the type of association.

\n
\n
id : str
\n
The ID of the associated HubSpot object.
\n
type : str
\n
The type of association, e.g., deals_to_companies.
\n
\n
\n
\n

CollectionResponseAssociatedId

\n

A container object for a collection of AssociatedId objects returned\nby the API.

\n
\n
results : List[AssociatedId]
\n
The list of AssociatedId objects returned by the API.
\n
paging : Paging
\n
Used by this library to assist with retreiving multi-page\nAPI responses.
\n
\n
\n
\n

Pipeline

\n

A pipeline represents the steps objects travel through within HubSpot.

\n
\n
id : str
\n
The HubSpot ID for the pipeline. All accounts start with one\npipeline with the id default.
\n
label : str
\n
The human-readabel label for the pipeline.
\n
stages : List[PipelineStage]
\n
A list of PipelineStage objects in the order the object would\nfollow through the pipeline.
\n
created_at : datetime
\n
The timestamp when this pipeline was created in HubSpot.
\n
updated_at : datetime
\n
The last modified timestamp for this pipeline.
\n
archived : bool
\n
Whether this pipeline is archived.
\n
display_order : int
\n
The place in the list of pipelines where this pipeline is shown\nin the HubSpot UI.
\n
\n
\n
\n

PipelineStage

\n

A pipeline stage is one of the various stages defined in a Pipeline.

\n
\n
id : str
\n
The HubSpot ID of the stage.
\n
label : str
\n
The human-readabel label for the stage.
\n
metadata : Dict[str, str]
\n
A dictionary of additional data associated with ths stage, such\nas probability.
\n
created_at : datetime
\n
The timestamp when this stage was created in HubSpot.
\n
updated_at : datetime
\n
The last modified timestamp for this stage.
\n
archived : bool
\n
Whether this stage is archived.
\n
archived_at : datetime
\n
The timestamp when this stage was archived.
\n
\n
\n
\n

PublicOwner

\n

An owner in HubSpot. Owners of companies and deals are responsible\nfor driving a sale to close or similar.

\n
\n
id : str
\n
The HubSpot ID of the owner.
\n
email : str
\n
The owner's email address in HubSpot.
\n
first_name : str
\n
The owner's first name.
\n
last_name : str
\n
The owner's last name.
\n
user_id : int
\n
The associated user ID if the owner is a HubSpot user.
\n
created_at : datetime
\n
The timestamp when this owner was created in HubSpot.
\n
updated_at : datetime
\n
The last modified timestamp for this owner.
\n
archived : bool
\n
Whether this owner is archived.
\n
teams : List[PublicTeam]
\n
A list of teams the owner is in. See PublicTeam.
\n
\n
\n
\n

PublicTeam

\n

A team of owners in HubSpot

\n
\n
id : str
\n
The HubSpot ID of the Team.
\n
name : str
\n
The Team's name.
\n
membership : str
\n
One of PRIMARY, SECONDARY, or CHILD.
\n
\n
\n
\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:15", + "generated": "2023-11-01 16:13:02", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -62645,7 +62645,7 @@ "name": "RPA.Images", "doc": "
\n

Images is a library for general image manipulation.\nFor image-based desktop automation, use the RPA.Desktop library.

\n

Coordinates

\n

The coordinates used in the library are pairs of x and y values that\nrepresent pixels. The upper left corner of the image or screen\nis (0, 0). The x-coordinate increases towards the right, and the y-coordinate\nincreases towards the bottom.

\n

Regions are represented as tuples of (left, top, right, bottom). For example,\na 400 by 200-pixel region in the upper left corner would be (0, 0, 400, 200).

\n

Template matching

\n

Template matching refers to an operation where the (potential) location of\na smaller image is searched from a larger image. It can be used for verifying\ncertain conditions or locating UI elements for desktop or web automation.

\n

Requirements

\n

The default installation depends on Pillow\nlibrary, which is used for general image manipulation operations.

\n

For more robust and faster template matching, the library can use a combination\nof NumPy and OpenCV.\nThey can be installed by opting in to the recognition dependency:

\n

pip install rpaframework rpaframework-recognition

\n

Examples

\n

Robot Framework

\n

The Images library can be imported and used directly in Robot Framework,\nfor instance, for capturing screenshots or verifying something on the screen.

\n

Desktop automation based on images should be done using the corresponding\ndesktop library, i.e. RPA.Desktop.

\n
\n*** Settings ***\nLibrary    RPA.Images\n\n*** Keywords ***\nShould show success\n    [Documentation]    Raises ImageNotFoundError if success image is not on screen\n    Find template on screen    ${CURDIR}${/}success.png\n\nSave screenshot to results\n    [Documentation]    Saves screenshot of desktop with unique name\n    ${timestamp}=      Get current date    result_format=%H%M%S\n    Take screenshot    filename=${OUTPUT_DIR}${/}desktop_${timestamp}.png\n
\n

Python

\n
\nfrom RPA.Images import Images\n\ndef draw_matches_on_image(source, template):\n    matches = lib.find_template_in_image(source, template)\n    for match in matches:\n        lib.show_region_in_image(source, match)\n\n    source.save("matches.png")\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:15", + "generated": "2023-11-01 16:13:02", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -62832,7 +62832,7 @@ "name": "RPA.JSON", "doc": "
\n

JSON is a library for manipulating JSON files and strings.

\n

JSON is a common data interchange format inspired by a subset of\nthe Javascript programming language, but these days is a de facto\nstandard in modern web APIs and is language agnostic.

\n
\n

Serialization

\n

The term serialization refers to the process of converting\nRobot Framework or Python types to JSON or the other way around.

\n

Basic types can be easily converted between the domains,\nand the mapping is as follows:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
JSONPython
objectdict
arraylist
stringstr
number (int)int
number (real)float
trueTrue
falseFalse
nullNone
\n
\n
\n

About JSONPath

\n

Reading and writing values from/to JSON serializable objects is done\nusing JSONPath. It's a syntax designed to quickly and easily refer to\nspecific elements in a JSON structure. The specific flavor used in this\nlibrary is based on jsonpath-ng.

\n

Compared to Python's normal dictionary access, JSONPath expressions can\ntarget multiple elements through features such as conditionals and wildcards,\nwhich can simplify many JSON-related operations. It's analogous to XPath\nfor XML structures.

\n
\n

Syntax example

\n

For this example consider the following structure:

\n
\n{\n  "clients": [\n    {\n      "name": "Johnny Example",\n      "email": "john@example.com",\n      "orders": [\n          {"address": "Streetroad 123", "price": 103.20},\n          {"address": "Streetroad 123", "price": 98.99}\n      ]\n    },\n    {\n      "name": "Jane Example",\n      "email": "jane@example.com",\n      "orders": [\n          {"address": "Waypath 321", "price": 22.00},\n          {"address": "Streetroad 123", "price": 2330.01}\n      ]\n    }\n  ]\n}\n
\n

In the simplest case JSONPath can replace nested access:

\n
\n*** Tasks ***\nNested access\n    # First order of first client, with direct dictionary access\n    ${value}=    Set variable    ${json}["clients"][0]["orders"][0]\n\n    # JSONPath access\n    ${value}=    Get value from JSON    ${json}    $.clients[0].orders[0]\n
\n

But the power comes from complicated expressions:

\n
\n*** Tasks ***\nComplicated expressions\n    # Find delivery addresses for all orders\n    ${prices}=        Get values from JSON    $..address\n\n    # Find orders that cost over 100\n    ${expensives}=    Get values from JSON    $..orders[?(@.price>100)]\n
\n
\n
\n

Supported Expressions

\n

The supported syntax elements are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ElementDescription
$Root object/element
@Current object/element inside expressions
. or []Child operator
..Recursive descendant operator
`parent`Parent operator, see functions
*Wilcard, any element
,Select multiple fields
[n]Array index
[a:b:c]Array slice (start, end, step)
[a,b]Union of indices or names
[?()]Apply a filter expression
()Script expression
[\\\\field]Sort descending by field, cannot be combined with\nfilters.
[/field]Sort ascending by field, cannot be combined with\nfilters.
`str()`Convert value to string, see functions
`sub()`Regex substitution function, see functions
`len`Calculate value's length, see functions
`split()`String split function, see functions
+ - * /Arithmetic functions, see functions
\n
\n

Functions

\n

This library allows JSON path expressions to include certain functions\nwhich can provide additional benefit to users. These functions are\ngenerally encapsulated in backticks (`). Some functions require\nyou to pass arguments similar to a Python function.

\n

For example, let's say a JSON has nodes on the JSON path\n$.books[*].genres which are represented as strings of genres with\ncommas separating each genre. So for one book, this node might have a\nvalue like horror,young-adult. You can return a list of first genre\nfor each book by using the split function like so:

\n
\n*** Task ***\nGet genres\n    ${genres}=  Get values from JSON    $.books[*].genres.`split(,, 0, -1)`\n
\n

Each functions parameters are defined here:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FunctionUsage
str()No parameters, but parenthesis are required
sub(/regex/, repl)The regex pattern must be provided in regex\nand the replacement value provided in repl
lenNo parameters and no parenthesis
split(char, segment, max_split)Separator character provided as char, which\nindex from the resulting array to be returns\nprovided as segment, and maximum number of\nsplits to perform provided as max_split,\n-1 for all splits.
parentNo parameters, no parenthesis
\n

Arithmetic Functions

\n

JSON Path can be written and combined to concatenate string values\nor perform arithmetic functions on numerical values. Each JSONPath\nexpression used must return the same type, and when performing\nsuch functions between returned lists, each list must be the same\nlength. An example is included in documentation for the keyword\nGet values from JSON.

\n
\n
\n

Additional Information

\n

There are a multitude of different script expressions\nin addition to the elements listed above, which can\nbe seen in the aforementioned article.

\n

For further library usage examples, see the individual keywords.

\n
\n
\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:15", + "generated": "2023-11-01 16:13:02", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -63488,7 +63488,7 @@ "name": "RPA.JavaAccessBridge", "doc": "
\n

Java application UI automation library using Java Access Bridge technology.

\n

The library utilizes java-access-bridge-wrapper package to interact with\nJava UI. Currently only the 64-bit Windows OS is supported.

\n

Inspecting elements

\n

We have built an Assistant for working with Java application's element structure and Java locators.\nThe Assistant provides copy-paste-able locators for each element and also allows testing locators against\nselected application.

\n

If our tools fail to pick the locator from your target application, there is always the\nAccess Bridge Explorer from Google that enables you to see the raw view. Please note that\nAccess Bridge Explorer repository has been archived on July 27, 2022 and is no longer actively\nmaintained.

\n

The Accessibility Insights for Windows can show element properties if application framework\nsupports Windows UI Automation (UIA), see more at using Accessibility Insights. Then the recommended\nlibrary would be RPA.Windows library.

\n

Steps to enable

\n
\n
    \n
  1. Enable the Java Access Bridge in Windows
  2. \n
  3. Set environment variable RC_JAVA_ACCESS_BRIDGE_DLL as an absolute path to WindowsAccessBridge-64.dll.\nIt is also possible to give DLL location as library initialization parameter access_bridge_path.
  4. \n
\n
\nC:\\path\\to\\java\\bin\\jabswitch -enable\nset RC_JAVA_ACCESS_BRIDGE_DLL=C:\\path\\to\\Java\\bin\\WindowsAccessBridge-64.dll\n
\n
\n*** Settings ***\nLibrary   RPA.JavaAccessBridge   access_bridge_path=C:\\path\\to\\Java\\bin\\WindowsAccessBridge-64.dll\n
\n
\n

About Java wrapper callbacks and actions

\n

There might be a compatibility issue with callbacks and actions on target Java application. Possible reasons:

\n
    \n
  • target application is executed with 32-bit Java
  • \n
  • target application does not support callbacks and/or actions
  • \n
\n

Workaround for this situation is to initialize JavaAccessBridge library with parameter ignore_callbacks=True.\nThen application's element information is still accessible and any actions on those elements can be performed\nwith RPA.Desktop library. Keep in mind that you can still manuall refresh an element with Refresh Element.

\n

Note. There are still keywords, for example. Call Element Action, which will cause error if used in this\nsituation.

\n
\n*** Settings ***\nLibrary   RPA.JavaAccessBridge   ignore_callbacks=True\n
\n

Controlling the Java window

\n

Keyword for this purpose is Select Window. Window selection is based on the title parameter, which can be\ngiven as a regular expressions to match the correct window. The keyword brings the window into focus and initially\nreads window's element structure.

\n

Locating elements

\n

To automate actions on the Java application, the robot needs locations to various elements\nusing a feature called Java locators. Locator describes properties of an element.

\n

At the moment library contains basic level support for locators.

\n

The common locator types are name and role.

\n

To identify element with more than one property and can be used, for example:

\n
\n
\nrole:push button and name:Clear\n
\n
\n

To address element within parent element > can be used, for example:

\n
\n
\nname:Find Purchase Orders > name:NumberField\n
\n
\n

Some keywords accept element as an parameter in place of locator.

\n

New locator type strict has been added in rpaframework==12.5.0. Currently\nproperty values of string type have been evaluated with startsWith which\ncan match several property values. With strict set in the locator string,\nall locator on the right side of this definition will be matched using\nstrict (equal matching), example:

\n
\n
\n# without strict, name can be 'Type', 'Type1', 'Type of'...\nGet Elements   role:push button and name:Type\n# name must be equal to 'Type'\nGet Elements  role:push button and strict:True and name:Type\n
\n
\n

Keyword Get Elements has extra parameter strict, which when set to\nTrue forces all locator value matches to be strict, example:

\n
\n
\n# without strict, name can be 'Type', 'Type1', 'Type of'...\nGet Elements  role:push button and name:Type\n# name must be equal to 'Type' and role must be equal to 'text'\nGet Elements  role:text and name:Type  strict=True\n
\n
\n

About JavaElement object

\n

The JavaElement was added in rpaframework==12.3.0 for easy access into\nContextNode objects which have been returned by Get Elements keyword.

\n

Keyword Get Elements still returns ContextNode objects, but with parameter\njava_elements=True the keyword returns JavaElement objects instead (they\nstill contain reference to ContextNode object via node property, e.g.\nJavaObject.node).

\n

Properties and methods included in the JavaElement:

\n
    \n
  • name: str
  • \n
  • role: str
  • \n
  • description: str
  • \n
  • states: list # list presentation of states (string)
  • \n
  • ancestry: int # you can set the maximum depth based on this
  • \n
  • checked: bool
  • \n
  • selected: bool
  • \n
  • visible: bool
  • \n
  • enabled: bool
  • \n
  • showing: bool
  • \n
  • focusable: bool
  • \n
  • states_string: str
  • \n
  • x: int # left coordinate of the element
  • \n
  • y: int # top coordinate of the element
  • \n
  • width: int
  • \n
  • height: int
  • \n
  • node: ContextNode # original ContextNode
  • \n
  • row: int # table row, -1 if element is not member of table
  • \n
  • col: int # table column, -1 if element is not member of table
  • \n
  • text: str # text content of the element
  • \n
  • column_count: int # table column count
  • \n
  • visible_children: list # visible children elements of this element
  • \n
  • visible_children_count: int
  • \n
  • index_in_parent: int # position in the parent
  • \n
  • click() # method for clicking element center
  • \n
  • type_text() # method for typing text into element (if possible)
  • \n
\n

Interacting with elements

\n

By default application elements are interacted with Actions supported by the element.\nMost common example is click action supported by an button element.

\n

But because application and technology support for the actions might be limited, it is also\npossible to opt for interaction elements by their coordinates by giving keyword parameter\naction=False if parameter is available.

\n

Examples

\n

robotframework

\n
\n*** Settings ***\nLibrary   RPA.JavaAccessBridge\nLibrary   Process\n\n*** Tasks ***\nWrite text into Swing application\n    Start Process    java -jar BasicSwing.jar\n    ...              shell=${TRUE}\n    ...              cwd=${CURDIR}\n    Select Window    Chat Frame\n    Type Text    role:text\n    ...          text for the textarea\n    Type Text    role:text\n    ...          text for the input field\n    ...          index=1\n    ...          clear=${TRUE}\n    Click Element    role:push button and name:Send\n
\n

Python

\n
\nfrom RPA.JavaAccessBridge import JavaAccessBridge\nimport subprocess\n\njab = JavaAccessBridge()\n\nsubprocess.Popen(\n    ["java", "-jar", "BasicSwing.jar"],\n    shell=True,\n    cwd=".",\n    close_fds=True\n)\njab.select_window("Chat Frame")\njab.type_text(\n    "role:text",\n    "text for the textarea",\n    enter=True\n)\njab.type_text(\n    "role:text",\n    "text for the input field",\n    index=1,\n    clear=True\n)\njab.click_element("role:push button and name:Send")\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:15", + "generated": "2023-11-01 16:13:03", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -64802,7 +64802,7 @@ "name": "RPA.MFA", "doc": "
\n

RPA.MFA is a library intended mainly for generating one-time passwords (OTP)\nand not only, as OAuth2 support was introduced lately.

\n

Library requires at the minimum rpaframework version 19.4.0.

\n

Based on the pyotp and\nrequests_oauthlib packages. It\nprovides support for both MFA with the * OTP related keywords and OAuth2\n"Authorization Code Flow" with the * OAuth * related keywords.

\n

In the below example the mfa secret we are reading from the Robocorp\nVault is the passcode generated by the Authenticator service. The passcode\nvalue is stored into the Vault with key otpsecret.

\n

Passcode is typically a long string (16-32 characters), which is provided\nin a form of QR image, but it can be obtained by requesting access to a string.

\n

Note that same code can be used to add a mobile phone as a duplicate authentication\ndevice at the same time when the same code is added into the Vault.

\n

Robot framework example usage:

\n
\n*** Settings ***\nLibrary     RPA.MFA\nLibrary     RPA.Robocorp.Vault\n\n*** Tasks ***\nGenerate time based code\n    ${secrets}=    Get Secret   mfa\n    ${code}=    Get Time Based OTP    ${secrets}[otpsecret]\n
\n

Python example usage

\n
\nfrom RPA.MFA import MFA\nfrom RPA.Robocorp.Vault import Vault\n\n\ndef main():\n    secrets = Vault().get_secret("mfa")\n    code = MFA().get_time_based_otp(secrets["otpsecret"])\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:15", + "generated": "2023-11-01 16:13:03", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -65352,7 +65352,7 @@ "name": "RPA.MSGraph", "doc": "
\n

The MSGraph library wraps the O365 package, giving robots\nthe ability to access the Microsoft Graph API programmatically.

\n

OAuth Configuration

\n

Graph's API primarily authenticates via the OAuth 2.0 authorization code grant\nflow or OpenID Connect. This library exposes the OAuth 2.0 flow for robots to\nauthenticate on behalf of users. A user must complete an initial authentication\nflow with the help of our OAuth Graph Example Bot.

\n

For best results, register an app in Azure AD and configure it as so:

\n
    \n
  • The type is "Web App".
  • \n
  • Redirect URI should be https://login.microsoftonline.com/common/oauth2/nativeclient
  • \n
  • The app should be a multi-tenant app.
  • \n
  • Accounts in any organizational directory is checked.
  • \n
  • Has relevant permissions enabled, check the Microsoft Graph permissions reference\nfor a list of permissions available to MS Graph apps.
  • \n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:16", + "generated": "2023-11-01 16:13:03", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -66699,7 +66699,7 @@ "name": "RPA.Netsuite", "doc": "
\n

Netsuite is a library for accessing Netsuite using NetSuite SOAP web service SuiteTalk.\nThe library extends the netsuitesdk library.

\n

More information available at NetSuite SOAP webservice SuiteTalk.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary     RPA.Netsuite\nLibrary     RPA.Excel.Files\nLibrary     RPA.Tables\nTask Setup  Authorize Netsuite\n\n*** Tasks ***\nGet data from Netsuite and Store into Excel files\n    ${accounts}=        Get Accounts   account_type=_expense\n    ${accounts}=        Create table    ${accounts}\n    Create Workbook\n    Append Rows To Worksheet  ${accounts}\n    Save Workbook       netsuite_accounts.xlsx\n    Close Workbook\n    ${bills}=           Get Vendor Bills\n    ${bills}=           Create table    ${bills}\n    Create Workbook\n    Append Rows To Worksheet  ${bills}\n    Save Workbook       netsuite_bills.xlsx\n    Close Workbook\n\n\n*** Keywords ***\nAuthorize Netsuite\n    ${secrets}=     Get Secret   netsuite\n    Connect\n    ...        account=${secrets}[ACCOUNT]\n    ...        consumer_key=${secrets}[CONSUMER_KEY]\n    ...        consumer_secret=${secrets}[CONSUMER_KEY]\n    ...        token_key=${secrets}[CONSUMER_SECRET]\n    ...        token_secret=${secrets}[TOKEN_KEY]\n
\n

Python

\n
\nfrom RPA.Netsuite import Netsuite\n\nns = Netsuite()\nns.connect()\naccounts = ns.get_accounts()\ncurrencies = ns.get_currencies()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:16", + "generated": "2023-11-01 16:13:03", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -67248,7 +67248,7 @@ "name": "RPA.Notifier", "doc": "
\n

Notifier is a library interfacting with different notification providers.

\n

Supported providers

\n
    \n
  • email
  • \n
  • gmail
  • \n
  • pushover
  • \n
  • slack
  • \n
  • telegram
  • \n
  • twilio
  • \n
\n

Providers not supported yet via specific keywords

\n
    \n
  • gitter
  • \n
  • join
  • \n
  • mailgun
  • \n
  • pagerduty
  • \n
  • popcornnotify
  • \n
  • pushbullet
  • \n
  • simplepush
  • \n
  • statuspage
  • \n
  • zulip
  • \n
\n

There is a keyword Generic Notify which can be used\nto call above services, for example.

\n
\nGeneric Notify\n    provider_name=gitter\n    message=Hello from Robot\n    token=TOKEN\n    room_id=ID_OF_THE_GITTER_ROOM\n
\n

Parameters for different providers can be read from the\nNotifiers documents (link below).

\n

Read more at https://notifiers.readthedocs.io/en/latest/

\n

About kwargs

\n

The **kwargs is a term for any extra named parameters, which\ncan be included in the same way as already named arguments,\ne.g. Notify Email could be called with subject=my email subject\nwhich will be passed through **kwargs.

\n

Notifier documentation contains information about all possible\narguments that different providers support.

\n

Robot Framework

\n
\n&{account}=    Create Dictionary\n...    host=smtp.office365.com\n...    username=ACCOUNT_USERNAME\n...    password=ACCOUNT_PASSWORD\nNotify Email\n...    to=RECIPIENT_EMAIL\n...    from_=SENDER_ADDRESS            # passed via kwargs\n...    subject=Hello from the Robot    # passed via kwargs\n...    message=Hello from the Robot\n...    &{account}                      # passed via kwargs\n
\n
\nnotifier = Notifier()\naccount = {\n    "host": "smtp.office365.com",\n    "username": "EMAIL_USERNAME",\n    "password": "EMAIL_PASSWORD"\n}\nnotifier.email_notify(\n    to="RECIPIENT_EMAIL",\n    from_="SENDER_EMAIL",\n    subject="Hello from the Python Robot",\n    message="Hello from the Python RObot",\n    **account\n)\n
\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary  RPA.Notifier\n\n*** Variables ***\n${SLACK_WEBHOOK}   https://hooks.slack.com/services/WEBHOOKDETAILS\n${CHANNEL}         notification-channel\n\n*** Tasks ***\nLets notify\n   Notify Slack   message from robot  channel=${CHANNEL}  webhook_url=${SLACK_WEBHOOK}\n
\n

Python

\n
\nfrom RPA.Notifier import Notifier\n\nlibrary = Notifier()\n\nslack_attachments = [\n   {\n      "title": "attachment 1",\n      "fallback": "liverpool logo",\n      "image_url": "https://upload.wikimedia.org/wikipedia/fi/thumb/c/cd/Liverpool_FC-n_logo.svg/1200px-Liverpool_FC-n_logo.svg.png",\n   }\n]\n\nlibrary.notify_slack(\n   message='message for the Slack',\n   channel="notification-channel",\n   webhook_url=slack_webhook_url,\n   attachments=slack_attachments,\n)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:16", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -67846,7 +67846,7 @@ "name": "RPA.OpenAI", "doc": "
\n

Library to support OpenAI and Azure OpenAI services.

\n

Library is not included in the rpaframework package, so in order to use it\nyou have to add rpaframework-openai with the desired version in your\nconda.yaml file.

\n

Robot Framework example usage

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.Vault\nLibrary    RPA.OpenAI\n\n*** Tasks ***\nCreate a text completion\n    ${secrets}   Get Secret   secret_name=OpenAI\n    Authorize To OpenAI   api_key=${secrets}[key]\n    ${completion}    Completion Create\n    ...     Write a tagline for an ice cream shop\n    ...     temperature=0.6\n    Log   ${completion}\n
\n

Python example usage

\n
\nfrom RPA.Robocorp.Vault import Vault\nfrom RPA.OpenAI import OpenAI\n\nsecrets = Vault().get_secret("OpenAI")\nbaselib = OpenAI()\nbaselib.authorize_to_openai(secrets["key"])\n\nresult = baselib.completion_create(\n    Create a tagline for icecream shop',\n    temperature=0.6,\n)\nprint(result)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:16", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -68409,7 +68409,7 @@ "name": "RPA.Outlook.Application", "doc": "
\n

Outlook.Application is a library for controlling the Outlook application.

\n

About Email Filtering

\n

Emails can be filtered according to specification set by Restrict method of the\nItem class https://docs.microsoft.com/en-us/office/vba/api/outlook.items.restrict.

\n

Couple of examples:

\n
\nGet Emails\n...   email_filter=[Subject]='test email'\n\nMove Emails\n...   email_filter=[SenderEmailAddress]='hello@gmail.com'\n
\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary                 RPA.Outlook.Application\nTask Setup              Open Application\nSuite Teardown          Quit Application\n\n*** Variables ***\n${RECIPIENT}            address@domain.com\n\n*** Tasks ***\nSend message\n    Send Message       recipients=${RECIPIENT}\n    ...                subject=This is the subject\n    ...                body=This is the message body\n    ..                 attachments=approved.png\n
\n

Python

\n
\nfrom RPA.Outlook.Application import Application\n\ndef send_message():\n    app = Application()\n    app.open_application()\n    app.send_message(\n        recipients='EMAILADDRESS_1, EMAILADDRESS_2',\n        subject='email subject',\n        body='email body message',\n        attachments='../orders.csv'\n
\n

For more information, see: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/bb219950(v=office.12)

\n

Caveats

\n

This library works on a Windows operating system with UI enabled only, and you must\nensure that you open the app first with Open Application before running any\nother relevant keyword which requires to operate on an open app. The application is\nautomatically closed at the end of the task execution, so this can be changed by\nimporting the library with the autoexit=${False} setting.

\n
\n*** Settings ***\nLibrary     RPA.Excel|Outlook|Word.Application    autoexit=${False}\n
\n

If you're running the Process by Control Room through a custom self-hosted Worker\nservice, then please make sure that you enable an RDP session by ticking "Use\nDesktop Connection" under the Step configuration.

\n

If you still encounter issues with opening a document, please ensure that file can\nbe opened first manually and dismiss any alert potentially blocking the process.

\n

Check the documentation below for more info:

\n\n
\n", "version": "", - "generated": "2023-11-01 15:54:16", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -69065,7 +69065,7 @@ "name": "RPA.PDF", "doc": "
\n

PDF is a library for managing PDF documents.

\n

It can be used to extract text from PDFs, add watermarks to pages, and\ndecrypt/encrypt documents.

\n

Merging and splitting PDFs is supported by Add Files To PDF keyword. Read\nthe keyword documentation for examples.

\n

There is also limited support for updating form field values. (check\nSet Field Value and Save Field Values for more info)

\n

The input PDF file can be passed as an argument to the keywords, or it can be\nomitted if you first call Open PDF. A reference to the current active PDF will\nbe stored in the library instance and can be changed by using the Switch To PDF\nkeyword with another PDF file path, therefore you can asynchronously work with\nmultiple PDFs.

\n
\n

Attention!

\n

Keep in mind that this library works with text-based PDFs, and it can't\nextract information from an image-based (scan) PDF file. For accurate\nresults, you have to use specialized external services wrapped by the\nRPA.DocumentAI library.

\n
\n

Portal example with video recording demo for parsing PDF invoices:\nhttps://github.com/robocorp/example-parse-pdf-invoice

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    RPA.PDF\nLibrary    String\n\n*** Tasks ***\nExtract Data From First Page\n    ${text} =    Get Text From PDF    report.pdf\n    ${lines} =     Get Lines Matching Regexp    ${text}[${1}]    .+pain.+\n    Log    ${lines}\n\nGet Invoice Number\n    Open Pdf    invoice.pdf\n    ${matches} =  Find Text    Invoice Number\n    Log List      ${matches}\n\nFill Form Fields\n    Switch To Pdf    form.pdf\n    ${fields} =     Get Input Fields   encoding=utf-16\n    Log Dictionary    ${fields}\n    Set Field Value    Given Name Text Box    Mark\n    Save Field Values    output_path=${OUTPUT_DIR}${/}completed-form.pdf\n    ...                  use_appearances_writer=${True}\n
\n
\nfrom RPA.PDF import PDF\nfrom robot.libraries.String import String\n\npdf = PDF()\nstring = String()\n\ndef extract_data_from_first_page():\n    text = pdf.get_text_from_pdf("report.pdf")\n    lines = string.get_lines_matching_regexp(text[1], ".+pain.+")\n    print(lines)\n\ndef get_invoice_number():\n    pdf.open_pdf("invoice.pdf")\n    matches = pdf.find_text("Invoice Number")\n    for match in matches:\n        print(match)\n\ndef fill_form_fields():\n    pdf.switch_to_pdf("form.pdf")\n    fields = pdf.get_input_fields(encoding="utf-16")\n    for key, value in fields.items():\n        print(f"{key}: {value}")\n    pdf.set_field_value("Given Name Text Box", "Mark")\n    pdf.save_field_values(\n        output_path="completed-form.pdf",\n        use_appearances_writer=True\n    )\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -70720,7 +70720,7 @@ "name": "RPA.Robocloud.Items", "doc": "
\n

A library for interacting with Control Room work items.

\n

Work items are used for managing data that go through multiple\nsteps and tasks inside a process. Each step of a process receives\ninput work items from the previous step, and creates output work items for\nthe next step.

\n

Item structure

\n

A work item's data payload is JSON and allows storing anything that is\nserializable. This library by default interacts with payloads that\nare a dictionary of key-value pairs, which it treats as individual\nvariables. These variables can be exposed to the Robot Framework task\nto be used directly.

\n

In addition to the data section, a work item can also contain files,\nwhich are stored by default in Robocorp Control Room. Adding and using\nfiles with work items requires no additional setup from the user.

\n

Loading inputs

\n

The library automatically loads the first input work item, if the\nlibrary input argument autoload is truthy (default).

\n

After an input has been loaded its payload and files can be accessed\nthrough corresponding keywords, and optionally these values can be modified.

\n

E-mail triggering

\n

Since a process can be started in Control Room by sending an e-mail, a body\nin Text/JSON/YAML/HTML format can be sent as well and this gets attached to the\ninput work item with the rawEmail payload variable. This library automatically\nparses the content of it and saves into parsedEmail the dictionary\ntransformation of the original e-mail.

\n

If "Parse email" Control Room configuration option is enabled (recommended), then\nyour e-mail is automatically parsed in the work item under the email payload\nvariable, which is a dictionary containing a body holding the final parsed form\nof the interpreted e-mail body. The payload variable parsedEmail is still\navailable for backwards compatibility reasons and holds the very same body inside\nthe parsedEmail[Body].

\n

E-mail attachments will be added into the work item as files. Read more on:\nhttps://robocorp.com/docs/control-room/attended-or-unattended/email-trigger

\n

Example:

\n

After starting the process by sending an e-mail with a body like:

\n
\n{\n    "message": "Hello world!"\n}\n
\n

The robot can use the parsed e-mail body's dictionary:

\n
\n*** Tasks ***\nUsing Parsed Emails\n    ${mail} =    Get Work Item Variable    email\n    Set Work Item Variables    &{mail}[body]\n    ${message} =     Get Work Item Variable     message\n    Log    ${message}    # will print "Hello world!"\n
\n

The behaviour can be disabled by loading the library with\nauto_parse_email=${None} or altered by providing to it a dictionary with one\n"key: value" where the key is usually "email.text" (deprecated "rawEmail", the\nvariable set by Control Room, which acts as source for the parsed (deprecated raw)\ne-mail data) and the value can be "email.body" (deprecated "parsedEmail", where the\nparsed e-mail data gets stored into), value which can be customized and retrieved\nwith Get Work Item Variable.

\n

Creating outputs

\n

It's possible to create multiple new work items as an output from a\ntask. With the keyword Create Output Work Item a new empty item\nis created as a child for the currently loaded input.

\n

All created output items are sent into the input queue of the next\nstep in the process.

\n

Active work item

\n

Keywords that read or write from a work item always operate on the currently\nactive work item. Usually that is the input item that has been automatically\nloaded when the execution started, but the currently active item is changed\nwhenever the keywords Create Output Work Item or Get Input Work Item\nare called. It's also possible to change the active item manually with the\nkeyword Set current work item.

\n

Saving changes

\n

While a work item is loaded automatically when a suite starts, changes are\nnot automatically reflected back to the source. The work item will be modified\nlocally and then saved when the keyword Save Work Item is called.\nThis also applies to created output work items.

\n

It is recommended to defer saves until all changes have been made to prevent\nleaving work items in a half-modified state in case of failures.

\n

Local Development

\n

While Control Room is the default implementation, it can also be replaced\nwith a custom adapter. The selection is based on either the default_adapter\nargument for the library, or the RPA_WORKITEMS_ADAPTER environment\nvariable. The library has a built-in alternative adapter called FileAdapter for\nstoring work items to disk.

\n

The FileAdapter uses a local JSON file for input work items.\nIt's a list of work items, each of which has a data payload and files.

\n

An example of a local file with one work item:

\n
\n[\n    {\n        "payload": {\n            "variable1": "a-string-value",\n            "variable2": ["a", "list", "value"]\n        },\n        "files": {\n            "file1": "path/to/file.ext"\n        }\n    }\n]\n
\n

Output work items (if any) are saved to an adjacent file\nwith the same name, but with the extension .output.json. You can specify\nthrough the "RPA_OUTPUT_WORKITEM_PATH" env var a different path and name for this\nfile.

\n

Simulating the Cloud with Robocorp Code VSCode Extension

\n

If you are developing in VSCode with the Robocorp Code extension, you can\nutilize the built in local development features described in the\nDeveloping with work items locally section of the\nUsing work items development guide.

\n

Examples

\n

Robot Framework

\n

In the following example a task creates an output work item,\nand attaches some variables to it.

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.WorkItems\n\n*** Tasks ***\nSave variables to Control Room\n    Create Output Work Item\n    Set work item variables    user=Dude    mail=address@company.com\n    Save Work Item\n
\n

In the next step of the process inside a different robot, we can use\npreviously saved work item variables. Also note how the input work item is\nloaded implicitly when the suite starts.

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.WorkItems\n\n*** Tasks ***\nUse variables from Control Room\n    Set task variables from work item\n    Log    Variables are now available: s${user}, ${mail}\n
\n

Python

\n

The library can also be used through Python, but it does not implicitly\nload the first work item.

\n
\nimport logging\nfrom RPA.Robocorp.WorkItems import WorkItems\n\ndef list_variables(item_id):\n    library = WorkItems()\n    library.get_input_work_item()\n\n    variables = library.get_work_item_variables()\n    for variable, value in variables.items():\n        logging.info("%s = %s", variable, value)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -71078,10 +71078,10 @@ "name": "default", "types": [], "typedocs": {}, - "defaultValue": "", + "defaultValue": "", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "default=" + "repr": "default=" } ], "doc": "
\n

Return a single variable value from the work item,\nor default value if defined and key does not exist.

\n

If key does not exist and default is not defined, raises KeyError.

\n\n\n\n\n\n\n\n\n\n
param name:Name of variable
param default:Default value if key does not exist
\n

Robot Framework Example:

\n
\n*** Tasks ***\nUsing a work item\n    ${username}=    Get work item variable    username    default=guest\n
\n

Python Example:

\n
\nfrom RPA.Robocorp.WorkItems import WorkItems\n\nwi = WorkItems()\nwi.get_input_work_item()\ncustomers = wi.get_work_item_variable("customers")\nprint(customers)\n
\n
\n", @@ -71527,7 +71527,7 @@ "name": "RPA.Robocloud.Secrets", "doc": "
\n

Vault is a library for interacting with secrets stored in the Robocorp\nControl Room Vault (by default) or file-based secrets, which can be taken\ninto use by setting some environment variables.

\n

Robocorp Vault relies on environment variables, which are normally set\nautomatically by the Robocorp Work Agent or Assistant when a run is\ninitialized by the Robocorp Control Room. When developing robots locally\nin VSCode, you can use the Robocorp Code Extension to set these\nvariables automatically as well.

\n

Alternatively, you may set these environment variable manually using\nrcc or directly in some other fashion. The specific variables which\nmust exist are:

\n
    \n
  • RC_API_SECRET_HOST: URL to Robocorp Vault API
  • \n
  • RC_API_SECRET_TOKEN: API Token for Robocorp Vault API
  • \n
  • RC_WORKSPACE_ID: Control Room Workspace ID
  • \n
\n

File-based secrets can be set by defining two environment variables.

\n
    \n
  • RPA_SECRET_MANAGER: RPA.Robocorp.Vault.FileSecrets
  • \n
  • RPA_SECRET_FILE: Absolute path to the secrets database file
  • \n
\n

Example content of local secrets file:

\n
\n{\n    "swaglabs": {\n        "username": "standard_user",\n        "password": "secret_sauce"\n    }\n}\n
\n

OR

\n
\nswaglabs:\n    username: standard_user\n    password: secret_sauce\n
\n

Examples of Using Secrets in a Robot

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    Collections\nLibrary    RPA.Robocorp.Vault\n\n*** Tasks ***\nReading secrets\n    ${secret}=    Get Secret  swaglabs\n    Log Many      ${secret}\n\nModifying secrets\n    ${secret}=          Get Secret      swaglabs\n    ${level}=           Set Log Level   NONE\n    Set To Dictionary   ${secret}       username    nobody\n    Set Log Level       ${level}\n    Set Secret          ${secret}\n
\n

Python

\n
\nfrom RPA.Robocorp.Vault import Vault\n\nVAULT = Vault()\n\ndef reading_secrets():\n    print(f"My secrets: {VAULT.get_secret('swaglabs')}")\n\ndef modifying_secrets():\n    secret = VAULT.get_secret("swaglabs")\n    secret["username"] = "nobody"\n    VAULT.set_secret(secret)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:04", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -71647,7 +71647,7 @@ "name": "RPA.Robocorp.Process", "doc": "
\n

A library for interacting with Control Room (CR) Process API endpoints.

\n

See Unattended processes for information about process run, step run and work\nitem states.

\n

See APIs and webhooks for information about Control Room APIs.

\n

The Process API endpoint is defined by RC_API_PROCESS_HOST environment variable,\nwhich is available during Robocorp Workforce Agent runs.

\n

Examples

\n

Robot Framework

\n

In the following example a task creates two input work items,\nand starts a process with those items. This results in 2 different\nprocess runs in the Control Room.

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.Process\nLibrary    RPA.Robocorp.Vault\n\n*** Keywords ***\nInitialize Process Library\n    ${secrets}=  Get Secret  ProcessAPI\n    Set Credentials\n    ...   ${secrets}[workspace_id]\n    ...   ${secrets}[process_id]\n    ...   ${secrets}[apikey]\n\n*** Tasks ***\nStart process with work items\n    [Setup]   Initialize Process Library\n    &{item1}=  Create Dictionary  fname=Mark  lname=Monkey\n    &{item2}=  Create Dictionary  fname=John  lname=Doe\n    @{items}=  Create List  ${item1}   ${item2}\n    Start Process  work_items=${items}  batch=True\n
\n

Robot Framework

\n

In the following example a task creates work item with files.\nTo include files in a work item, the item needs to be created\nbefore starting the process (note. different start keyword than above).

\n

In this example I am using same keywords and settings from above example.

\n
\n*** Tasks ***\nStart process with work items\n    [Setup]   Initialize Process Library\n    &{data}=  Create Dictionary  fname=Mark  lname=Monkey\n    @{files}=  Create List\n    ...   ${CURDIR}${/}workdata.xlsx\n    ...   ${CURDIR}${/}other.csv\n    ${item_id}=    Create Input Work Item\n    ...   payload=${data}\n    ...   files=${files}\n    Start Configured Process\n    ...  config_type=work_items\n    ...  extra_info=${item_id}\n
\n

Download from process runs artifacts all matching files

\n
\n*** Settings ***\nLibrary      RPA.Robocorp.Process\nLibrary      RPA.Robocorp.Vault\nLibrary      RPA.HTTP\nTask Setup   Set Control Room Variables\n\n*** Keywords ***\nDownload Artifacts Matching\n    [Arguments]   ${filematch}\n    @{workitems}=   List Process Work Items\n    FOR  ${item}  IN  @{workitems}\n        @{artifacts}=   List Run Artifacts\n        ...  process_run_id=${item}[processRunId]\n        ...  step_run_id=${item}[activityRunId]\n        FOR  ${artifact}  IN  @{artifacts}\n            IF  "${filematch}"  IN   "${artifact}[fileName]"\n                ${download_link}=   Get Robot Run Artifact\n                ...  process_run_id=${item}[processRunId]\n                ...  step_run_id=${item}[activityRunId]\n                ...  artifact_id=${artifact}[id]\n                ...  filename=${artifact}[fileName]\n                Download\n                ...  url=${download_link}\n                ...  target=%{ROBOT_ARTIFACTS}${/}${artifact}[fileName]\n                ...  overwrite=${TRUE}\n                ...  stream=${TRUE}\n            END\n        END\n    END\n
\n

Python

\n

List work items in Control Room and retry failed items.

\n
\nfrom RPA.Robocorp.Process import Process\nfrom RPA.Robocorp.Vault import Vault\n\nsecrets = Vault().get_secret("ProcessAPI")\nprocess = Process(\n    secrets["workspace_id"],\n    secrets["process_id"],\n    secrets["apikey"]\n)\n\n\ndef retry_failed_items():\n    items = process.list_process_work_items()\n    for item in items:\n        if item["state"] == "FAILED":\n            print("FAILED work item: %s" % item["id"])\n            result = process.retry_work_item(item["id"])\n            print(result)\n\nif __name__ == "__main__":\n    retry_failed_items()\n
\n

Download from process runs artifacts all ".xlsx" files

\n
\nfrom RPA.Robocorp.Process import Process\nfrom RPA.HTTP import HTTP\n\ndef download_artifacts_matching(filematch=".xlsx"):\n    work_items = process.list_process_work_items()\n    for item in work_items:\n        artifacts = process.list_run_artifacts(\n            process_run_id=item["processRunId"],\n            step_run_id=item["activityRunId"]\n        )\n        for artifact in artifacts:\n            if filematch in artifact["fileName"]:\n                download_link = process.get_robot_run_artifact(\n                    process_run_id=item["processRunId"],\n                    step_run_id=item["activityRunId"],\n                    artifact_id=artifact["id"],\n                    filename=artifact["fileName"]\n                )\n                target_filepath = os.path.join(\n                    os.getenv("ROBOT_ARTIFACTS"),\n                    f"{artifact['fileName']}"\n                )\n                HTTP().download(\n                    url=download_link,\n                    target_file=target_filepath,\n                    overwrite=True,\n                    stream=True\n                )\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -72822,7 +72822,7 @@ "name": "RPA.Robocorp.Storage", "doc": "
\n

Control Room Asset Storage library operating with the cloud built-in key-value\nstore.

\n

Library requires at the minimum rpaframework version 24.0.0.

\n

Usage

\n
\n*** Tasks ***\nManage Assets\n    @{assets} =    List Assets\n    Log List    ${assets}\n\n    Set Text Asset    my-asset    My string asset value\n    ${value} =      Get Text Asset       my-asset\n    Log     Asset value: ${value}\n\n    Delete Asset    my-asset\n
\n
\nimport logging\nfrom RPA.Robocorp.Storage import Storage\n\nstorage = Storage()\n\ndef manage_assets():\n    assets = storage.list_assets()\n    logging.info(assets)\n\n    storage.set_text_asset("my-asset", "My string asset value")\n    value = storage.get_text_asset("my-asset")\n    logging.info("Asset value: %s", value)\n\n    storage.delete_asset("my-asset")\n
\n

Caveats

\n

Currently, there's no local file adapter support, therefore you need to be linked\nto Control Room and connected to a Workspace in VSCode before being able to develop\nlocally robots using this functionality.

\n

While the content type can be controlled (during bytes and file setting), it is\ncurrently disabled in this version of the library for simplicity reasons.

\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -73251,7 +73251,7 @@ "name": "RPA.Robocorp.Vault", "doc": "
\n

Vault is a library for interacting with secrets stored in the Robocorp\nControl Room Vault (by default) or file-based secrets, which can be taken\ninto use by setting some environment variables.

\n

Robocorp Vault relies on environment variables, which are normally set\nautomatically by the Robocorp Work Agent or Assistant when a run is\ninitialized by the Robocorp Control Room. When developing robots locally\nin VSCode, you can use the Robocorp Code Extension to set these\nvariables automatically as well.

\n

Alternatively, you may set these environment variable manually using\nrcc or directly in some other fashion. The specific variables which\nmust exist are:

\n
    \n
  • RC_API_SECRET_HOST: URL to Robocorp Vault API
  • \n
  • RC_API_SECRET_TOKEN: API Token for Robocorp Vault API
  • \n
  • RC_WORKSPACE_ID: Control Room Workspace ID
  • \n
\n

File-based secrets can be set by defining two environment variables.

\n
    \n
  • RPA_SECRET_MANAGER: RPA.Robocorp.Vault.FileSecrets
  • \n
  • RPA_SECRET_FILE: Absolute path to the secrets database file
  • \n
\n

Example content of local secrets file:

\n
\n{\n    "swaglabs": {\n        "username": "standard_user",\n        "password": "secret_sauce"\n    }\n}\n
\n

OR

\n
\nswaglabs:\n    username: standard_user\n    password: secret_sauce\n
\n

Examples of Using Secrets in a Robot

\n

Robot Framework

\n
\n*** Settings ***\nLibrary    Collections\nLibrary    RPA.Robocorp.Vault\n\n*** Tasks ***\nReading secrets\n    ${secret}=    Get Secret  swaglabs\n    Log Many      ${secret}\n\nModifying secrets\n    ${secret}=          Get Secret      swaglabs\n    ${level}=           Set Log Level   NONE\n    Set To Dictionary   ${secret}       username    nobody\n    Set Log Level       ${level}\n    Set Secret          ${secret}\n
\n

Python

\n
\nfrom RPA.Robocorp.Vault import Vault\n\nVAULT = Vault()\n\ndef reading_secrets():\n    print(f"My secrets: {VAULT.get_secret('swaglabs')}")\n\ndef modifying_secrets():\n    secret = VAULT.get_secret("swaglabs")\n    secret["username"] = "nobody"\n    VAULT.set_secret(secret)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:17", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -73371,7 +73371,7 @@ "name": "RPA.Robocorp.WorkItems", "doc": "
\n

A library for interacting with Control Room work items.

\n

Work items are used for managing data that go through multiple\nsteps and tasks inside a process. Each step of a process receives\ninput work items from the previous step, and creates output work items for\nthe next step.

\n

Item structure

\n

A work item's data payload is JSON and allows storing anything that is\nserializable. This library by default interacts with payloads that\nare a dictionary of key-value pairs, which it treats as individual\nvariables. These variables can be exposed to the Robot Framework task\nto be used directly.

\n

In addition to the data section, a work item can also contain files,\nwhich are stored by default in Robocorp Control Room. Adding and using\nfiles with work items requires no additional setup from the user.

\n

Loading inputs

\n

The library automatically loads the first input work item, if the\nlibrary input argument autoload is truthy (default).

\n

After an input has been loaded its payload and files can be accessed\nthrough corresponding keywords, and optionally these values can be modified.

\n

E-mail triggering

\n

Since a process can be started in Control Room by sending an e-mail, a body\nin Text/JSON/YAML/HTML format can be sent as well and this gets attached to the\ninput work item with the rawEmail payload variable. This library automatically\nparses the content of it and saves into parsedEmail the dictionary\ntransformation of the original e-mail.

\n

If "Parse email" Control Room configuration option is enabled (recommended), then\nyour e-mail is automatically parsed in the work item under the email payload\nvariable, which is a dictionary containing a body holding the final parsed form\nof the interpreted e-mail body. The payload variable parsedEmail is still\navailable for backwards compatibility reasons and holds the very same body inside\nthe parsedEmail[Body].

\n

E-mail attachments will be added into the work item as files. Read more on:\nhttps://robocorp.com/docs/control-room/attended-or-unattended/email-trigger

\n

Example:

\n

After starting the process by sending an e-mail with a body like:

\n
\n{\n    "message": "Hello world!"\n}\n
\n

The robot can use the parsed e-mail body's dictionary:

\n
\n*** Tasks ***\nUsing Parsed Emails\n    ${mail} =    Get Work Item Variable    email\n    Set Work Item Variables    &{mail}[body]\n    ${message} =     Get Work Item Variable     message\n    Log    ${message}    # will print "Hello world!"\n
\n

The behaviour can be disabled by loading the library with\nauto_parse_email=${None} or altered by providing to it a dictionary with one\n"key: value" where the key is usually "email.text" (deprecated "rawEmail", the\nvariable set by Control Room, which acts as source for the parsed (deprecated raw)\ne-mail data) and the value can be "email.body" (deprecated "parsedEmail", where the\nparsed e-mail data gets stored into), value which can be customized and retrieved\nwith Get Work Item Variable.

\n

Creating outputs

\n

It's possible to create multiple new work items as an output from a\ntask. With the keyword Create Output Work Item a new empty item\nis created as a child for the currently loaded input.

\n

All created output items are sent into the input queue of the next\nstep in the process.

\n

Active work item

\n

Keywords that read or write from a work item always operate on the currently\nactive work item. Usually that is the input item that has been automatically\nloaded when the execution started, but the currently active item is changed\nwhenever the keywords Create Output Work Item or Get Input Work Item\nare called. It's also possible to change the active item manually with the\nkeyword Set current work item.

\n

Saving changes

\n

While a work item is loaded automatically when a suite starts, changes are\nnot automatically reflected back to the source. The work item will be modified\nlocally and then saved when the keyword Save Work Item is called.\nThis also applies to created output work items.

\n

It is recommended to defer saves until all changes have been made to prevent\nleaving work items in a half-modified state in case of failures.

\n

Local Development

\n

While Control Room is the default implementation, it can also be replaced\nwith a custom adapter. The selection is based on either the default_adapter\nargument for the library, or the RPA_WORKITEMS_ADAPTER environment\nvariable. The library has a built-in alternative adapter called FileAdapter for\nstoring work items to disk.

\n

The FileAdapter uses a local JSON file for input work items.\nIt's a list of work items, each of which has a data payload and files.

\n

An example of a local file with one work item:

\n
\n[\n    {\n        "payload": {\n            "variable1": "a-string-value",\n            "variable2": ["a", "list", "value"]\n        },\n        "files": {\n            "file1": "path/to/file.ext"\n        }\n    }\n]\n
\n

Output work items (if any) are saved to an adjacent file\nwith the same name, but with the extension .output.json. You can specify\nthrough the "RPA_OUTPUT_WORKITEM_PATH" env var a different path and name for this\nfile.

\n

Simulating the Cloud with Robocorp Code VSCode Extension

\n

If you are developing in VSCode with the Robocorp Code extension, you can\nutilize the built in local development features described in the\nDeveloping with work items locally section of the\nUsing work items development guide.

\n

Examples

\n

Robot Framework

\n

In the following example a task creates an output work item,\nand attaches some variables to it.

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.WorkItems\n\n*** Tasks ***\nSave variables to Control Room\n    Create Output Work Item\n    Set work item variables    user=Dude    mail=address@company.com\n    Save Work Item\n
\n

In the next step of the process inside a different robot, we can use\npreviously saved work item variables. Also note how the input work item is\nloaded implicitly when the suite starts.

\n
\n*** Settings ***\nLibrary    RPA.Robocorp.WorkItems\n\n*** Tasks ***\nUse variables from Control Room\n    Set task variables from work item\n    Log    Variables are now available: s${user}, ${mail}\n
\n

Python

\n

The library can also be used through Python, but it does not implicitly\nload the first work item.

\n
\nimport logging\nfrom RPA.Robocorp.WorkItems import WorkItems\n\ndef list_variables(item_id):\n    library = WorkItems()\n    library.get_input_work_item()\n\n    variables = library.get_work_item_variables()\n    for variable, value in variables.items():\n        logging.info("%s = %s", variable, value)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -73768,10 +73768,10 @@ "name": "default", "types": [], "typedocs": {}, - "defaultValue": "", + "defaultValue": "", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "default=" + "repr": "default=" } ], "doc": "
\n

Return a single variable value from the work item,\nor default value if defined and key does not exist.

\n

If key does not exist and default is not defined, raises KeyError.

\n\n\n\n\n\n\n\n\n\n
param name:Name of variable
param default:Default value if key does not exist
\n

Robot Framework Example:

\n
\n*** Tasks ***\nUsing a work item\n    ${username}=    Get work item variable    username    default=guest\n
\n

Python Example:

\n
\nfrom RPA.Robocorp.WorkItems import WorkItems\n\nwi = WorkItems()\nwi.get_input_work_item()\ncustomers = wi.get_work_item_variable("customers")\nprint(customers)\n
\n
\n", @@ -74221,7 +74221,7 @@ "name": "RPA.RobotLogListener", "doc": "
\n

RobotLogListener is a library for controlling logging during\na Robot Framework execution using the listener API.

\n

About keyword parameters

\n

Parameters names and keywords for keywords Mute Run On Failure and Register Protected Keywords\ndo not need to be full names of keywords, ie. all keywords matching even partially will be affected.\nRun Keyword would match all BuiltIn library keywords (17 keywords in RF 3.2.1) and of course all\nRun Keyword named keywords in any resource and/or library file which are imported would be matched also.

\n

Mute Run On Failure

\n

This keyword is to be used specifically with RPA.Browser.Selenium library, which extends\nSeleniumLibrary. Normally most of the SeleniumLibrary keywords execute run_on_failure\nbehaviour, which can be set at library initialization. By default this behaviour is running\nCapture Page Screenshot keyword on failure.

\n

In the example task Check the official website below the keyword Run Keyword is muted and when\nit runs the keyword Element Should Be Visible then those failures do not create page screenshots\ninto log file.

\n

It is also possible to change default failure behaviour by giving parameter\noptional_keyword_to_run for Mute Run On Failure, see task Check the official website with error log.\nThis optional keyword would be then executed on failure. Due to the underlying SeleniumLibrary\nimplementation this keyword can't have arguments.

\n

Example of using Mute Run On Failure without and with optional keyword to run.

\n
\n*** Settings ***\nLibrary         RPA.Browser.Selenium\nLibrary         RPA.RobotLogListener\nTask Setup      Set Task Variable   ${TRIES}   1\nTask Teardown   Close All Browsers\n\n*** Tasks ***\nCheck the official website\n   Mute Run On Failure   Run Keyword\n   Open Available Browser   https://www.robocorp.com\n   Check for visible element\n   Capture Page Screenshot\n\nCheck the official website with error log\n   Mute Run On Failure   Run Keyword  optional_keyword_to_run=Log tries\n   Open Available Browser   https://www.robocorp.com\n   Check for visible element\n   Capture Page Screenshot\n\n*** Keywords ***\nCheck for visible element\n   FOR  ${idx}  IN RANGE  1   20\n      Set Task Variable   ${TRIES}   ${idx}\n      ${status}   Run Keyword And Return Status   Element Should Be Visible  id:xyz\n      Exit For Loop If   '${status}' == 'PASS'\n      Sleep  2s\n   END\n\nLog tries\n   Log  Checked element visibility ${TRIES} times\n
\n

Register Protected Keywords

\n

This keyword is used to totally disable logging for named keywords. In the example below\nthe keyword This will not output is protected and it will not be logging into Robot Framework\nlog files.

\n

Robot Framework

\n
\n*** Settings ***\nLibrary         RPA.RobotLogListener\n\n*** Tasks ***\nProtecting keywords\n   This will not output        # will output because called before register\n   Register Protected Keywords    This will not output\n   This will not output        # is now registered\n   This will output\n\n*** Keywords ***\nThis will not output\n   Log   1\n\nThis will output\n   Log   2\n
\n

Python

\n
\nfrom robot.libraries.BuiltIn import BuiltIn, RobotNotRunningError\nfrom RPA.RobotLogListener import RobotLogListener\n\ntry:\n   BuiltIn().import_library("RPA.RobotLogListener")\nexcept RobotNotRunningError:\n   pass\n\nclass CustomLibrary:\n\n   def __init__(self):\n      listener = RobotLogListener()\n      listener.register_protected_keywords(\n            ["CustomLibrary.special_keyword"]\n      )\n\n   def special_keyword(self):\n      print('will not be written to log')\n      return 'not shown in the log'\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -74435,7 +74435,7 @@ "name": "RPA.SAP", "doc": "

This library wraps the upstream SapGuiLibrary.

\n

The SapGuiLibrary is a library that enables users to create tests for the Sap Gui application

\n

The library uses the Sap Scripting Engine, therefore Scripting must be enabled in Sap in order for this library to work.

\n

Opening a connection / Before running tests

\n

First of all, you have to make sure the Sap Logon Pad is started. You can automate this process by using the AutoIT library or the Process Library.

\n

After the Sap Login Pad is started, you can connect to the Sap Session using the keyword connect to session.

\n

If you have a successful connection you can use Open Connection to open a new connection from the Sap Logon Pad or Connect To Existing Connection to connect to a connection that is already open.

\n

Locating or specifying elements

\n

You need to specify elements starting from the window ID, for example, wnd[0]/tbar[1]/btn[8]. In some cases the SAP ID contains backslashes. Make sure you escape these backslashes by adding another backslash in front of it.

\n

Screenshots (on error)

\n

The SapGUILibrary offers an option for automatic screenshots on error. Default this option is enabled, use keyword disable screenshots on error to skip the screenshot functionality. Alternatively, this option can be set at import.

", "version": "1.1", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -75659,7 +75659,7 @@ "name": "RPA.Salesforce", "doc": "
\n

Salesforce is a library for accessing Salesforce using REST API.\nThe library extends simple-salesforce library.

\n

More information available at Salesforce REST API Developer Guide.

\n

Dataloader

\n

The keyword execute_dataloader_import can be used to mimic\nSalesforce Dataloader import behaviour.

\n

input_object can be given in different formats. Below is an example where\ninput is in RPA.Table format in method a and list format in method b.

\n
\n*** Settings ***\nLibrary     RPA.Salesforce\nLibrary     RPA.Database\nTask Setup  Authorize Salesforce\n\n*** Tasks ***\n# Method a\n${orders}=        Database Query Result As Table\n...               SELECT * FROM incoming_orders\n${status}=        Execute Dataloader Insert\n...               ${orders}  ${mapping_dict}  Tilaus__c\n# Method b\n${status}=        Execute Dataloader Insert\n...               ${WORKDIR}${/}orders.json  ${mapping_dict}  Tilaus__c\n
\n

Example file orders.json

\n
\n[\n    {\n        "asiakas": "0015I000002jBLIQA2"\n    },\n    {\n        "asiakas": "0015I000002jBLDQA2"\n    },\n]\n
\n

mapping_object describes how the input data fields are mapped into Salesforce\nobject attributes. In the example, the mapping defines that asiakas attribute in the\ninput object is mapped into Tilaaja__c attribute of Tilaus__c custom Salesforce object.

\n
\n{\n    "Tilaus__c": {\n        "asiakas": "Tilaaja__c"\n    },\n}\n
\n

Object type could be, for example, Tilaus__c.

\n

Salesforce object operations

\n

Following operations can be used to manage Salesforce objects:

\n
    \n
  • Get Salesforce Object By Id
  • \n
  • Create Salesforce Object
  • \n
  • Update Salesforce Object
  • \n
  • Upsert Salesforce Object
  • \n
  • Delete Salesforce Object
  • \n
  • Get Salesforce Object Metadata
  • \n
  • Describe Salesforce Object
  • \n
\n

There are two ways to set the Salesforce domain. You can set the domain at time of\nlibrary import or using the Set Domain keyword.

\n

There are several ways to declare a domain at time of library import:

\n
\n*** Settings ***\nLibrary     RPA.Salesforce    sandbox=${TRUE}\n
\n

Or using the domain to your Salesforce My domain:

\n
\n*** Settings ***\nLibrary     RPA.Salesforce    domain="robocorp"\n
\n

The domain can also be set using the keyword Set Domain:

\n
\n*** Settings ***\nLibrary     RPA.Salesforce\n\n*** Tasks ***\n# Sets the domain for a sandbox environment\nSet Domain    sandbox\n\n# Sets the domain to a Salseforce My domain\nSet Domain    robocorp\n\n# Sets to domain to the default of 'login'\nSet Domain\n
\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary     RPA.Salesforce\nTask Setup  Authorize Salesforce\n\n*** Variables ***\n${ACCOUNT_NOKIA}    0015I000002jBLDQA2\n\n*** Tasks ***\nChange account details in Salesforce\n    &{account}=      Get Salesforce Object By Id   Account  ${ACCOUNT_NOKIA}\n    &{update_obj}=   Create Dictionary   Name=Nokia Ltd  BillingStreet=Nokia bulevard 1\n    ${result}=       Update Salesforce Object  Account  ${ACCOUNT_NOKIA}  ${update_obj}\n\n*** Keywords ***\nAuthorize Salesforce\n    ${secrets}=     Get Secret   salesforce\n    Auth With Token\n    ...        username=${secrets}[USERNAME]\n    ...        password=${secrets}[PASSWORD]\n    ...        api_token=${secrets}[API_TOKEN]\n
\n

Python

\n
\nimport pprint\nfrom RPA.Salesforce import Salesforce\nfrom RPA.Robocorp.Vault import FileSecrets\n\npp = pprint.PrettyPrinter(indent=4)\nfilesecrets = FileSecrets("secrets.json")\nsecrets = filesecrets.get_secret("salesforce")\n\nsf = Salesforce()\nsf.auth_with_token(\n    username=secrets["USERNAME"],\n    password=secrets["PASSWORD"],\n    api_token=secrets["API_TOKEN"],\n)\nnokia_account_id = "0015I000002jBLDQA2"\naccount = sf.get_salesforce_object_by_id("Account", nokia_account_id)\npp.pprint(account)\nbilling_information = {\n    "BillingStreet": "Nokia Bulevard 1",\n    "BillingCity": "Espoo",\n    "BillingPostalCode": "01210",\n    "BillingCountry": "Finland",\n}\nresult = sf.update_salesforce_object("Account", nokia_account_id, billing_information)\nprint(f"Update result: {result}")\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -76718,7 +76718,7 @@ "name": "RPA.Slack", "doc": "
\n

RPA Framework library for Slack operations.

\n
\n", "version": "", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:05", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -76906,7 +76906,7 @@ "name": "RPA.Smartsheet", "doc": "
\n

Smartsheet is a library for accessing Smartsheet using the\nSmartsheet API 2.0. It extends smartsheet-python-sdk.

\n
\n

Getting started

\n

To use this library, you need to have a Smartsheet account and an API token.\nYou can get your API token from the Smartsheet Developer Portal.\nThis library currently only supports raw token authentication. Once\nobtained, you can configure the access token using the Set Access Token\nkeyword or via the access_token argument in the library import.

\n
\n
\n

Working on a sheet

\n

The library supports working on a single sheet at a time. To select a sheet\nto work on, use the Select Sheet keyword. This will set the sheet as\nthe active sheet for all subsequent operations. Some operations\nupdate the sheet, but this will not necessarily be reflected in the active\nsheet. To refresh the active sheet, use the Refresh Sheet keyword.

\n
\n
\n

Native Smartsheet objects

\n

You can retrieve the native Smartsheet object from many keywords by\nspecifying the native argument. The default will return a more\ncommon Python object, such as a dictionary or list. The native object\nis a class from the smartsheet-python-sdk library and will have\nadditional methods and attributes. The most important attributes\navailable for most native objects are (some may be unavailable\nfor some objects):

\n
    \n
  • id: the unique identifier of the object
  • \n
  • name: the name of the object
  • \n
  • title: the title of a column
  • \n
  • permalink: the URL to the object
  • \n
\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:18", + "generated": "2023-11-01 16:13:06", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -78223,7 +78223,7 @@ "name": "RPA.Tables", "doc": "
\n

Tables is a library for manipulating tabular data inside Robot Framework.

\n

It can import data from various sources and apply different operations to it.\nCommon use-cases are reading and writing CSV files, inspecting files in\ndirectories, or running tasks using existing Excel data.

\n

Import types

\n

The data a table can be created from can be of two main types:

\n
    \n
  1. An iterable of individual rows, like a list of lists, or list of dictionaries
  2. \n
  3. A dictionary of columns, where each dictionary value is a list of values
  4. \n
\n

For instance, these two input values:

\n
\ndata1 = [\n    {"name": "Mark", "age": 58},\n    {"name": "John", "age": 22},\n    {"name": "Adam", "age": 67},\n]\n\ndata2 = {\n    "name": ["Mark", "John", "Adam"],\n    "age":  [    58,     22,     67],\n}\n
\n

Would both result in the following table:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
IndexNameAge
0Mark58
1John22
2Adam67
\n

Indexing columns and rows

\n

Columns can be referred to in two ways: either with a unique string\nname or their position as an integer. Columns can be named either when\nthe table is created, or they can be (re)named dynamically with keywords.\nThe integer position can always be used, and it starts from zero.

\n

For instance, a table with columns "Name", "Age", and "Address" would\nallow referring to the "Age" column with either the name "Age" or the\nnumber 1.

\n

Rows do not have a name, but instead only have an integer index. This\nindex also starts from zero. Keywords where rows are indexed also support\nnegative values, which start counting backwards from the end.

\n

For instance, in a table with five rows, the first row could be referred\nto with the number 0. The last row could be accessed with either 4 or\n-1.

\n

Examples

\n

Robot Framework

\n

The Tables library can load tabular data from various other libraries\nand manipulate it inside Robot Framework.

\n
\n*** Settings ***\nLibrary    RPA.Tables\n\n*** Keywords ***\nFiles to Table\n    ${files}=    List files in directory    ${CURDIR}\n    ${files}=    Create table    ${files}\n    Filter table by column    ${files}    size  >=  ${1024}\n    FOR    ${file}    IN    @{files}\n        Log    ${file}[name]\n    END\n    Write table to CSV    ${files}    ${OUTPUT_DIR}${/}files.csv\n
\n

Python

\n

The library is also available directly through Python, where it\nis easier to handle multiple different tables or do more bespoke\nmanipulation operations.

\n
\nfrom RPA.Tables import Tables\n\nlibrary = Tables()\norders = library.read_table_from_csv(\n    "orders.csv", columns=["name", "mail", "product"]\n)\n\ncustomers = library.group_table_by_column(rows, "mail")\nfor customer in customers:\n    for order in customer:\n        add_cart(order)\n    make_order()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:19", + "generated": "2023-11-01 16:13:06", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -79891,7 +79891,7 @@ "name": "RPA.Tasks", "doc": "
\n

Tasks is a library for controlling task execution during a Robot Framework run.

\n

It allows conditional branching between tasks, loops and jumps, and optionally\nvalidating the execution through a schema file. It can also be used to\nvisualize the tasks as a graph.

\n

Execution model

\n

In a typical Robot Framework run, tasks are ordered linearly in a file and\nthey're executed in definition order. Events that happen during\nthe execution can not affect the order and only have the option to fail the task\nor continue as defined.

\n

Using the Tasks library, it's possible to change this model according\nto different states or inputs. The execution will start by running a single\nstart task from the suite, and then according to user-defined keywords or\nschema rules select the next task. Any task which is defined in the same file\ncan be used, and the same task can also be used multiple times during a single\nexecution.

\n

Example:

\n

As an example, the following Robot Framework file describes a process where\na task would have to be executed multiple times before a condition is reached.\nIn a real-world scenario, these tasks would be more complicated, instead of just\nincrementing numbers.

\n
\n*** Settings ***\nLibrary    RPA.Tasks\n\n*** Variables ***\n${CURRENT}    ${1}\n${TARGET}     ${5}\n\n*** Tasks ***\nCheck loop condition\n    Log    I'm trying to count to ${TARGET}\n    Set next task if    ${CURRENT} >= ${TARGET}\n    ...    Target reached\n    ...    Increment current number\n\nThis will not run\n    Fail    This should never run\n\nIncrement current number\n    Set suite variable    ${CURRENT}    ${CURRENT + 1}\n    Log    Number is now ${CURRENT}\n    Jump to task    Check loop condition\n\nTarget reached\n    Log    Those are some good numbers!\n
\n

The execution for this example would go as follows:

\n
    \n
  1. It starts from Check loop condition, as it's the first task in the file.
  2. \n
  3. During the first task, the keyword Set next task if is called, which queues\nup the next task according to a condition.
  4. \n
  5. In the initial state, we have not reached the target number, and will next run\nthe task Increment current number.
  6. \n
  7. The second task executes normally and in the end jumps back to the first\ntask using the keyword Jump to task.
  8. \n
  9. The above sequence is repeated until the condition is met, and we move to\nthe final task of the file. This final task does not schedule further tasks\nand the execution ends.
  10. \n
\n

You can also note the task This will not run, which as the name implies\nis never executed, as no other task schedules or jumps to it.

\n

The console log from the above execution shows how the same task is executed\nmultiple times:

\n
\n==============================================================================\nIncrementing Process\n==============================================================================\n#1   Check loop condition                                             | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#2   Increment current number                                         | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#3   Check loop condition                                             | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#4   Increment current number                                         | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#5   Check loop condition                                             | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#6   Increment current number                                         | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#7   Check loop condition                                             | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#8   Increment current number                                         | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#9   Check loop condition                                             | PASS |\nTransition: Set by keyword\n------------------------------------------------------------------------------\n#10  Target reached                                                   | PASS |\n------------------------------------------------------------------------------\nIncrementing Process:: [/graph_incrementing_process.svg]              | PASS |\n10 critical tasks, 10 passed, 0 failed\n10 tasks total, 10 passed, 0 failed\n==============================================================================\n
\n

Graph

\n

A common way to document a process is through a directed graph. These graphs\nare usually drawn manually and describe the expected higher level steps.\nThe actual implementation itself follows a different path through a graph,\ndepending on inputs or implementation details. This library visualizes this\nexecution graph using the Graphviz tool.

\n

After the execution is finished, it will create a\nDOT file\nand render it as an image. This image will automatically be appended\nto the suite's documentation field.

\n

Requirements

\n

Drawing the graph requires a working installation of\nGraphviz. This can be installed through their\nwebsite or by using Conda.

\n

This requirement is optional for the functioning of this library, and will\ndisplay a warning if the tool is not available. The visualization\ncan be entirely disabled with the graph argument during library\ninitialization.

\n

Schema

\n

There is an option to define a schema file for the suite, which is written in JSON.\nThis file will be used to validate the actual execution and fail it if an unexpected\ntransition between tasks happens. It can also define rules for selecting the next\ntask, which allows separating the task and process definitions.

\n

Example:

\n

The execution-example shown previously used keywords to control\nthe execution. This can also be done using the following schema:

\n
\n{\n    "tasks": {\n        "Check loop condition": {\n            "alias": "check",\n            "start": true,\n            "next": [\n                "increment",\n                "target"\n            ],\n            "actions": [\n                {\n                    "condition": "$CURRENT >= $TARGET",\n                    "task": "target"\n                },\n                {\n                    "condition": "$CURRENT < $TARGET",\n                    "task": "increment"\n                }\n            ]\n        },\n        "Increment current number": {\n            "alias": "increment",\n            "next": [\n                "check"\n            ],\n            "actions": [\n                {\n                    "status": "PASS",\n                    "task": "check"\n                }\n            ]\n        },\n        "Target reached": {\n            "alias": "target",\n            "end": true,\n            "next": []\n        }\n    }\n}\n
\n

This has the added benefit of protecting against implementation errors,\nas the library will validate the start and end tasks, and transitions between\ndifferent tasks.

\n

After this schema has been taken into use, the aforementioned example\nwill reduce to the following:

\n
\n*** Settings ***\nLibrary    RPA.Tasks    schema=counter-schema.json\n\n*** Variables ***\n${CURRENT}    ${1}\n${TARGET}     ${5}\n\n*** Tasks ***\nCheck loop condition\n    Log    I'm trying to count to ${TARGET}\n\nThis will not run\n    Fail    This should never run\n\nIncrement current number\n    Set suite variable    ${CURRENT}    ${CURRENT + 1}\n    Log    Number is now ${CURRENT}\n\nTarget reached\n    Log    Those are some good numbers!\n
\n

Format

\n

The current format is JSON with the following structure:

\n
\n{\n    "tasks": {\n        [name: string]: {\n            "alias": string,\n            "start": boolean,\n            "end": boolean,\n            "next": string[],\n            "actions": action[],\n        }\n    }\n}\n
\n

Each schema is a map of tasks with various properties. The keys must\nmatch the task names in the Robot Framework file definition. All properties\ninside the task are optional.

\n

The available properties and their uses:

\n
    \n
  • \n
    alias: Define a short name for the task, which can be used as a reference
    \n
    inside the schema.
    \n
    \n
  • \n
  • \n
    start: Start task for execution. There can be only one task with this
    \n
    enabled. If not defined, will default to first task in the file.
    \n
    \n
  • \n
  • \n
    end: Valid end task for execution. There can be multiple tasks with this
    \n
    enabled. Fails the execution if this is defined for any task and the\nexecution stops in a non-end task.
    \n
    \n
  • \n
  • \n
    next: List of valid tasks to transition to from this task. Supports
    \n
    alias definitions.
    \n
    \n
  • \n
  • \n
    actions: List of actions that are executed at the end of the task.
    \n
    See section below for details.
    \n
    \n
  • \n
\n

The types of actions:

\n
    \n
  • \n
    exception: Set the next task if a matching exception occurs.
    \n
    Matches the exception message as regex.
    \n
    \n
  • \n
  • \n
    condition: Set the next task if a conditional expression is true.
    \n
    Allows using Robot Framework variables.
    \n
    \n
  • \n
  • \n
    status: Set the next task if the current task's result matches,
    \n
    e.g. PASS or FAIL.
    \n
    \n
  • \n
\n

Examples of actions:

\n
\n[\n    {"exception": ".*ValueError.*", "task": "Invalid input values"},\n    {"condition": "$ATTEMPTS > 10", "task": "Too many attempts"},\n    {"status": "PASS", "task": "Success state"}\n]\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:19", + "generated": "2023-11-01 16:13:06", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -80219,7 +80219,7 @@ "name": "RPA.Twitter", "doc": "
\n

Twitter is a library for accessing Twitter using developer API.\nThe library extends tweepy library.

\n

Authorization credentials can be given as parameters for authorize keyword\nor keyword can read them in as environment variables:

\n
    \n
  • TWITTER_CONSUMER_KEY
  • \n
  • TWITTER_CONSUMER_SECRET
  • \n
  • TWITTER_ACCESS_TOKEN
  • \n
  • TWITTER_ACCESS_TOKEN_SECRET
  • \n
\n

Library usage requires Twitter developer credentials.\nThose can be requested from Twitter developer site

\n

Examples

\n
\n*** Settings ***\nLibrary   RPA.Twitter\n\n*** Tasks ***\nGet user tweets and like them\n    [Setup]   Authorize\n    @{tweets}=   Get User Tweets   username=niinisto   count=5\n    FOR   ${tweet}  IN   @{tweets}\n        Like   ${tweet}\n    END\n
\n
\nfrom RPA.Twitter import Twitter\n\nlibrary = Twitter()\nlibrary.authorize()\ntweets = library.get_user_tweets(username="niinisto", count=5)\nfor tw in tweets:\n    library.like(tw)\ntweets = library.text_search_tweets(query="corona trump")\nfor tw in tweets:\n    print(tw.text)\nuser = library.get_user_profile("niinisto")\nlibrary.follow(user)\nlibrary.tweet("first tweet")\nme = library.get_me()\nprint(me)\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:19", + "generated": "2023-11-01 16:13:06", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -80696,7 +80696,7 @@ "name": "RPA.Windows", "doc": "
\n

The Windows is a library that can be used for Windows desktop automation.

\n

Library is included in the rpaframework package by default, but as shown in the\nbelow example library can be also installed separately without rpaframework.

\n
\nchannels:\n  - conda-forge\ndependencies:\n  - python=3.9.13\n  - pip=22.1.2\n  - pip:\n    - rpaframework-windows==7.0.2 # standalone Windows library (rpaframework includes this library)\n
\n

About terminology

\n

ControlType is a value referred to by locator keys type: or control. Represents type of application\nobject, which can be e.g. Window, Button or ListItem.

\n

Element is an entity of an application structure (e.g. certain button in a window), which can be\nidentified by a locator. (also referred as Control)

\n

WindowsElement is an library container object for the Element. All the keywords returning elements, will in\nfact return WindowsElement`s. The ones accepting `locator or root_element as arguments, will accept\nWindowsElement as an argument value. (locator accepts strings as well)

\n

Structure of the WindowsElement

\n
\nclass WindowsElement:\n    item: Control        # `item` contains object instance of the element\n    locator: str         # `locator` that found this element\n    name: str            # `Name` attribute of the element\n    automation_id: str   # `AutomationId` attribute of the element\n    control_type: str    # `ControlTypeName` attribute of the element\n    class_name: str      # `ClassName` attribute of the element\n    left: int            # element's rectangle left coordinate\n    right: int           # element's rectangle right coordinate\n    top: int             # element's rectangle top coordinate\n    bottom: int          # element's rectangle bottom coordinate\n    width: int           # element's rectangle horizontal width\n    height: int          # element's rectangle vertical height\n    xcenter: int         # element's rectangle center point x coordinate\n    ycenter: int         # element's rectangle center point y coordinate\n
\n

Example of the WindowsElement usage

\n
\n${rows}=    Get Elements    class:DataGridRow\n# ${rows} is a list of `WindowsElement`s\nFOR    ${row}    IN    @{rows}\n    Log To Console   ${row.name}                # access `WindowsElement`\n    Log To Console   ${row.item.AutomationId}   # access `WindowsElement.item` directly\n    Log To Console   ${row.item.Name}           # same as `${row.name}`\nEND\n
\n

Locators

\n

Locators are based on different strategies that can used identify Control object.

\n

Available strategies that can be used for the locators:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyMaps to search property
nameName
classClassName
typeControlType
controlControlType
idAutomationId
automationidAutomationId
regexRegexName
subnameSubName
indexfoundIndex (int)
offsetoffset coordinates (x (int), y (int)) from control center
executabletarget window by its executable name
handletarget window handle (int)
desktopSPECIAL target desktop, no value for the key e.g. desktop:desktop and name:Calculator
processNOT YET SUPPORTED target window by its executable's process id
depthsearchDepth (int) for finding Control (default 8)
pathtarget element by its index-based path traversal (e.g. path:2|3|8|2)
\n

About root element on locators

\n

Locators work on currently active root element. At the start root element is the whole\ndesktop. There are different ways on changing this root element.

\n

Keyword Control Window is the most common method of setting certain system window\nas a root element for further actions using locators. In the absence of a provided\nroot_element parameter, here's how you can control the default root element\nresolving:

\n
\n
    \n
  • Set Anchor: Sets the active anchor window from which the search begins.
  • \n
  • Control Window: Controls and focuses on a window and marks it as the current\nactive window, from which all the subsequent searches will start from in the\nabsence of a set anchor.
  • \n
  • If there's no set anchor nor active window, then the last resort will be the\n"Desktop" element itself.
  • \n
\n
\n

Locators themselves support cascading syntax (denoted by character > in the locator string),\nwhich can denote root element in "parent (root) & child" terms.

\n

For example.

\n
\nClick  id:controls > id:activate\n
\n

On the above example the left side of the > character, id:controls, represents the root element\n(can be called as "parent element" in this case). Right side of the locator string, id:activate,\nrepresents "child" element and it will be searched under the "parent element".

\n

This way element search is more efficient, because search are restricted to certain section of element\ntree which can be quite huge especially on the desktop level and in certain applications.

\n

Keyword examples:

\n
\nControl Window    name:Calculator\nControl Window    Calculator  # will execute search by 'name:Calculator'\nControl Window    executable:Spotify.exe\n
\n

some example locators, and can be omitted ie. space between locator keys means the same thing as and:

\n
\nid:clearButton\ntype:Group and name:"Number pad" > type:Button and index:4\ntype:Group and name:"Number pad" > control:Button index:5\nid:Units1 > name:${unit}\nclass:Button offset:370,0\n
\n

About locator restrictions

\n

Visual locators are not supported in this library and they can't be used in the same chain with these\nWindows locators. Visual locators are supported by the RPA.Desktop library. Locator chaining (image and\nWindows locators) support will be added in the future.

\n

Locator syntax does not yet support OR operation (only AND operations).

\n

About search depth

\n

The library does element search depth by default to the level of 8. This means that locator will look into\n8 levels of elements under element tree of the root element. This can lead into situation where element\ncan't be found. To fix this it is recommended to set root element which can be found within 8 levels OR\ndefining depth in the locator string to a bigger value, e.g. id:deeplyNestedButton depth:16. Useful\nkeywords for setting root element are Control Window, Set Anchor and Get Element.

\n

About the path strategy

\n

When automation IDs and names aren't enough (or not reliable), then you can fallback\nto the positions of elements in a tree. This can be achieved using the path:\nstrategy to specify a list of element positions which indicates how to traverse the\ntree from parent to child beginning with the resolved root.

\n

Example: Calculator > path:2|3|2|8|2 - this locator looks for the "Calculator"\nwindow, then it looks for the 2nd direct child and then it looks for the 3rd one of\nthe previous child and so on until it consumes the path completely. (indexes start\nwith 1)

\n

An alternative way to get the whole tree to explore it yourself would be to use the\nPrint Tree keyword.

\n

Keyboard and mouse

\n

Keys for the keyboard actions are given using uiautomation specification.

\n

Special keys which are given within {} syntax.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeyMaps to action
LBUTTONLeft mouse button
RBUTTONRight mouse button
CANCELControl-break processing
MBUTTONMiddle mouse button (three-button mouse)
XBUTTON1X1 mouse button
XBUTTON2X2 mouse button
BACKBACKSPACE key
TABTAB key
CLEARCLEAR key
RETURNENTER key
ENTERENTER key
SHIFTSHIFT key
CTRLCTRL key
CONTROLCTRL key
ALTALT key
PAUSEPAUSE key
CAPITALCAPS LOCK key
KANAIME Kana mode
HANGUELIME Hanguel mode (maintained for compatibility; use VK_HANGUL)
HANGULIME Hangul mode
JUNJAIME Junja mode
FINALIME final mode
HANJAIME Hanja mode
KANJIIME Kanji mode
ESCESC key
ESCAPEESC key
CONVERTIME convert
NONCONVERTIME nonconvert
ACCEPTIME accept
MODECHANGEIME mode change request
SPACESPACEBAR
PRIORPAGE UP key
PAGEUPPAGE UP key
NEXTPAGE DOWN key
PAGEDOWNPAGE DOWN key
ENDEND key
HOMEHOME key
LEFTLEFT ARROW key
UPUP ARROW key
RIGHTRIGHT ARROW key
DOWNDOWN ARROW key
SELECTSELECT key
PRINTPRINT key
EXECUTEEXECUTE key
SNAPSHOTPRINT SCREEN key
PRINTSCREENPRINT SCREEN key
INSERTINS key
INSINS key
DELETEDEL key
DELDEL key
HELPHELP key
WINLeft Windows key (Natural keyboard)
LWINLeft Windows key (Natural keyboard)
RWINRight Windows key (Natural keyboard)
APPSApplications key (Natural keyboard)
SLEEPComputer Sleep key
NUMPAD0Numeric keypad 0 key
NUMPAD1Numeric keypad 1 key
NUMPAD2Numeric keypad 2 key
NUMPAD3Numeric keypad 3 key
NUMPAD4Numeric keypad 4 key
NUMPAD5Numeric keypad 5 key
NUMPAD6Numeric keypad 6 key
NUMPAD7Numeric keypad 7 key
NUMPAD8Numeric keypad 8 key
NUMPAD9Numeric keypad 9 key
MULTIPLYMultiply key
ADDAdd key
SEPARATORSeparator key
SUBTRACTSubtract key
DECIMALDecimal key
DIVIDEDivide key
F1F1 key
F2F2 key
F3F3 key
F4F4 key
F5F5 key
F6F6 key
F7F7 key
F8F8 key
F9F9 key
F10F10 key
F11F11 key
F12F12 key
F13F13 key
F14F14 key
F15F15 key
F16F16 key
F17F17 key
F18F18 key
F19F19 key
F20F20 key
F21F21 key
F22F22 key
F23F23 key
F24F24 key
NUMLOCKNUM LOCK key
SCROLLSCROLL LOCK key
LSHIFTLeft SHIFT key
RSHIFTRight SHIFT key
LCONTROLLeft CONTROL key
LCTRLLeft CONTROL key
RCONTROLRight CONTROL key
RCTRLRight CONTROL key
LALTLeft MENU key
RALTRight MENU key
BROWSER_BACKBrowser Back key
BROWSER_FORWARDBrowser Forward key
BROWSER_REFRESHBrowser Refresh key
BROWSER_STOPBrowser Stop key
BROWSER_SEARCHBrowser Search key
BROWSER_FAVORITESBrowser Favorites key
BROWSER_HOMEBrowser Start and Home key
VOLUME_MUTEVolume Mute key
VOLUME_DOWNVolume Down key
VOLUME_UPVolume Up key
MEDIA_NEXT_TRACKNext Track key
MEDIA_PREV_TRACKPrevious Track key
MEDIA_STOPStop Media key
MEDIA_PLAY_PAUSEPlay/Pause Media key
LAUNCH_MAILStart Mail key
LAUNCH_MEDIA_SELECTSelect Media key
LAUNCH_APP1Start Application 1 key
LAUNCH_APP2Start Application 2 key
OEM_1Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the ';:' key
OEM_PLUSFor any country/region, the '+' key
OEM_COMMAFor any country/region, the ',' key
OEM_MINUSFor any country/region, the '-' key
OEM_PERIODFor any country/region, the '.' key
OEM_2Used for miscellaneous characters; it can vary by keyboard.
OEM_3Used for miscellaneous characters; it can vary by keyboard.
OEM_4Used for miscellaneous characters; it can vary by keyboard.
OEM_5Used for miscellaneous characters; it can vary by keyboard.
OEM_6Used for miscellaneous characters; it can vary by keyboard.
OEM_7Used for miscellaneous characters; it can vary by keyboard.
OEM_8Used for miscellaneous characters; it can vary by keyboard.
OEM_102Either the angle bracket key or the backslash key on the RT 102-key keyboard
PROCESSKEYIME PROCESS key
PACKETUsed to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KeyUp
ATTNAttn key
CRSELCrSel key
EXSELExSel key
EREOFErase EOF key
PLAYPlay key
ZOOMZoom key
NONAMEReserved
PA1PA1 key
OEM_CLEARClear key
\n

Examples.

\n
\nlib = Windows()\n# {Ctrl}, {Delete} ... are special keys' name in SpecialKeyNames.\nlib.send_keys('{Ctrl}a{Delete}{Ctrl}v{Ctrl}s{Ctrl}{Shift}s{Win}e{PageDown}') #press Ctrl+a, Delete, Ctrl+v, Ctrl+s, Ctrl+Shift+s, Win+e, PageDown\nlib.send_keys('{Ctrl}(AB)({Shift}(123))') #press Ctrl+A+B, type '(', press Shift+1+2+3, type ')', if '()' follows a hold key, hold key won't release util ')'\nlib.send_keys('{Ctrl}{a 3}') #press Ctrl+a at the same time, release Ctrl+a, then type 'a' 2 times\nlib.send_keys('{a 3}{B 5}') #type 'a' 3 times, type 'B' 5 times\nlib.send_keys('{{}Hello{}}abc {a}{b}{c} test{} 3}{!}{a} (){(}{)}') #type: '{Hello}abc abc test}}}!a ()()'\nlib.send_keys('0123456789{Enter}')\nlib.send_keys('ABCDEFGHIJKLMNOPQRSTUVWXYZ{Enter}')\nlib.send_keys('abcdefghijklmnopqrstuvwxyz{Enter}')\nlib.send_keys('`~!@#$%^&*()-_=+{Enter}')\nlib.send_keys('[]{{}{}}\\|;:'",<.>/?{Enter}')\n
\n

Using access key of the element (element property -> AccessKey 'alt+s').\nThe (+s) means that previous special key is kept down until closing parenthesis is reached.

\n

On the below example this means that 'ALT' key is pressed down, then '+' and 's' keys are pressed\ndown before they are all released up.

\n
\nSend Keys   keys={Alt}(+s)\n
\n

Mouse clicks can be executed with keywords specific for a type of a click, e.g. Click (normal click),\nDouble Click and Right Click.

\n

How to inspect

\n

Most common, and recommended by Microsoft, inspector tool for Windows is Accessibility Insights that\ncan be installed separately. Other options are tools Inspect Object and UI Automation Verify, which\ncan be accessed by installing Windows SDK.

\n

A more programmatic approach is to run Print Tree    log_as_warnings=${True}\nkeyword and then observe in the logs the found elements structure starting from\nDesktop (or the currently set anchor / active window) as root. (refer to keyword's\ndocumentation\nfor more details)

\n

Recording

\n

The package provides some rudimentary inspecting and recording via the\nwindows-record script, which can be started through the command line (in an\nenvironment containing the rpaframework-windows installation).

\n

Recording inspects elements on mouse click and can be stopped by pressing the\nESC key. Expected console output:

\n
\nC:\\Users\\User\\robots\\> windows-record -v  # or > python -m RPA.Windows -v\nMouse recording started. Use ESC to stop recording.\n\n--------------------------------------------------------------------------------\nCopy-paste the code below into your *** Tasks *** or *** Keywords ***\n--------------------------------------------------------------------------------\n\nControl Window    name:Calculator and type:WindowControl and class:ApplicationFrameWindow  # handle:9569486\nClick    name:Calculator and id:TitleBar and type:WindowControl and class:ApplicationFrameTitleBarWindow and path:1\nClick    name:"Display is 0" and id:CalculatorResults and type:TextControl and path:2|3|2|2\nClick    name:Eight and id:num8Button and type:ButtonControl and class:Button and path:2|3|2|8|9\nClick    name:Nine and id:num9Button and type:ButtonControl and class:Button and path:2|3|2|8|10\nClick    name:Clear and id:clearButton and type:ButtonControl and class:Button and path:2|3|2|5|3\n\n--------------------------------------------------------------------------------\n
\n

Check our Portal example in order to learn more abot the path: strategy in\nlocators and how to record elements displaying their paths:\nhttps://robocorp.com/portal/robot/robocorp/example-windows-element-path

\n

Video recorded demo on how to run the recorder script from VSCode:\nhttps://www.loom.com/share/2807372359f34b9cbe1bc2df9194ec68

\n

Caveats

\n
    \n
  • Make sure your display scaling is set to 100%, otherwise you might encounter\nissues when clicking or interacting with elements. (since offsets and coordinates\nget distorted)
  • \n
  • Disturbing the automation (like interacting with your mouse/keyboard) or having\nother apps obstructing the process interacting with your app of interest will\nmost probably affect the expected behaviour. In order to avoid this, try\ncontrolling the app's main window right before sending clicks or keys. And keep\ntargeting elements through string locators, as interacting with Windows\nelement objects previously retrieved will not work as expected in a future\naltered state of the app (changes under the element structure).
  • \n
\n

Example: Robot Framework

\n

The library must be imported first.

\n
\n*** Settings ***\nLibrary    RPA.Windows\n
\n

Windows Calculator automation task

\n
\n*** Tasks ***\nDo some calculations\n    [Setup]  Windows Run   calc.exe\n\n    Control Window    name:Calculator\n    Click    id:clearButton\n    Send Keys   keys=96+4=\n    ${result} =    Get Attribute    id:CalculatorResults    Name\n    Log To Console    ${result}\n\n    @{buttons} =  Get Elements  type:Group and name:"Number pad" > type:Button\n    FOR  ${button}  IN  @{buttons}\n        Log To Console   ${button}\n    END\n\n    [Teardown]   Close Current Window\n
\n

Example: Python

\n
\nfrom RPA.Windows import Windows\n\nlibrary = Windows()\n\ndef test_do_some_calculations():\n    library.windows_run("calc.exe")\n    try:\n        library.control_window("name:Calculator")\n        library.click("id:clearButton")\n        library.send_keys(keys="96+4=")\n        result = library.get_attribute("id:CalculatorResults", "Name")\n        print(result)\n        buttons = library.get_elements(\n            'type:Group and name:"Number pad" > type:Button'\n        )\n        for button in buttons:\n            print(button)\n    finally:\n        library.close_current_window()\n
\n
\n", "version": "", - "generated": "2023-11-01 15:54:19", + "generated": "2023-11-01 16:13:07", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -82147,10 +82147,10 @@ "typedocs": { "None": "None" }, - "defaultValue": "", + "defaultValue": "", "kind": "POSITIONAL_OR_NAMED", "required": false, - "repr": "validator: Callable | None = " + "repr": "validator: Callable | None = " } ], "doc": "
\n

Set value of the element defined by the locator.

\n

Note: An anchor will work only on element structures where you can\nrely on the stability of that root/child element tree, as remaining the same.\nUsually these kind of structures are tables. (but not restricted to)

\n

Note: It is important to set append=${True} if you want to keep the\ncurrent text in the element. Other option is to read the current text into a\nvariable, then modify that value as you wish and pass it to the Set Value\nkeyword for a complete text replacement. (without setting the append flag)

\n

The following exceptions may be raised:

\n
\n
    \n
  • ActionNotPossible if the element does not allow the SetValue action\nto be run on it nor having send_keys_fallback=${True}.
  • \n
  • ValueError if the new value to be set can't be set correctly.
  • \n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
param locator:String locator or element object.
param value:String value to be set.
param append:False for setting the value, True for appending it. (OFF by\ndefault)
param enter:Set it to True to press the Enter key at the end of the\ninput. (nothing is pressed by default)
param newline:Set it to True to add a new line at the end of the value. (no\nEOL included by default; this won't work with send_keys_fallback enabled)
param send_keys_fallback:
 Tries to set the value by sending it through keys\nif the main way of setting it fails. (enabled by default)
param validator:
 Function receiving two parameters post-setting, the expected\nand the current value, which returns True if the two values match. (by\ndefault, the keyword will raise if the values are different, set this to\nNone to disable validation or pass your custom function instead)
returns:The element object identified through the passed locator.
\n

Example: Robot Framework

\n
\n*** Tasks ***\nSet Values In Notepad\n    Set Value   type:DataItem name:column1   ab c  # Set value to "ab c"\n    # Press ENTER after setting the value.\n    Set Value    type:Edit name:"File name:"    console.txt   enter=${True}\n\n    # Add newline (manually) at the end of the string. (Notepad example)\n    Set Value    name:"Text Editor"  abc\\n\n    # Add newline with parameter.\n    Set Value    name:"Text Editor"  abc   newline=${True}\n\n    # Clear Notepad window and start appending text.\n    Set Anchor  name:"Text Editor"\n    # All the following keyword calls will use the anchor element as a\n    #  starting point, UNLESS they specify a locator explicitly or\n    #  Clear Anchor is used.\n    ${time} =    Get Time\n    # Clears with append=${False}. (default)\n    Set Value    value=The time now is ${time}\n    # Append text and add a newline at the end.\n    Set Value    value= and it's the task run time.   append=${True}\n    ...    newline=${True}\n    # Continue appending and ensure a new line at the end by pressing\n    #  the Enter key this time.\n    Set Value    value=But this will appear on the 2nd line now.\n    ...    append=${True}   enter=${True}   validator=${None}\n
\n

Example: Python

\n
\nfrom RPA.Windows import Windows\n\nlib_win = Windows()\nlocator = "Document - WordPad > Rich Text Window"\nelem = lib_win.set_value(locator, value="My text", send_keys_fallback=True)\ntext = lib_win.get_value(elem)\nprint(text)\n
\n
\n", @@ -82407,7 +82407,7 @@ "name": "RPA.Word.Application", "doc": "
\n

Word.Application is a library for controlling the Word application.

\n

Examples

\n

Robot Framework

\n
\n*** Settings ***\nLibrary                 RPA.Word.Application\nTask Setup              Open Application\nSuite Teardown          Quit Application\n\n*** Tasks ***\nOpen existing file\n    Open File           old.docx\n    Write Text          Extra Line Text\n    Write Text          Another Extra Line of Text\n    Save Document AS    ${CURDIR}${/}new.docx\n    ${texts}=           Get all Texts\n    Close Document\n
\n

Python

\n
\nfrom RPA.Word.Application import Application\n\napp = Application()\napp.open_application()\napp.open_file('old.docx')\napp.write_text('Extra Line Text')\napp.save_document_as('new.docx')\napp.quit_application()\n
\n

Caveats

\n

This library works on a Windows operating system with UI enabled only, and you must\nensure that you open the app first with Open Application before running any\nother relevant keyword which requires to operate on an open app. The application is\nautomatically closed at the end of the task execution, so this can be changed by\nimporting the library with the autoexit=${False} setting.

\n
\n*** Settings ***\nLibrary     RPA.Excel|Outlook|Word.Application    autoexit=${False}\n
\n

If you're running the Process by Control Room through a custom self-hosted Worker\nservice, then please make sure that you enable an RDP session by ticking "Use\nDesktop Connection" under the Step configuration.

\n

If you still encounter issues with opening a document, please ensure that file can\nbe opened first manually and dismiss any alert potentially blocking the process.

\n

Check the documentation below for more info:

\n\n
\n", "version": "", - "generated": "2023-11-01 15:54:20", + "generated": "2023-11-01 16:13:07", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", @@ -82823,8 +82823,8 @@ "specversion": 1, "name": "RPA.version", "doc": "

Documentation for library RPA.version.

", - "version": "27.4.2", - "generated": "2023-11-01 15:54:20", + "version": "27.5.1", + "generated": "2023-11-01 16:13:07", "type": "LIBRARY", "scope": "GLOBAL", "docFormat": "HTML", diff --git a/libdoc/RPA_Archive.html b/libdoc/RPA_Archive.html index c974b1de9e..80c41fa445 100644 --- a/libdoc/RPA_Archive.html +++ b/libdoc/RPA_Archive.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Assistant.html b/libdoc/RPA_Assistant.html index 02ac0413f4..edfee3cecf 100644 --- a/libdoc/RPA_Assistant.html +++ b/libdoc/RPA_Assistant.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Browser.html b/libdoc/RPA_Browser.html index c1b8d77994..1014c18569 100644 --- a/libdoc/RPA_Browser.html +++ b/libdoc/RPA_Browser.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Browser_Playwright.html b/libdoc/RPA_Browser_Playwright.html index 45bc9c81c8..a9a53bc997 100644 --- a/libdoc/RPA_Browser_Playwright.html +++ b/libdoc/RPA_Browser_Playwright.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Browser_Selenium.html b/libdoc/RPA_Browser_Selenium.html index ec1c51f13c..c529a84280 100644 --- a/libdoc/RPA_Browser_Selenium.html +++ b/libdoc/RPA_Browser_Selenium.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Browser_common.html b/libdoc/RPA_Browser_common.html index 9fc86b08fc..573b992ab4 100644 --- a/libdoc/RPA_Browser_common.html +++ b/libdoc/RPA_Browser_common.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Calendar.html b/libdoc/RPA_Calendar.html index a6049fef88..6cd8ae4781 100644 --- a/libdoc/RPA_Calendar.html +++ b/libdoc/RPA_Calendar.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Cloud_AWS.html b/libdoc/RPA_Cloud_AWS.html index 34306929ca..054d83f181 100644 --- a/libdoc/RPA_Cloud_AWS.html +++ b/libdoc/RPA_Cloud_AWS.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Cloud_Azure.html b/libdoc/RPA_Cloud_Azure.html index 441539d2f7..18c9dacd63 100644 --- a/libdoc/RPA_Cloud_Azure.html +++ b/libdoc/RPA_Cloud_Azure.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Cloud_Google.html b/libdoc/RPA_Cloud_Google.html index 8b1b070fca..35a1deb06c 100644 --- a/libdoc/RPA_Cloud_Google.html +++ b/libdoc/RPA_Cloud_Google.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Crypto.html b/libdoc/RPA_Crypto.html index f8918b5942..bfab86c44e 100644 --- a/libdoc/RPA_Crypto.html +++ b/libdoc/RPA_Crypto.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Database.html b/libdoc/RPA_Database.html index aa9e620e0b..14e2ccdb01 100644 --- a/libdoc/RPA_Database.html +++ b/libdoc/RPA_Database.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Desktop.html b/libdoc/RPA_Desktop.html index 8838a7ef1a..a84d0db948 100644 --- a/libdoc/RPA_Desktop.html +++ b/libdoc/RPA_Desktop.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Desktop_Clipboard.html b/libdoc/RPA_Desktop_Clipboard.html index 4f039ee3cc..0605954b20 100644 --- a/libdoc/RPA_Desktop_Clipboard.html +++ b/libdoc/RPA_Desktop_Clipboard.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Desktop_OperatingSystem.html b/libdoc/RPA_Desktop_OperatingSystem.html index fe96255c64..be113d9bc0 100644 --- a/libdoc/RPA_Desktop_OperatingSystem.html +++ b/libdoc/RPA_Desktop_OperatingSystem.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Desktop_Windows.html b/libdoc/RPA_Desktop_Windows.html index 3b7fc30c79..b22cbf6409 100644 --- a/libdoc/RPA_Desktop_Windows.html +++ b/libdoc/RPA_Desktop_Windows.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Dialogs.html b/libdoc/RPA_Dialogs.html index 81808b2fcc..517adf5b55 100644 --- a/libdoc/RPA_Dialogs.html +++ b/libdoc/RPA_Dialogs.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_DocumentAI.html b/libdoc/RPA_DocumentAI.html index c229f68b24..985fc1ab35 100644 --- a/libdoc/RPA_DocumentAI.html +++ b/libdoc/RPA_DocumentAI.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_DocumentAI_Base64AI.html b/libdoc/RPA_DocumentAI_Base64AI.html index 8f75fa780f..02183b6603 100644 --- a/libdoc/RPA_DocumentAI_Base64AI.html +++ b/libdoc/RPA_DocumentAI_Base64AI.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_DocumentAI_DocumentAI.html b/libdoc/RPA_DocumentAI_DocumentAI.html index 30262baa02..631321f737 100644 --- a/libdoc/RPA_DocumentAI_DocumentAI.html +++ b/libdoc/RPA_DocumentAI_DocumentAI.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_DocumentAI_Nanonets.html b/libdoc/RPA_DocumentAI_Nanonets.html index ce2a4fe6df..ca90daac56 100644 --- a/libdoc/RPA_DocumentAI_Nanonets.html +++ b/libdoc/RPA_DocumentAI_Nanonets.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Email_Exchange.html b/libdoc/RPA_Email_Exchange.html index 11deda4aa3..4e4ac158a3 100644 --- a/libdoc/RPA_Email_Exchange.html +++ b/libdoc/RPA_Email_Exchange.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Email_ImapSmtp.html b/libdoc/RPA_Email_ImapSmtp.html index dca2c4846a..9949be8e91 100644 --- a/libdoc/RPA_Email_ImapSmtp.html +++ b/libdoc/RPA_Email_ImapSmtp.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Excel_Application.html b/libdoc/RPA_Excel_Application.html index a3112cba13..7eb11a2a94 100644 --- a/libdoc/RPA_Excel_Application.html +++ b/libdoc/RPA_Excel_Application.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Excel_Files.html b/libdoc/RPA_Excel_Files.html index 31ce8fdd0a..287433a840 100644 --- a/libdoc/RPA_Excel_Files.html +++ b/libdoc/RPA_Excel_Files.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_FTP.html b/libdoc/RPA_FTP.html index 155c3a414f..805a2aa169 100644 --- a/libdoc/RPA_FTP.html +++ b/libdoc/RPA_FTP.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_FileSystem.html b/libdoc/RPA_FileSystem.html index dfe6ebd866..1a6cbfa8a4 100644 --- a/libdoc/RPA_FileSystem.html +++ b/libdoc/RPA_FileSystem.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_HTTP.html b/libdoc/RPA_HTTP.html index 0668598eb1..9b4ac08fdc 100644 --- a/libdoc/RPA_HTTP.html +++ b/libdoc/RPA_HTTP.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Hubspot.html b/libdoc/RPA_Hubspot.html index b4a27a7356..e607fe772b 100644 --- a/libdoc/RPA_Hubspot.html +++ b/libdoc/RPA_Hubspot.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Images.html b/libdoc/RPA_Images.html index 4f6b42bc91..26a3c0bcc0 100644 --- a/libdoc/RPA_Images.html +++ b/libdoc/RPA_Images.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_JSON.html b/libdoc/RPA_JSON.html index 1a421ea24e..e1af917cfa 100644 --- a/libdoc/RPA_JSON.html +++ b/libdoc/RPA_JSON.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_JavaAccessBridge.html b/libdoc/RPA_JavaAccessBridge.html index 40b7e10216..b7d7438cda 100644 --- a/libdoc/RPA_JavaAccessBridge.html +++ b/libdoc/RPA_JavaAccessBridge.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_MFA.html b/libdoc/RPA_MFA.html index ec9689a6df..208e1504bf 100644 --- a/libdoc/RPA_MFA.html +++ b/libdoc/RPA_MFA.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_MSGraph.html b/libdoc/RPA_MSGraph.html index 38142afa8d..60313e4f33 100644 --- a/libdoc/RPA_MSGraph.html +++ b/libdoc/RPA_MSGraph.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Netsuite.html b/libdoc/RPA_Netsuite.html index 351cbb7ff0..1760754857 100644 --- a/libdoc/RPA_Netsuite.html +++ b/libdoc/RPA_Netsuite.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Notifier.html b/libdoc/RPA_Notifier.html index c158c8f1ce..8584a0dc68 100644 --- a/libdoc/RPA_Notifier.html +++ b/libdoc/RPA_Notifier.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_OpenAI.html b/libdoc/RPA_OpenAI.html index 9c203d077e..ed5f416925 100644 --- a/libdoc/RPA_OpenAI.html +++ b/libdoc/RPA_OpenAI.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Outlook_Application.html b/libdoc/RPA_Outlook_Application.html index 78c9e9b9cc..3063e2875b 100644 --- a/libdoc/RPA_Outlook_Application.html +++ b/libdoc/RPA_Outlook_Application.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_PDF.html b/libdoc/RPA_PDF.html index 08cec5a73f..40e3dc210b 100644 --- a/libdoc/RPA_PDF.html +++ b/libdoc/RPA_PDF.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocloud_Items.html b/libdoc/RPA_Robocloud_Items.html index 7969d16742..0ae32a0209 100644 --- a/libdoc/RPA_Robocloud_Items.html +++ b/libdoc/RPA_Robocloud_Items.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocloud_Secrets.html b/libdoc/RPA_Robocloud_Secrets.html index d6a4e6fba1..23addeea5b 100644 --- a/libdoc/RPA_Robocloud_Secrets.html +++ b/libdoc/RPA_Robocloud_Secrets.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocorp_Process.html b/libdoc/RPA_Robocorp_Process.html index ef719fcfdd..c24cd20279 100644 --- a/libdoc/RPA_Robocorp_Process.html +++ b/libdoc/RPA_Robocorp_Process.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocorp_Storage.html b/libdoc/RPA_Robocorp_Storage.html index ae95c8b1ca..df295c1013 100644 --- a/libdoc/RPA_Robocorp_Storage.html +++ b/libdoc/RPA_Robocorp_Storage.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocorp_Vault.html b/libdoc/RPA_Robocorp_Vault.html index bd52468cbc..c5aadb6667 100644 --- a/libdoc/RPA_Robocorp_Vault.html +++ b/libdoc/RPA_Robocorp_Vault.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Robocorp_WorkItems.html b/libdoc/RPA_Robocorp_WorkItems.html index 0808631460..75b44cfd01 100644 --- a/libdoc/RPA_Robocorp_WorkItems.html +++ b/libdoc/RPA_Robocorp_WorkItems.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_RobotLogListener.html b/libdoc/RPA_RobotLogListener.html index d02cdb39cf..06d73734b0 100644 --- a/libdoc/RPA_RobotLogListener.html +++ b/libdoc/RPA_RobotLogListener.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_SAP.html b/libdoc/RPA_SAP.html index 7a4989490d..87e65305ce 100644 --- a/libdoc/RPA_SAP.html +++ b/libdoc/RPA_SAP.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Salesforce.html b/libdoc/RPA_Salesforce.html index 67ad192610..34dcca5e89 100644 --- a/libdoc/RPA_Salesforce.html +++ b/libdoc/RPA_Salesforce.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Slack.html b/libdoc/RPA_Slack.html index fc60b82320..649bf54026 100644 --- a/libdoc/RPA_Slack.html +++ b/libdoc/RPA_Slack.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Smartsheet.html b/libdoc/RPA_Smartsheet.html index 3dc714fb91..ed1e4c6c40 100644 --- a/libdoc/RPA_Smartsheet.html +++ b/libdoc/RPA_Smartsheet.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Tables.html b/libdoc/RPA_Tables.html index c870698626..2251d0edad 100644 --- a/libdoc/RPA_Tables.html +++ b/libdoc/RPA_Tables.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Tasks.html b/libdoc/RPA_Tasks.html index 6de899c6a1..9a7530bdd2 100644 --- a/libdoc/RPA_Tasks.html +++ b/libdoc/RPA_Tasks.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Twitter.html b/libdoc/RPA_Twitter.html index 31bc2d5857..f500fe3cfd 100644 --- a/libdoc/RPA_Twitter.html +++ b/libdoc/RPA_Twitter.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Windows.html b/libdoc/RPA_Windows.html index 7340e5d139..6c3e0ff829 100644 --- a/libdoc/RPA_Windows.html +++ b/libdoc/RPA_Windows.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_Word_Application.html b/libdoc/RPA_Word_Application.html index 988bd477bd..b6b833f6b1 100644 --- a/libdoc/RPA_Word_Application.html +++ b/libdoc/RPA_Word_Application.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libdoc/RPA_version.html b/libdoc/RPA_version.html index 881dc5ecb4..2fbf1bb544 100644 --- a/libdoc/RPA_version.html +++ b/libdoc/RPA_version.html @@ -1019,7 +1019,7 @@ //# sourceMappingURL=iframeResizer.contentWindow.map diff --git a/libraries/http/python.html b/libraries/http/python.html index dd1718d10d..0cd6982cd2 100644 --- a/libraries/http/python.html +++ b/libraries/http/python.html @@ -172,7 +172,7 @@

HTTP* On Session.

-DEFAULT_RETRY_METHOD_LIST = ['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT']
+DEFAULT_RETRY_METHOD_LIST = ['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT']
@@ -211,7 +211,7 @@

HTTP
-create_client_cert_session(alias, url, headers={}, cookies={}, client_certs=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT'])
+create_client_cert_session(alias, url, headers={}, cookies={}, client_certs=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT'])

Create Session: create a HTTP session to a server

url Base url of the server

alias Robot Framework alias to identify the session

@@ -249,7 +249,7 @@

HTTP
-create_custom_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT'])
+create_custom_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT'])

Create Session: create a HTTP session to a server

url Base url of the server

alias Robot Framework alias to identify the session

@@ -290,7 +290,7 @@

HTTP
-create_digest_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT'])
+create_digest_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT'])

Create Session: create a HTTP session to a server

url Base url of the server

alias Robot Framework alias to identify the session

@@ -328,7 +328,7 @@

HTTP
-create_ntlm_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT'])
+create_ntlm_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT'])

Create Session: create a HTTP session to a server

url Base url of the server

alias Robot Framework alias to identify the session

@@ -366,7 +366,7 @@

HTTP
-create_session(alias, url, headers={}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'OPTIONS', 'GET', 'DELETE', 'TRACE', 'PUT'])
+create_session(alias, url, headers={}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'TRACE', 'OPTIONS', 'DELETE', 'GET', 'PUT'])

Create Session: create a HTTP session to a server

alias Robot Framework alias to identify the session

url Base url of the server

diff --git a/python.json b/python.json index 8f5c328510..8febb4e642 100644 --- a/python.json +++ b/python.json @@ -93,7 +93,7 @@ }, { "module": "RPA.HTTP.HTTP", - "markdown": "# Python API\n\n## HTTP\n\n### *class* RPA.HTTP.HTTP(\\*args, \\*\\*kwargs)\n\nThe *RPA.HTTP* library extends functionality of the [RequestsLibrary](https://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html).\nSee that documentation for several examples of how to issue `GET`\nrequests and utilize the returned `result` objects.\n\nThis extension provides helper keywords to get an HTTP resource on a\nsession. The `HTTP Get` and `Download` keywords will initiate a\nsession if one does not exist for the provided URL, or use an existing\nsession. When using these keywords, you do not need to manage\nsessions with `Create Session`. Session management is still\nrequired if you use the underlying session keywords, e.g.,\n`* On Session`.\n\n#### DEFAULT_RETRY_METHOD_LIST *= ['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE']*\n\n#### ROBOT_LIBRARY_DOC_FORMAT *= 'reST'*\n\n#### ROBOT_LIBRARY_SCOPE *= 'GLOBAL'*\n\n#### check_vulnerabilities()\n\nCheck for possible vulnerabilities in the installed runtime\nenvironment packages.\n\nCurrently will check only for OpenSSL version and outputs warning message on any\ndiscovered vulnerability.\n\n* **Returns:**\n list of all check results\n\n```robotframework\n*** Tasks ***\nVulnerability Check\n ${results}= Check Vulnerabilities\n FOR ${result} IN @{results}\n Log To Console TYPE: ${result}[type]\n Log To Console VULNERABLE: ${result}[vulnerable]\n Log To Console MESSAGE: ${result}[message]\n END\n```\n\n#### create_client_cert_session(alias, url, headers={}, cookies={}, client_certs=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`client_certs` [\u2018client certificate\u2019, \u2018client key\u2019] PEM files containing the client key and certificate\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_custom_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` A Custom Authentication object to be passed on to the requests library.\n: [http://docs.python-requests.org/en/master/user/advanced/#custom-authentication](http://docs.python-requests.org/en/master/user/advanced/#custom-authentication)\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_digest_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` [\u2018DOMAIN\u2019, \u2018username\u2019, \u2018password\u2019] for NTLM Authentication\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_ntlm_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` [\u2018DOMAIN\u2019, \u2018username\u2019, \u2018password\u2019] for NTLM Authentication\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_session(alias, url, headers={}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['OPTIONS', 'DELETE', 'PUT', 'HEAD', 'GET', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`alias` Robot Framework alias to identify the session\n\n`url` Base url of the server\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` List of username & password for HTTP Basic Auth\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### delete_all_sessions()\n\nRemoves all the session objects\n\n#### delete_on_session(\\*\\*kwargs)\n\nSends a DELETE request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### delete_request(alias, uri, data=None, json=None, params=None, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use DELETE On Session instead.\n\nSend a DELETE request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the DELETE request to\n\n`json` a value that will be json encoded\n: and sent as request data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### download(url: str, target_file: Optional[str] = None, verify: Union[bool, str] = True, force_new_session: bool = False, overwrite: bool = False, stream: bool = False, \\*\\*kwargs)\n\nAn alias for the `HTTP Get` keyword.\n\nThe difference in use is that the URL is always downloaded based on\nthe URL path (even without `target_file`). If there is a filename\nin the path, then that is used as `target_file` to save to. By default,\nthe filename will be \u201cdownloaded.html\u201d.\n\n```robotframework\n*** Settings ***\nLibrary RPA.HTTP\n\n*** Variables ***\n${DOWNLOAD_PATH}= ${OUTPUT DIR}${/}downloads\n${WORD_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc\n${EXCEL_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file_example_XLS_10.xls\n\n*** Tasks ***\nDownload files with reused session with provided file names\n # Starts a new session\n Download ${WORD_EXAMPLE} target_file=${DOWNLOAD_PATH}\n # Uses the previous session\n Download ${EXCEL_EXAMPLE} target_file=${DOWNLOAD_PATH}\n # Above files are downloaded using the same names as they have\n # on the remote server.\n```\n\n* **Parameters:**\n * **url** \u2013 target URL for GET request\n * **target_file** \u2013 filepath to save request content, default `None`\n * **verify** \u2013 if SSL verification should be done, default `True`,\n a CA_BUNDLE path can also be provided\n * **force_new_session** \u2013 if new HTTP session should be created,\n default `False`\n * **overwrite** \u2013 used together with `target_file`, if `True` will overwrite\n the target file, default `False`\n * **stream** \u2013 if `False` the response content will be immediately downloaded\n* **Returns:**\n request response as a dict\n\n#### get_current_session_alias()\n\nGet request session alias that was used with the `HTTP Get` keyword.\n\n* **Returns:**\n name of session alias as a string\n\n#### *static* get_file_for_streaming_upload(path)\n\nOpens and returns a file descriptor of a specified file to be passed as `data` parameter\nto other requests keywords.\n\nThis allows streaming upload of large files without reading them into memory.\n\nFile descriptor is binary mode and read only. Requests keywords will automatically close the file,\nif used outside this library it\u2019s up to the caller to close it.\n\n#### get_on_session(\\*\\*kwargs)\n\nSends a GET request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the resource is the `url`, while query\nstring parameters can be passed as string, dictionary (or list of tuples or bytes)\nthrough the `params`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### get_request(alias, uri, headers=None, data=None, json=None, params=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use GET On Session instead.\n\nSend a GET request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the GET request to\n\n`params` url parameters to append to the uri\n\n`headers` a dictionary of headers to use with the request\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as GET data\n or binary data that is sent as the raw body content\n\n`json` a value that will be json encoded\n: and sent as GET data if data is not specified\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### head_on_session(\\*\\*kwargs)\n\nSends a HEAD request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the HTTP headers is the `url`.\n\n`allow_redirects` parameter is not provided, it will be set to False (as\nopposed to the default behavior).\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### head_request(alias, uri, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use HEAD On Session instead.\n\nSend a HEAD request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the HEAD request to\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`headers` a dictionary of headers to use with the request\n\n`timeout` connection timeout\n\n#### http_get(url: str, target_file: Optional[str] = None, verify: Union[bool, str] = True, force_new_session: bool = False, overwrite: bool = False, stream: bool = False, \\*\\*kwargs)\n\nA helper method for `Get Request` that will create a session, perform GET\nrequest, and store the target file, if set by the `target_file` parameter.\n\nThe old session will be used if the URL scheme and the host are the same as\npreviously, e.g., \u2018[https://www.google.fi](https://www.google.fi)\u2019 part of the URL.\n\n```robotframework\n*** Settings ***\nLibrary RPA.HTTP\n\n*** Variables ***\n${DOWNLOAD_PATH}= ${OUTPUT DIR}${/}downloads\n${WORD_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc\n${EXCEL_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file_example_XLS_10.xls\n\n*** Tasks ***\nDownload files with reused session\n # Starts a new session\n HTTP Get ${WORD_EXAMPLE} target_file=${DOWNLOAD_PATH}${/}word-example.doc\n # Uses the previous session\n HTTP Get ${EXCEL_EXAMPLE} target_file=${DOWNLOAD_PATH}${/}excel-example.xls\n```\n\n* **Parameters:**\n * **url** \u2013 target URL for GET request\n * **target_file** \u2013 filepath to save request content, default `None`\n * **verify** \u2013 if SSL verification should be done, default `True`,\n a CA_BUNDLE path can also be provided\n * **force_new_session** \u2013 if new HTTP session should be created,\n default `False`\n * **overwrite** \u2013 used together with `target_file`, if `True` will overwrite\n the target file, default `False`\n * **stream** \u2013 if `False`, the response content will be immediately downloaded\n* **Returns:**\n request response as a dict\n\n#### options_on_session(\\*\\*kwargs)\n\nSends a OPTIONS request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the resource is the `url`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### options_request(alias, uri, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use OPTIONS On Session instead.\n\nSend an OPTIONS request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the OPTIONS request to\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`headers` a dictionary of headers to use with the request\n\n`timeout` connection timeout\n\n#### patch_on_session(\\*\\*kwargs)\n\nSends a PATCH request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### patch_request(alias, uri, data=None, json=None, params=None, headers=None, files=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use PATCH On Session instead.\n\nSend a PATCH request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the PATCH request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as PATCH data\n or binary data that is sent as the raw body content\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as PATCH data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`files` a dictionary of file names containing file data to PATCH to the server\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`params` url parameters to append to the uri\n\n`timeout` connection timeout\n\n#### post_on_session(\\*\\*kwargs)\n\nSends a POST request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### post_request(alias, uri, data=None, json=None, params=None, headers=None, files=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use POST On Session instead.\n\nSend a POST request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the POST request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as POST data\n or binary data that is sent as the raw body content\n or passed as such for multipart form data if `files` is also defined\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as POST data if files or data is not specified\n\n`params` url parameters to append to the uri\n\n`headers` a dictionary of headers to use with the request\n\n`files` a dictionary of file names containing file data to POST to the server\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### put_on_session(\\*\\*kwargs)\n\nSends a PUT request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### put_request(alias, uri, data=None, json=None, params=None, files=None, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use PUT On Session instead.\n\nSend a PUT request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the PUT request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as PUT data\n or binary data that is sent as the raw body content\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as PUT data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`params` url parameters to append to the uri\n\n`timeout` connection timeout\n\n#### request_should_be_successful(response=None)\n\nFails if response status code is a client or server error (4xx, 5xx).\n\n`response` is the output of other requests keywords like GET On Session.\nIf omitted the last response will be used.\n\nIn case of failure an HTTPError will be automatically raised.\n\nFor a more versatile assert keyword see Status Should Be.\n\n#### session_exists(alias)\n\nReturn True if the session has been already created\n\n`alias` that has been used to identify the Session object in the cache\n\n#### session_less_delete(\\*\\*kwargs)\n\nSends a DELETE request.\n\nThe endpoint used to send the request is the `url` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_get(\\*\\*kwargs)\n\nSends a GET request.\n\nThe endpoint used to retrieve the resource is the `url`, while query\nstring parameters can be passed as string, dictionary (or list of tuples or bytes)\nthrough the `params`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs` here is a list:\n\n`data` | Dictionary, list of tuples, bytes, or file-like object to send in the body of the request. |\n
\n`json` | A JSON serializable Python object to send in the body of the request. |\n
\n`headers` | Dictionary of HTTP Headers to send with the request. |\n
\n`cookies` | Dict or CookieJar object to send with the request. |\n
\n`files` | Dictionary of file-like-objects (or `{'name': file-tuple}`) for multipart encoding upload. |\n
\n`file-tuple` | can be a 2-tuple `('filename', fileobj)`, 3-tuple `('filename', fileobj, 'content_type')` or a 4-tuple `('filename', fileobj, 'content_type', custom_headers)`, where `'content-type'` is a string defining the content type of the given file and `custom_headers` a dict-like object containing additional headers to add for the file. |\n
\n`auth` | Auth tuple to enable Basic/Digest/Custom HTTP Auth. |\n
\n`timeout` | How many seconds to wait for the server to send data before giving up, as a float, or a `(connect timeout, read timeout)` tuple. |\n
\n`allow_redirects` | Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to `${True}`. |\n
\n`proxies` | Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019}) |\n
\n`verify` | Either a boolean, in which case it controls whether we verify the server\u2019s TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Defaults to `${True}`. Warning: if a session has been created with `verify=${False}` any other requests will not verify the SSL certificate. |\n
\n`stream` | if `${False}`, the response content will be immediately downloaded. |\n
\n`cert` | if String, path to ssl client cert file (.pem). If Tuple, (\u2018cert\u2019, \u2018key\u2019) pair. |\n
\n\nFor more updated and complete information verify the official Requests api documentation:\n[https://requests.readthedocs.io/en/latest/api/](https://requests.readthedocs.io/en/latest/api/)\n\n#### session_less_head(\\*\\*kwargs)\n\nSends a HEAD request.\n\nThe endpoint used to retrieve the HTTP headers is the `url`.\n\n`allow_redirects` parameter is not provided, it will be set to False (as\nopposed to the default behavior).\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_options(\\*\\*kwargs)\n\nSends a OPTIONS request.\n\nThe endpoint used to retrieve the resource is the `url`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_patch(\\*\\*kwargs)\n\nSends a PUT request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_post(\\*\\*kwargs)\n\nSends a POST request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_put(\\*\\*kwargs)\n\nSends a PUT request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### status_should_be(expected_status, response=None, msg=None)\n\nFails if response status code is different than the expected.\n\n`expected_status` could be the code number as an integer or as string.\nBut it could also be a named status code like \u2018ok\u2019, \u2018created\u2019, \u2018accepted\u2019 or\n\u2018bad request\u2019, \u2018not found\u2019 etc.\n\n`response` is the output of other requests keywords like GET or GET On Session.\nIf omitted the last response will be used.\n\nIn case of failure an HTTPError will be automatically raised.\nA custom failure message `msg` can be added like in built-in keywords.\n\nNew requests keywords like GET or GET On Session (starting from 0.8 version) already have an implicit assert\nmechanism that, by default, verifies the response status code.\nStatus Should Be keyword can be useful when you disable implicit assert using `expected_status=anything`.\n\nFor example when you have a nested keyword that is used for both OK and ERROR responses:\n\n**\\* Test Cases \\***\n
\n
\nTest Get Request And Make Sure Is A 404 Response\n
\n${resp}= GET Custom Keyword That Returns OK or ERROR Response case=notfound\n
\nStatus Should Be 404 ${resp}\n
\nShould Be Equal As Strings NOT FOUND ${resp.reason}\n
\n
\nTest Get Request And Make Sure Is OK\n
\n${resp}= GET Custom Keyword That Returns OK or ERROR Response case=pass\n
\nStatus Should Be 200 ${resp}\n
\nShould Be Equal As Strings OK ${resp.reason}\n
\n
\n**\\* Keywords \\***\n
\n
\nGET Custom Keyword That Returns OK or ERROR Response\n
\n[Arguments] $case\n
\n[\u2026]\n
\nIF $case == notfound\n
\n$resp= GET [\u2026] expected_status=Anything\n
\n[Return] $resp\n
\nELSE\n
\n[\u2026]\n
\n\n#### to_json(content, pretty_print=False)\n\n*DEPRECATED* Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.\n\nConvert a string to a JSON object\n\n`content` String content to convert into JSON\n\n`pretty_print` If defined, will output JSON is pretty print format\n\n#### update_session(alias, headers=None, cookies=None)\n\nUpdates HTTP Session Headers and Cookies.\n\nSession will be identified using the `alias` name.\nDictionary of `headers` and `cookies` to be updated and merged into session data.\n" + "markdown": "# Python API\n\n## HTTP\n\n### *class* RPA.HTTP.HTTP(\\*args, \\*\\*kwargs)\n\nThe *RPA.HTTP* library extends functionality of the [RequestsLibrary](https://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html).\nSee that documentation for several examples of how to issue `GET`\nrequests and utilize the returned `result` objects.\n\nThis extension provides helper keywords to get an HTTP resource on a\nsession. The `HTTP Get` and `Download` keywords will initiate a\nsession if one does not exist for the provided URL, or use an existing\nsession. When using these keywords, you do not need to manage\nsessions with `Create Session`. Session management is still\nrequired if you use the underlying session keywords, e.g.,\n`* On Session`.\n\n#### DEFAULT_RETRY_METHOD_LIST *= ['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE']*\n\n#### ROBOT_LIBRARY_DOC_FORMAT *= 'reST'*\n\n#### ROBOT_LIBRARY_SCOPE *= 'GLOBAL'*\n\n#### check_vulnerabilities()\n\nCheck for possible vulnerabilities in the installed runtime\nenvironment packages.\n\nCurrently will check only for OpenSSL version and outputs warning message on any\ndiscovered vulnerability.\n\n* **Returns:**\n list of all check results\n\n```robotframework\n*** Tasks ***\nVulnerability Check\n ${results}= Check Vulnerabilities\n FOR ${result} IN @{results}\n Log To Console TYPE: ${result}[type]\n Log To Console VULNERABLE: ${result}[vulnerable]\n Log To Console MESSAGE: ${result}[message]\n END\n```\n\n#### create_client_cert_session(alias, url, headers={}, cookies={}, client_certs=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`client_certs` [\u2018client certificate\u2019, \u2018client key\u2019] PEM files containing the client key and certificate\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_custom_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` A Custom Authentication object to be passed on to the requests library.\n: [http://docs.python-requests.org/en/master/user/advanced/#custom-authentication](http://docs.python-requests.org/en/master/user/advanced/#custom-authentication)\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_digest_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` [\u2018DOMAIN\u2019, \u2018username\u2019, \u2018password\u2019] for NTLM Authentication\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_ntlm_session(alias, url, auth, headers={}, cookies={}, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`url` Base url of the server\n\n`alias` Robot Framework alias to identify the session\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` [\u2018DOMAIN\u2019, \u2018username\u2019, \u2018password\u2019] for NTLM Authentication\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n: Defaults to False.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### create_session(alias, url, headers={}, cookies={}, auth=None, timeout=None, proxies=None, verify=False, debug=0, max_retries=3, backoff_factor=0.1, disable_warnings=0, retry_status_list=[], retry_method_list=['HEAD', 'GET', 'PUT', 'OPTIONS', 'DELETE', 'TRACE'])\n\nCreate Session: create a HTTP session to a server\n\n`alias` Robot Framework alias to identify the session\n\n`url` Base url of the server\n\n`headers` Dictionary of default headers\n\n`cookies` Dictionary of cookies\n\n`auth` List of username & password for HTTP Basic Auth\n\n`timeout` Connection timeout\n\n`proxies` Dictionary mapping protocol or protocol and host to the URL of the proxy\n: (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019})\n\n`verify` Whether the SSL cert will be verified. A CA_BUNDLE path can also be provided.\n\n`debug` Enable http verbosity option more information\n: [https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel](https://docs.python.org/2/library/httplib.html#httplib.HTTPConnection.set_debuglevel)\n\n`max_retries` Number of maximum retries each connection should attempt.\n: By default it will retry 3 times in case of connection errors only.\n A 0 value will disable any kind of retries regardless of other retry settings.\n In case the number of retries is reached a retry exception is raised.\n\n`disable_warnings` Disable requests warning useful when you have large number of testcases\n\n`backoff_factor` Introduces a delay time between retries that is longer after each retry.\n: eg. if backoff_factor is set to 0.1\n the sleep between attemps will be: 0.0, 0.2, 0.4\n More info here: [https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html](https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html)\n\n`retry_method_list` List of uppercased HTTP method verbs where retries are allowed.\n: By default retries are allowed only on HTTP requests methods that are considered to be\n idempotent (multiple requests with the same parameters end with the same state).\n eg. set to [\u2018POST\u2019, \u2018GET\u2019] to retry only those kind of requests.\n\n`retry_status_list` List of integer HTTP status codes that, if returned, a retry is attempted.\n: eg. set to [502, 503] to retry requests if those status are returned.\n Note that max_retries must be greater than 0.\n\n#### delete_all_sessions()\n\nRemoves all the session objects\n\n#### delete_on_session(\\*\\*kwargs)\n\nSends a DELETE request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### delete_request(alias, uri, data=None, json=None, params=None, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use DELETE On Session instead.\n\nSend a DELETE request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the DELETE request to\n\n`json` a value that will be json encoded\n: and sent as request data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### download(url: str, target_file: Optional[str] = None, verify: Union[bool, str] = True, force_new_session: bool = False, overwrite: bool = False, stream: bool = False, \\*\\*kwargs)\n\nAn alias for the `HTTP Get` keyword.\n\nThe difference in use is that the URL is always downloaded based on\nthe URL path (even without `target_file`). If there is a filename\nin the path, then that is used as `target_file` to save to. By default,\nthe filename will be \u201cdownloaded.html\u201d.\n\n```robotframework\n*** Settings ***\nLibrary RPA.HTTP\n\n*** Variables ***\n${DOWNLOAD_PATH}= ${OUTPUT DIR}${/}downloads\n${WORD_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc\n${EXCEL_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file_example_XLS_10.xls\n\n*** Tasks ***\nDownload files with reused session with provided file names\n # Starts a new session\n Download ${WORD_EXAMPLE} target_file=${DOWNLOAD_PATH}\n # Uses the previous session\n Download ${EXCEL_EXAMPLE} target_file=${DOWNLOAD_PATH}\n # Above files are downloaded using the same names as they have\n # on the remote server.\n```\n\n* **Parameters:**\n * **url** \u2013 target URL for GET request\n * **target_file** \u2013 filepath to save request content, default `None`\n * **verify** \u2013 if SSL verification should be done, default `True`,\n a CA_BUNDLE path can also be provided\n * **force_new_session** \u2013 if new HTTP session should be created,\n default `False`\n * **overwrite** \u2013 used together with `target_file`, if `True` will overwrite\n the target file, default `False`\n * **stream** \u2013 if `False` the response content will be immediately downloaded\n* **Returns:**\n request response as a dict\n\n#### get_current_session_alias()\n\nGet request session alias that was used with the `HTTP Get` keyword.\n\n* **Returns:**\n name of session alias as a string\n\n#### *static* get_file_for_streaming_upload(path)\n\nOpens and returns a file descriptor of a specified file to be passed as `data` parameter\nto other requests keywords.\n\nThis allows streaming upload of large files without reading them into memory.\n\nFile descriptor is binary mode and read only. Requests keywords will automatically close the file,\nif used outside this library it\u2019s up to the caller to close it.\n\n#### get_on_session(\\*\\*kwargs)\n\nSends a GET request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the resource is the `url`, while query\nstring parameters can be passed as string, dictionary (or list of tuples or bytes)\nthrough the `params`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### get_request(alias, uri, headers=None, data=None, json=None, params=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use GET On Session instead.\n\nSend a GET request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the GET request to\n\n`params` url parameters to append to the uri\n\n`headers` a dictionary of headers to use with the request\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as GET data\n or binary data that is sent as the raw body content\n\n`json` a value that will be json encoded\n: and sent as GET data if data is not specified\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### head_on_session(\\*\\*kwargs)\n\nSends a HEAD request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the HTTP headers is the `url`.\n\n`allow_redirects` parameter is not provided, it will be set to False (as\nopposed to the default behavior).\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### head_request(alias, uri, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use HEAD On Session instead.\n\nSend a HEAD request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the HEAD request to\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`headers` a dictionary of headers to use with the request\n\n`timeout` connection timeout\n\n#### http_get(url: str, target_file: Optional[str] = None, verify: Union[bool, str] = True, force_new_session: bool = False, overwrite: bool = False, stream: bool = False, \\*\\*kwargs)\n\nA helper method for `Get Request` that will create a session, perform GET\nrequest, and store the target file, if set by the `target_file` parameter.\n\nThe old session will be used if the URL scheme and the host are the same as\npreviously, e.g., \u2018[https://www.google.fi](https://www.google.fi)\u2019 part of the URL.\n\n```robotframework\n*** Settings ***\nLibrary RPA.HTTP\n\n*** Variables ***\n${DOWNLOAD_PATH}= ${OUTPUT DIR}${/}downloads\n${WORD_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc\n${EXCEL_EXAMPLE}= https://file-examples.com/wp-content/uploads/2017/02/file_example_XLS_10.xls\n\n*** Tasks ***\nDownload files with reused session\n # Starts a new session\n HTTP Get ${WORD_EXAMPLE} target_file=${DOWNLOAD_PATH}${/}word-example.doc\n # Uses the previous session\n HTTP Get ${EXCEL_EXAMPLE} target_file=${DOWNLOAD_PATH}${/}excel-example.xls\n```\n\n* **Parameters:**\n * **url** \u2013 target URL for GET request\n * **target_file** \u2013 filepath to save request content, default `None`\n * **verify** \u2013 if SSL verification should be done, default `True`,\n a CA_BUNDLE path can also be provided\n * **force_new_session** \u2013 if new HTTP session should be created,\n default `False`\n * **overwrite** \u2013 used together with `target_file`, if `True` will overwrite\n the target file, default `False`\n * **stream** \u2013 if `False`, the response content will be immediately downloaded\n* **Returns:**\n request response as a dict\n\n#### options_on_session(\\*\\*kwargs)\n\nSends a OPTIONS request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to retrieve the resource is the `url`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### options_request(alias, uri, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use OPTIONS On Session instead.\n\nSend an OPTIONS request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the OPTIONS request to\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`headers` a dictionary of headers to use with the request\n\n`timeout` connection timeout\n\n#### patch_on_session(\\*\\*kwargs)\n\nSends a PATCH request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### patch_request(alias, uri, data=None, json=None, params=None, headers=None, files=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use PATCH On Session instead.\n\nSend a PATCH request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the PATCH request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as PATCH data\n or binary data that is sent as the raw body content\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as PATCH data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`files` a dictionary of file names containing file data to PATCH to the server\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`params` url parameters to append to the uri\n\n`timeout` connection timeout\n\n#### post_on_session(\\*\\*kwargs)\n\nSends a POST request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### post_request(alias, uri, data=None, json=None, params=None, headers=None, files=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use POST On Session instead.\n\nSend a POST request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the POST request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as POST data\n or binary data that is sent as the raw body content\n or passed as such for multipart form data if `files` is also defined\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as POST data if files or data is not specified\n\n`params` url parameters to append to the uri\n\n`headers` a dictionary of headers to use with the request\n\n`files` a dictionary of file names containing file data to POST to the server\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`timeout` connection timeout\n\n#### put_on_session(\\*\\*kwargs)\n\nSends a PUT request on a previously created HTTP Session.\n\nSession will be identified using the `alias` name.\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### put_request(alias, uri, data=None, json=None, params=None, files=None, headers=None, allow_redirects=None, timeout=None)\n\n*DEPRECATED* Please use PUT On Session instead.\n\nSend a PUT request on the session object found using the\ngiven alias\n\n`alias` that will be used to identify the Session object in the cache\n\n`uri` to send the PUT request to\n\n`data` a dictionary of key-value pairs that will be urlencoded\n: and sent as PUT data\n or binary data that is sent as the raw body content\n or file descriptor retrieved by Get File For Streaming Upload\n\n`json` a value that will be json encoded\n: and sent as PUT data if data is not specified\n\n`headers` a dictionary of headers to use with the request\n\n`allow_redirects` Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.\n\n`params` url parameters to append to the uri\n\n`timeout` connection timeout\n\n#### request_should_be_successful(response=None)\n\nFails if response status code is a client or server error (4xx, 5xx).\n\n`response` is the output of other requests keywords like GET On Session.\nIf omitted the last response will be used.\n\nIn case of failure an HTTPError will be automatically raised.\n\nFor a more versatile assert keyword see Status Should Be.\n\n#### session_exists(alias)\n\nReturn True if the session has been already created\n\n`alias` that has been used to identify the Session object in the cache\n\n#### session_less_delete(\\*\\*kwargs)\n\nSends a DELETE request.\n\nThe endpoint used to send the request is the `url` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_get(\\*\\*kwargs)\n\nSends a GET request.\n\nThe endpoint used to retrieve the resource is the `url`, while query\nstring parameters can be passed as string, dictionary (or list of tuples or bytes)\nthrough the `params`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs` here is a list:\n\n`data` | Dictionary, list of tuples, bytes, or file-like object to send in the body of the request. |\n
\n`json` | A JSON serializable Python object to send in the body of the request. |\n
\n`headers` | Dictionary of HTTP Headers to send with the request. |\n
\n`cookies` | Dict or CookieJar object to send with the request. |\n
\n`files` | Dictionary of file-like-objects (or `{'name': file-tuple}`) for multipart encoding upload. |\n
\n`file-tuple` | can be a 2-tuple `('filename', fileobj)`, 3-tuple `('filename', fileobj, 'content_type')` or a 4-tuple `('filename', fileobj, 'content_type', custom_headers)`, where `'content-type'` is a string defining the content type of the given file and `custom_headers` a dict-like object containing additional headers to add for the file. |\n
\n`auth` | Auth tuple to enable Basic/Digest/Custom HTTP Auth. |\n
\n`timeout` | How many seconds to wait for the server to send data before giving up, as a float, or a `(connect timeout, read timeout)` tuple. |\n
\n`allow_redirects` | Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to `${True}`. |\n
\n`proxies` | Dictionary mapping protocol or protocol and host to the URL of the proxy (e.g. {\u2018http\u2019: \u2018foo.bar:3128\u2019, \u2018http://host.name\u2019: \u2018foo.bar:4012\u2019}) |\n
\n`verify` | Either a boolean, in which case it controls whether we verify the server\u2019s TLS certificate, or a string, in which case it must be a path to a CA bundle to use. Defaults to `${True}`. Warning: if a session has been created with `verify=${False}` any other requests will not verify the SSL certificate. |\n
\n`stream` | if `${False}`, the response content will be immediately downloaded. |\n
\n`cert` | if String, path to ssl client cert file (.pem). If Tuple, (\u2018cert\u2019, \u2018key\u2019) pair. |\n
\n\nFor more updated and complete information verify the official Requests api documentation:\n[https://requests.readthedocs.io/en/latest/api/](https://requests.readthedocs.io/en/latest/api/)\n\n#### session_less_head(\\*\\*kwargs)\n\nSends a HEAD request.\n\nThe endpoint used to retrieve the HTTP headers is the `url`.\n\n`allow_redirects` parameter is not provided, it will be set to False (as\nopposed to the default behavior).\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_options(\\*\\*kwargs)\n\nSends a OPTIONS request.\n\nThe endpoint used to retrieve the resource is the `url`.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_patch(\\*\\*kwargs)\n\nSends a PUT request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_post(\\*\\*kwargs)\n\nSends a POST request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### session_less_put(\\*\\*kwargs)\n\nSends a PUT request.\n\nThe endpoint used to send the request is the `url` parameter, while its body\ncan be passed using `data` or `json` parameters.\n\n`data` can be a dictionary, list of tuples, bytes, or file-like object.\nIf you want to pass a json body pass a dictionary as `json` parameter.\n\nBy default this keyword fails if a status code with error values is returned in the response,\nthis behavior can be modified using the `expected_status` and `msg` parameters,\nread more about it in Status Should Be keyword documentation.\nIn order to disable this implicit assert mechanism you can pass as `expected_status` the values `any` or\n`anything`.\n\nOther optional requests arguments can be passed using `**kwargs`\nsee the GET keyword for the complete list.\n\n#### status_should_be(expected_status, response=None, msg=None)\n\nFails if response status code is different than the expected.\n\n`expected_status` could be the code number as an integer or as string.\nBut it could also be a named status code like \u2018ok\u2019, \u2018created\u2019, \u2018accepted\u2019 or\n\u2018bad request\u2019, \u2018not found\u2019 etc.\n\n`response` is the output of other requests keywords like GET or GET On Session.\nIf omitted the last response will be used.\n\nIn case of failure an HTTPError will be automatically raised.\nA custom failure message `msg` can be added like in built-in keywords.\n\nNew requests keywords like GET or GET On Session (starting from 0.8 version) already have an implicit assert\nmechanism that, by default, verifies the response status code.\nStatus Should Be keyword can be useful when you disable implicit assert using `expected_status=anything`.\n\nFor example when you have a nested keyword that is used for both OK and ERROR responses:\n\n**\\* Test Cases \\***\n
\n
\nTest Get Request And Make Sure Is A 404 Response\n
\n${resp}= GET Custom Keyword That Returns OK or ERROR Response case=notfound\n
\nStatus Should Be 404 ${resp}\n
\nShould Be Equal As Strings NOT FOUND ${resp.reason}\n
\n
\nTest Get Request And Make Sure Is OK\n
\n${resp}= GET Custom Keyword That Returns OK or ERROR Response case=pass\n
\nStatus Should Be 200 ${resp}\n
\nShould Be Equal As Strings OK ${resp.reason}\n
\n
\n**\\* Keywords \\***\n
\n
\nGET Custom Keyword That Returns OK or ERROR Response\n
\n[Arguments] $case\n
\n[\u2026]\n
\nIF $case == notfound\n
\n$resp= GET [\u2026] expected_status=Anything\n
\n[Return] $resp\n
\nELSE\n
\n[\u2026]\n
\n\n#### to_json(content, pretty_print=False)\n\n*DEPRECATED* Please use ${resp.json()} instead. Have a look at the improved HTML output as pretty printing replacement.\n\nConvert a string to a JSON object\n\n`content` String content to convert into JSON\n\n`pretty_print` If defined, will output JSON is pretty print format\n\n#### update_session(alias, headers=None, cookies=None)\n\nUpdates HTTP Session Headers and Cookies.\n\nSession will be identified using the `alias` name.\nDictionary of `headers` and `cookies` to be updated and merged into session data.\n" }, { "module": "RPA.Hubspot.Hubspot", diff --git a/releasenotes.html b/releasenotes.html index 3a3cf699e7..82b1ae443e 100644 --- a/releasenotes.html +++ b/releasenotes.html @@ -179,6 +179,11 @@

Upcoming release

+ +
+

Released

+
+

27.5.1 - 01 Nov 2023

  • Library RPA.Browser.Selenium (#1123; rpaframework-core 11.2.3): Fix “There is no such driver by url” error with Chrome/Chromium versions above 114 @@ -186,8 +191,6 @@

    -

    Released

    27.5.0 - 24 Oct 2023

      diff --git a/searchindex.js b/searchindex.js index 75c81a4ece..2fef72c44a 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["contributing/conventions", "contributing/guide", "contributing/todos", "index", "libraries/archive/index", "libraries/archive/python", "libraries/assistant/index", "libraries/assistant/python", "libraries/browser/index", "libraries/browser_playwright/index", "libraries/browser_selenium/index", "libraries/browser_selenium/python", "libraries/calendar/index", "libraries/calendar/python", "libraries/cloud_aws/index", "libraries/cloud_aws/python", "libraries/cloud_azure/index", "libraries/cloud_azure/python", "libraries/cloud_google/index", "libraries/cloud_google/python", "libraries/crypto/index", "libraries/crypto/python", "libraries/database/index", "libraries/database/python", "libraries/desktop/index", "libraries/desktop/python", "libraries/desktop_clipboard/index", "libraries/desktop_clipboard/python", "libraries/desktop_operatingsystem/index", "libraries/desktop_operatingsystem/python", "libraries/desktop_windows/index", "libraries/desktop_windows/python", "libraries/dialogs/index", "libraries/dialogs/python", "libraries/documentai/index", "libraries/documentai/python", "libraries/documentai_base64ai/index", "libraries/documentai_base64ai/python", "libraries/documentai_nanonets/index", "libraries/documentai_nanonets/python", "libraries/email_exchange/index", "libraries/email_exchange/python", "libraries/email_imapsmtp/index", "libraries/email_imapsmtp/python", "libraries/excel_application/index", "libraries/excel_application/python", "libraries/excel_files/index", "libraries/excel_files/python", "libraries/filesystem/index", "libraries/filesystem/python", "libraries/ftp/index", "libraries/ftp/python", "libraries/http/index", "libraries/http/python", "libraries/hubspot/index", "libraries/hubspot/python", "libraries/images/index", "libraries/images/python", "libraries/javaaccessbridge/index", "libraries/javaaccessbridge/python", "libraries/json/index", "libraries/json/python", "libraries/mfa/index", "libraries/mfa/python", "libraries/msgraph/index", "libraries/msgraph/python", "libraries/netsuite/index", "libraries/netsuite/python", "libraries/notifier/index", "libraries/notifier/python", "libraries/openai/index", "libraries/openai/python", "libraries/outlook_application/index", "libraries/outlook_application/python", "libraries/pdf/index", "libraries/pdf/python", "libraries/robocorp_process/index", "libraries/robocorp_process/python", "libraries/robocorp_storage/index", "libraries/robocorp_storage/python", "libraries/robocorp_vault/index", "libraries/robocorp_vault/python", "libraries/robocorp_workitems/index", "libraries/robocorp_workitems/python", "libraries/robotloglistener/index", "libraries/robotloglistener/python", "libraries/salesforce/index", "libraries/salesforce/python", "libraries/sap/index", "libraries/sap/python", "libraries/slack/index", "libraries/slack/python", "libraries/smartsheet/index", "libraries/smartsheet/python", "libraries/tables/index", "libraries/tables/python", "libraries/tasks/index", "libraries/twitter/index", "libraries/twitter/python", "libraries/windows/index", "libraries/windows/python", "libraries/word_application/index", "libraries/word_application/python", "packages", "releasenotes"], "filenames": ["contributing\\conventions.rst", "contributing\\guide.rst", "contributing\\todos.rst", "index.rst", "libraries\\archive\\index.rst", "libraries\\archive\\python.rst", "libraries\\assistant\\index.rst", "libraries\\assistant\\python.rst", "libraries\\browser\\index.rst", "libraries\\browser_playwright\\index.rst", "libraries\\browser_selenium\\index.rst", "libraries\\browser_selenium\\python.rst", "libraries\\calendar\\index.rst", "libraries\\calendar\\python.rst", "libraries\\cloud_aws\\index.rst", "libraries\\cloud_aws\\python.rst", "libraries\\cloud_azure\\index.rst", "libraries\\cloud_azure\\python.rst", "libraries\\cloud_google\\index.rst", "libraries\\cloud_google\\python.rst", "libraries\\crypto\\index.rst", "libraries\\crypto\\python.rst", "libraries\\database\\index.rst", "libraries\\database\\python.rst", "libraries\\desktop\\index.rst", "libraries\\desktop\\python.rst", "libraries\\desktop_clipboard\\index.rst", "libraries\\desktop_clipboard\\python.rst", "libraries\\desktop_operatingsystem\\index.rst", "libraries\\desktop_operatingsystem\\python.rst", "libraries\\desktop_windows\\index.rst", "libraries\\desktop_windows\\python.rst", "libraries\\dialogs\\index.rst", "libraries\\dialogs\\python.rst", "libraries\\documentai\\index.rst", "libraries\\documentai\\python.rst", "libraries\\documentai_base64ai\\index.rst", "libraries\\documentai_base64ai\\python.rst", "libraries\\documentai_nanonets\\index.rst", "libraries\\documentai_nanonets\\python.rst", "libraries\\email_exchange\\index.rst", "libraries\\email_exchange\\python.rst", "libraries\\email_imapsmtp\\index.rst", "libraries\\email_imapsmtp\\python.rst", "libraries\\excel_application\\index.rst", "libraries\\excel_application\\python.rst", "libraries\\excel_files\\index.rst", "libraries\\excel_files\\python.rst", "libraries\\filesystem\\index.rst", "libraries\\filesystem\\python.rst", "libraries\\ftp\\index.rst", "libraries\\ftp\\python.rst", "libraries\\http\\index.rst", "libraries\\http\\python.rst", "libraries\\hubspot\\index.rst", "libraries\\hubspot\\python.rst", "libraries\\images\\index.rst", "libraries\\images\\python.rst", "libraries\\javaaccessbridge\\index.rst", "libraries\\javaaccessbridge\\python.rst", "libraries\\json\\index.rst", "libraries\\json\\python.rst", "libraries\\mfa\\index.rst", "libraries\\mfa\\python.rst", "libraries\\msgraph\\index.rst", "libraries\\msgraph\\python.rst", "libraries\\netsuite\\index.rst", "libraries\\netsuite\\python.rst", "libraries\\notifier\\index.rst", "libraries\\notifier\\python.rst", "libraries\\openai\\index.rst", "libraries\\openai\\python.rst", "libraries\\outlook_application\\index.rst", "libraries\\outlook_application\\python.rst", "libraries\\pdf\\index.rst", "libraries\\pdf\\python.rst", "libraries\\robocorp_process\\index.rst", "libraries\\robocorp_process\\python.rst", "libraries\\robocorp_storage\\index.rst", "libraries\\robocorp_storage\\python.rst", "libraries\\robocorp_vault\\index.rst", "libraries\\robocorp_vault\\python.rst", "libraries\\robocorp_workitems\\index.rst", "libraries\\robocorp_workitems\\python.rst", "libraries\\robotloglistener\\index.rst", "libraries\\robotloglistener\\python.rst", "libraries\\salesforce\\index.rst", "libraries\\salesforce\\python.rst", "libraries\\sap\\index.rst", "libraries\\sap\\python.rst", "libraries\\slack\\index.rst", "libraries\\slack\\python.rst", "libraries\\smartsheet\\index.rst", "libraries\\smartsheet\\python.rst", "libraries\\tables\\index.rst", "libraries\\tables\\python.rst", "libraries\\tasks\\index.rst", "libraries\\twitter\\index.rst", "libraries\\twitter\\python.rst", "libraries\\windows\\index.rst", "libraries\\windows\\python.rst", "libraries\\word_application\\index.rst", "libraries\\word_application\\python.rst", "packages.rst", "releasenotes.rst"], "titles": ["Project conventions", "Contribution guide", "TODO", "RPA Framework", "Archive", "Python API", "Assistant", "Python API", "Browser", "Browser.Playwright", "Browser.Selenium", "Python API", "Calendar", "Python API", "Cloud.AWS", "Python API", "Cloud.Azure", "Python API", "Cloud.Google", "Python API", "Crypto", "Python API", "Database", "Python API", "Desktop", "Python API", "Desktop.Clipboard", "Python API", "Desktop.OperatingSystem", "Python API", "Desktop.Windows", "Python API", "Dialogs", "Python API", "DocumentAI", "Python API", "DocumentAI.Base64AI", "Python API", "DocumentAI.Nanonets", "Python API", "Email.Exchange", "Python API", "Email.ImapSmtp", "Python API", "Excel.Application", "Python API", "Excel.Files", "Python API", "FileSystem", "Python API", "FTP", "Python API", "HTTP", "Python API", "HubSpot", "Python API", "Images", "Python API", "JavaAccessBridge", "Python API", "JSON", "Python API", "MFA", "Python API", "MSGraph", "Python API", "Netsuite", "Python API", "Notifier", "Python API", "OpenAI", "Python API", "Outlook.Application", "Python API", "PDF", "Python API", "Robocorp.Process", "Python API", "Robocorp.Storage", "Python API", "Robocorp.Vault", "Python API", "Robocorp.WorkItems", "Python API", "RobotLogListener", "Python API", "Salesforce", "Python API", "SAP", "Python API", "Slack", "Python API", "Smartsheet", "Python API", "Tables", "Python API", "Tasks", "Twitter", "Python API", "Windows", "Python API", "Word.Application", "Python API", "Robo", "Release notes"], "terms": {"thi": [0, 1, 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 73, 75, 77, 83, 85, 89, 93, 95, 100, 102, 104], "describ": [0, 1, 3, 11, 13, 15, 17, 25, 37, 55, 59, 83, 87], "common": [0, 3, 13, 17, 20, 21, 47, 55, 59, 61, 65, 93, 95, 100, 104], "all": [0, 2, 3, 5, 7, 11, 15, 17, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 100, 102], "contain": [0, 1, 3, 5, 7, 11, 13, 15, 19, 25, 31, 33, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 63, 67, 69, 71, 73, 77, 79, 81, 83, 89, 93, 95, 100, 104], "rpa": [0, 1, 5, 7, 8, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "framework": [0, 1, 7, 11, 13, 15, 17, 19, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 67, 69, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 91, 93, 95, 96, 100, 102], "repositori": [0, 3, 15, 59], "librari": [0, 1, 5, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 21, 23, 25, 27, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 58, 59, 61, 63, 64, 65, 67, 69, 70, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 99, 100, 102, 104], "which": [0, 3, 5, 7, 11, 13, 15, 17, 19, 25, 29, 31, 33, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 69, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 100, 102, 104], "ar": [0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 41, 43, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 71, 73, 79, 81, 83, 85, 87, 93, 95, 98, 100, 104], "part": [0, 1, 9, 11, 15, 31, 49, 53, 89, 104], "should": [0, 1, 2, 3, 5, 7, 11, 15, 19, 21, 23, 25, 31, 33, 41, 43, 47, 53, 55, 57, 59, 61, 63, 65, 69, 73, 83, 85, 87, 93, 95, 104], "follow": [0, 1, 3, 5, 7, 11, 13, 15, 19, 21, 25, 31, 33, 34, 35, 37, 41, 43, 45, 53, 55, 59, 61, 65, 77, 83, 87, 93, 95, 98, 100, 104], "make": [0, 1, 3, 7, 11, 15, 33, 43, 45, 53, 73, 89, 95, 98, 100, 102, 104], "mainten": 0, "bootstrap": 0, "easier": [0, 55, 95, 104], "share": [0, 11, 21, 65, 73, 100, 104], "i": [0, 1, 2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "prefix": [0, 11, 15, 25, 41, 43, 104], "rpaframework": [0, 1, 3, 7, 9, 15, 19, 23, 25, 33, 35, 37, 39, 41, 57, 59, 63, 71, 100], "exampl": [0, 1, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "secret": [0, 3, 11, 15, 17, 19, 21, 23, 35, 37, 39, 41, 43, 55, 63, 65, 67, 71, 77, 80, 85, 87, 98, 104], "manag": [0, 3, 15, 25, 27, 29, 31, 53, 75, 78, 83, 87, 104], "us": [0, 1, 2, 3, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 19, 21, 23, 25, 27, 31, 33, 34, 35, 36, 37, 38, 41, 43, 45, 47, 49, 51, 53, 57, 59, 61, 63, 65, 67, 68, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "both": [0, 3, 25, 35, 37, 47, 53, 55, 63, 93, 95, 98, 104], "git": [0, 3], "pypi": [0, 3, 19, 104], "packag": [0, 5, 7, 9, 13, 15, 19, 53, 57, 59, 63, 64, 65, 70, 71, 100], "releas": [0, 3, 31, 33, 83, 100], "under": [0, 3, 11, 45, 63, 73, 83, 100, 102, 104], "python": [0, 1, 3, 9, 104], "namespac": 0, "current": [0, 3, 5, 7, 11, 13, 15, 25, 31, 33, 35, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 65, 73, 75, 83, 87, 93, 95, 100, 104], "sourc": [0, 3, 7, 11, 15, 17, 21, 25, 31, 33, 41, 43, 47, 49, 51, 57, 71, 73, 79, 81, 83, 95, 104], "e": [0, 3, 7, 11, 13, 25, 31, 33, 35, 37, 40, 42, 43, 47, 49, 53, 55, 57, 59, 65, 69, 71, 79, 81, 83, 89, 93, 95, 100, 104], "host": [0, 23, 45, 51, 53, 69, 73, 102, 104], "github": [0, 1, 3, 7, 9, 11, 15, 37, 75, 89, 104], "These": [0, 11, 15, 41, 55, 61, 83, 87, 93], "public": [0, 15, 104], "inspect": [0, 15, 31, 33, 49, 59, 95, 100, 104], "fork": 0, "user": [0, 3, 6, 7, 11, 15, 23, 25, 29, 31, 32, 33, 37, 41, 43, 49, 51, 53, 55, 61, 63, 65, 69, 83, 89, 93, 95, 98, 100, 104], "thei": [0, 3, 5, 7, 11, 21, 25, 33, 37, 43, 49, 53, 55, 57, 59, 65, 71, 93, 95, 100, 104], "robocorp": [0, 3, 7, 11, 15, 17, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 45, 55, 63, 65, 71, 73, 75, 77, 79, 81, 83, 85, 87, 95, 100, 102, 104], "": [0, 1, 5, 7, 11, 15, 25, 27, 29, 31, 33, 35, 41, 43, 47, 51, 53, 55, 57, 59, 61, 63, 65, 66, 71, 77, 83, 89, 93, 95, 98, 100, 104], "organ": 0, "The": [0, 1, 2, 3, 7, 9, 11, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 87, 89, 93, 95, 98, 100, 102, 104], "primari": [0, 7, 23, 33, 55, 93], "index": [0, 3, 11, 37, 45, 47, 55, 59, 61, 63, 89, 93, 95, 100, 104], "reserv": [0, 7, 33, 83, 100], "accord": [0, 3, 7, 33, 43, 47, 49, 73, 95], "polici": [0, 15], "also": [0, 1, 3, 7, 11, 15, 25, 31, 33, 41, 43, 47, 49, 53, 55, 59, 61, 73, 75, 83, 85, 87, 93, 95, 100, 104], "includ": [0, 3, 5, 7, 11, 15, 23, 25, 37, 41, 43, 47, 49, 55, 59, 61, 65, 69, 71, 73, 77, 83, 89, 93, 95, 98, 100, 104], "correct": [0, 3, 7, 13, 33, 47, 59, 83, 104], "trove": 0, "classifi": 0, "find": [0, 2, 7, 11, 25, 31, 33, 45, 47, 49, 57, 59, 61, 75, 89, 95, 100, 102, 104], "them": [0, 7, 11, 15, 25, 31, 33, 35, 43, 49, 53, 55, 93, 95, 98, 104], "have": [0, 3, 7, 11, 15, 23, 25, 33, 37, 41, 43, 47, 51, 53, 55, 59, 61, 65, 71, 75, 83, 85, 87, 89, 93, 95, 100, 104], "technic": 0, "api": [0, 2, 3, 52, 64, 70, 76, 97, 104], "simpl": [0, 11, 47, 55, 87, 104], "usag": [0, 11, 19, 21, 25, 33, 37, 39, 41, 49, 55, 61, 63, 71, 89, 98, 100, 104], "instruct": [0, 104], "page": [0, 3, 7, 11, 15, 25, 31, 33, 39, 55, 67, 75, 85, 89, 100, 104], "handl": [0, 2, 7, 11, 13, 15, 23, 31, 33, 45, 59, 83, 87, 95, 100, 104], "store": [0, 5, 11, 15, 19, 21, 23, 25, 31, 35, 43, 47, 53, 63, 65, 67, 75, 78, 79, 81, 83, 87, 95, 104], "gener": [0, 3, 7, 11, 15, 21, 25, 33, 34, 35, 41, 43, 47, 55, 57, 61, 63, 65, 69, 71, 83, 104], "sphinx": 0, "robot": [0, 1, 3, 5, 7, 11, 13, 15, 17, 19, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 64, 65, 67, 69, 70, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 89, 93, 95, 96, 100, 102, 104], "autogener": 0, "from": [0, 1, 3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31, 33, 34, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "file": [0, 3, 4, 5, 7, 11, 15, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 45, 48, 49, 51, 53, 59, 61, 65, 67, 71, 73, 75, 77, 79, 81, 83, 85, 87, 93, 95, 102, 104], "docstr": [0, 104], "restructuredtext": 0, "In": [0, 3, 9, 11, 13, 15, 21, 23, 29, 31, 33, 41, 43, 53, 55, 61, 63, 65, 77, 83, 85, 87, 89, 93, 100, 104], "depth": [0, 59, 100, 104], "guid": [0, 3, 7, 11, 15, 33, 43, 61, 83, 87, 104], "separ": [0, 3, 11, 15, 25, 33, 39, 43, 49, 61, 63, 77, 83, 93, 100, 104], "portal": [0, 7, 33, 35, 37, 41, 43, 75, 83, 93, 100, 104], "creat": [0, 1, 2, 3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 33, 35, 39, 41, 43, 45, 47, 49, 51, 53, 55, 61, 63, 65, 67, 69, 71, 73, 74, 77, 83, 85, 87, 89, 93, 95, 98, 102, 104], "respons": [0, 7, 15, 17, 19, 37, 41, 43, 53, 55, 63, 71, 77, 98, 104], "develop": [0, 1, 11, 15, 17, 31, 33, 43, 55, 63, 73, 79, 81, 83, 87, 93, 98, 104], "automat": [0, 7, 11, 23, 33, 35, 41, 43, 45, 47, 53, 55, 73, 79, 81, 83, 89, 95, 102, 104], "black": [0, 3], "tool": [0, 3, 11, 17, 33, 59, 100, 104], "For": [0, 3, 7, 11, 12, 15, 23, 25, 31, 33, 37, 39, 41, 43, 53, 55, 57, 61, 65, 71, 73, 75, 76, 83, 85, 90, 93, 95, 100, 104], "strictli": 0, "flake8": [0, 3], "On": [0, 11, 53, 85, 100, 104], "top": [0, 7, 17, 25, 31, 33, 37, 43, 47, 57, 59, 100, 104], "we": [0, 2, 25, 35, 53, 59, 63, 83, 104], "pylint": 0, "even": [0, 11, 25, 41, 53, 85], "isort": 0, "mypi": [0, 2], "valid": [0, 2, 7, 13, 31, 33, 37, 43, 47, 55, 61, 71, 93, 95, 104], "pull": [0, 1, 3, 104], "request": [0, 3, 6, 7, 11, 15, 32, 33, 37, 39, 53, 55, 63, 65, 77, 87, 93, 98, 100, 104], "probabl": [0, 55, 71, 100], "offer": [0, 3, 7, 11, 35, 89, 104], "pre": [0, 7, 33, 35], "commit": [0, 3, 23, 104], "hook": [0, 11, 69], "check": [0, 7, 11, 13, 15, 19, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 53, 59, 65, 73, 75, 85, 89, 100, 102, 104], "reason": [0, 53, 59, 83, 104], "why": [0, 43], "auto": [0, 7, 11, 23, 33, 47, 104], "good": [0, 1, 3, 11], "idea": [0, 11], "similar": [0, 11, 15, 25, 37, 55, 61, 63, 104], "javascript": [0, 11, 61], "prettier": 0, "decent": 0, "coverag": 0, "through": [0, 1, 11, 15, 25, 33, 37, 41, 43, 45, 53, 55, 61, 63, 69, 73, 83, 95, 100, 102, 104], "unittest": [0, 3], "main": [0, 3, 7, 11, 25, 35, 63, 95, 100, 104], "pytest": [0, 3], "track": [0, 1, 100], "can": [0, 1, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 69, 71, 73, 75, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "done": [0, 3, 11, 25, 33, 41, 43, 53, 57, 61, 65, 83, 85, 95, 104], "via": [0, 1, 11, 15, 19, 23, 37, 39, 55, 59, 65, 69, 71, 83, 87, 93, 100, 104], "plug": 0, "each": [0, 3, 5, 7, 11, 15, 33, 35, 37, 43, 47, 53, 55, 59, 61, 77, 83, 89, 93, 95, 104], "task": [0, 3, 5, 7, 11, 15, 17, 19, 21, 23, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 95, 98, 100, 102, 104], "provid": [0, 2, 3, 7, 11, 15, 33, 34, 37, 41, 43, 47, 53, 55, 59, 61, 63, 65, 69, 71, 77, 83, 87, 89, 93, 100, 104], "keyword": [0, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "act": [0, 7, 11, 33, 83, 104], "runnabl": 0, "accept": [0, 3, 7, 11, 15, 33, 37, 47, 53, 55, 59, 63, 95, 100, 104], "addit": [0, 11, 13, 15, 23, 25, 43, 53, 55, 65, 83, 87, 93, 95, 104], "function": [0, 7, 11, 25, 27, 31, 47, 53, 65, 83, 89, 93, 104], "best": [0, 11, 43, 55, 65], "option": [0, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 77, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "action": [0, 3, 7, 11, 23, 25, 29, 43, 59, 89, 100, 104], "step": [0, 1, 3, 7, 9, 19, 35, 43, 45, 55, 59, 61, 73, 77, 83, 102, 104], "least": [0, 1, 2, 7, 41, 93, 104], "ci": [0, 3], "pipelin": 0, "matrix": 0, "platform": [0, 2, 3, 11, 24, 25, 29, 104], "window": [0, 3, 7, 11, 25, 33, 45, 59, 73, 89, 102, 104], "linux": [0, 11, 49, 104], "maco": [0, 104], "3": [0, 3, 9, 11, 13, 15, 19, 31, 47, 53, 59, 71, 85, 89, 95, 100], "8": [0, 3, 13, 15, 21, 23, 31, 37, 43, 49, 53, 61, 89, 95, 100], "9": [0, 3, 7, 9, 33, 41, 89, 95, 100], "10": [0, 13, 31, 41, 43, 47, 49, 59, 67, 71, 73, 77, 89, 95, 100], "keep": [0, 7, 11, 33, 35, 59, 75, 95, 100, 104], "remov": [0, 2, 11, 31, 33, 43, 47, 49, 51, 53, 61, 83, 89, 93, 95, 104], "bug": [0, 3, 47, 104], "fix": [0, 1, 23, 25, 43, 100, 104], "etc": [0, 11, 35, 41, 47, 53, 93, 104], "affect": [0, 2, 15, 45, 47, 85, 100, 104], "entri": [0, 15, 25, 87], "meant": [0, 104], "human": [0, 2, 7, 25, 29, 31, 33, 55, 83, 89, 104], "readabl": [0, 89], "an": [0, 1, 3, 5, 7, 11, 13, 15, 21, 23, 25, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 71, 73, 75, 77, 79, 81, 83, 87, 89, 93, 95, 98, 100, 102, 104], "method": [0, 2, 3, 5, 11, 15, 17, 19, 21, 31, 53, 59, 63, 65, 73, 85, 87, 93, 100, 104], "process": [0, 3, 7, 11, 19, 28, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 45, 47, 49, 59, 61, 73, 83, 89, 95, 100, 102, 104], "entir": [0, 15, 41, 59, 65, 83, 89, 104], "manual": [0, 7, 11, 33, 45, 59, 73, 79, 81, 83, 95, 102, 104], "reli": [0, 11, 35, 79, 81], "towncrier": 0, "semant": [0, 3], "when": [0, 1, 2, 7, 11, 13, 15, 19, 23, 25, 31, 33, 35, 41, 43, 47, 53, 59, 61, 63, 65, 71, 73, 79, 81, 83, 85, 87, 89, 93, 95, 100, 104], "gist": 0, "given": [0, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 67, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "number": [0, 3, 7, 11, 13, 15, 23, 33, 41, 43, 45, 47, 53, 55, 61, 67, 69, 71, 75, 77, 87, 89, 93, 95, 98, 100, 104], "major": [0, 104], "minor": [0, 104], "patch": [0, 9, 53], "increment": [0, 55], "you": [0, 1, 3, 7, 9, 11, 15, 23, 25, 33, 35, 37, 41, 43, 45, 47, 53, 55, 59, 61, 63, 65, 71, 73, 75, 79, 81, 83, 87, 89, 93, 98, 100, 102, 104], "incompat": [0, 11, 104], "add": [0, 2, 5, 7, 9, 11, 13, 21, 31, 33, 43, 45, 53, 55, 61, 63, 71, 75, 83, 87, 93, 95, 100, 104], "backward": [0, 83, 95, 104], "compat": [0, 23, 39, 43, 59, 83, 100, 104], "manner": 0, "support": [0, 2, 5, 7, 11, 17, 23, 25, 31, 33, 34, 35, 37, 39, 41, 43, 47, 51, 55, 59, 62, 63, 69, 71, 75, 93, 95, 100, 104], "sinc": [0, 41, 47, 83, 100, 104], "6": [0, 3, 11, 13, 47, 71, 89, 95, 100], "improv": [0, 1, 53, 104], "maintain": [0, 3, 7, 33, 59, 65, 100], "after": [0, 3, 7, 11, 15, 31, 33, 41, 43, 47, 49, 53, 59, 61, 63, 65, 83, 89, 95, 104], "reach": [0, 33, 49, 53, 100, 104], "certain": [0, 5, 7, 11, 33, 37, 57, 61, 83, 100], "size": [0, 3, 5, 7, 11, 15, 25, 33, 47, 49, 51, 71, 73, 95, 104], "convert": [0, 2, 15, 23, 25, 33, 43, 47, 53, 55, 61, 83, 93, 95, 100, 104], "input": [0, 3, 6, 7, 11, 13, 15, 21, 25, 31, 32, 33, 37, 43, 49, 59, 61, 75, 77, 83, 87, 89, 95, 100, 104], "argument": [0, 5, 7, 11, 15, 21, 23, 25, 33, 35, 43, 45, 47, 49, 53, 55, 61, 63, 69, 71, 75, 77, 83, 85, 87, 93, 95, 100, 104], "strive": 0, "older": [0, 11, 45, 104], "than": [0, 7, 11, 13, 23, 33, 41, 49, 53, 55, 57, 59, 61, 71, 77, 95, 98, 104], "aim": 0, "newer": [0, 3, 8, 9, 11, 104], "requir": [0, 3, 7, 9, 11, 15, 19, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 53, 57, 59, 61, 63, 65, 73, 83, 89, 98, 102, 104], "featur": [0, 1, 3, 7, 11, 17, 21, 25, 33, 37, 55, 59, 61, 83, 104], "backport": 0, "There": [1, 7, 11, 31, 33, 41, 47, 59, 61, 65, 69, 75, 87, 93, 100, 104], "sever": [1, 31, 53, 59, 65, 87, 93, 104], "wai": [1, 2, 3, 7, 11, 15, 17, 19, 25, 31, 33, 41, 49, 61, 65, 69, 87, 93, 95, 100, 104], "section": [1, 11, 17, 55, 83, 100, 104], "variou": [1, 11, 25, 43, 55, 59, 95, 104], "project": [1, 9, 11, 19, 35], "primarili": [1, 65, 104], "issu": [1, 3, 9, 45, 47, 53, 59, 73, 100, 102, 104], "tracker": [1, 9, 89], "try": [1, 7, 11, 25, 47, 55, 83, 85, 93, 100, 104], "explain": [1, 11, 104], "clearli": 1, "what": [1, 2, 7, 11, 33, 55, 67, 71, 104], "expect": [1, 11, 13, 15, 17, 19, 23, 35, 41, 53, 59, 89, 95, 100, 104], "outcom": 1, "wa": [1, 7, 11, 17, 23, 31, 33, 41, 43, 49, 53, 55, 57, 59, 61, 63, 65, 69, 73, 85, 87, 98, 104], "possibli": [1, 59], "reproduc": 1, "attach": [1, 11, 41, 43, 55, 69, 73, 83, 93, 104], "code": [1, 3, 11, 13, 15, 31, 41, 43, 47, 51, 53, 55, 63, 65, 79, 81, 83, 98, 100, 104], "veri": [1, 11, 35, 83], "help": [1, 17, 65, 71, 100, 104], "inform": [1, 2, 3, 5, 6, 7, 11, 13, 15, 17, 23, 25, 28, 29, 31, 32, 33, 41, 43, 53, 59, 67, 69, 73, 75, 77, 87, 93, 95, 100, 104], "version": [1, 3, 7, 9, 15, 19, 35, 37, 39, 43, 53, 55, 59, 63, 71, 73], "interpret": [1, 83, 93], "oper": [1, 3, 5, 7, 11, 13, 15, 17, 19, 20, 21, 23, 25, 31, 33, 40, 41, 42, 43, 45, 55, 57, 61, 67, 73, 83, 86, 87, 91, 93, 95, 98, 100, 102, 104], "system": [1, 3, 7, 11, 15, 26, 29, 31, 45, 55, 71, 73, 95, 100, 102, 104], "error": [1, 2, 3, 7, 11, 15, 31, 33, 43, 45, 47, 49, 51, 53, 55, 59, 73, 77, 83, 85, 87, 89, 104], "messag": [1, 2, 3, 7, 11, 15, 31, 33, 41, 43, 51, 53, 55, 68, 69, 71, 73, 83, 89, 90, 91, 104], "traceback": [1, 104], "applic": [1, 3, 7, 11, 15, 25, 30, 31, 33, 41, 43, 47, 58, 59, 65, 83, 89, 93, 100, 104], "If": [1, 7, 11, 13, 15, 21, 23, 25, 29, 31, 33, 35, 41, 43, 45, 47, 49, 53, 55, 59, 61, 65, 73, 83, 85, 87, 89, 93, 95, 100, 102, 104], "possibl": [1, 3, 7, 9, 11, 15, 31, 33, 39, 41, 43, 45, 47, 53, 59, 65, 69, 73, 83, 85, 89, 95, 102, 104], "suppli": [1, 83, 93], "minim": [1, 31], "replic": 1, "problem": [1, 11, 41, 83, 104], "down": [1, 7, 11, 25, 31, 33, 47, 59, 89, 100], "think": 1, "someth": [1, 41, 57], "miss": [1, 3, 5, 49, 104], "well": [1, 3, 11, 55, 65, 79, 81, 83, 100, 104], "anyth": [1, 7, 11, 53, 59, 83], "new": [1, 3, 7, 9, 11, 19, 25, 31, 33, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 71, 73, 79, 81, 83, 87, 89, 93, 95, 102, 104], "document": [1, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 74, 75, 76, 78, 80, 82, 83, 84, 86, 88, 90, 92, 94, 95, 96, 97, 99, 100, 101, 102, 104], "A": [1, 7, 11, 13, 15, 21, 25, 33, 37, 41, 43, 47, 53, 55, 63, 64, 65, 70, 71, 75, 77, 83, 89, 93, 95, 100], "propos": 1, "solv": 1, "case": [1, 7, 11, 21, 25, 33, 43, 47, 53, 55, 61, 83, 89, 93, 95, 100, 104], "demo": [1, 75, 100], "how": [1, 7, 11, 15, 17, 25, 29, 31, 35, 37, 41, 43, 47, 53, 59, 61, 71, 73, 83, 87, 95, 100, 104], "would": [1, 11, 23, 55, 57, 59, 83, 85, 95, 98, 100, 104], "re": [1, 7, 9, 11, 15, 23, 31, 35, 37, 43, 45, 73, 95, 102, 104], "unsur": 1, "worth": 1, "implement": [1, 2, 7, 83, 85, 104], "first": [1, 3, 7, 11, 13, 25, 33, 35, 43, 45, 47, 55, 61, 73, 75, 83, 89, 93, 95, 98, 100, 102, 104], "ask": [1, 7, 11, 93, 104], "channel": [1, 3, 9, 15, 69, 91, 100], "slack": [1, 3, 69, 104], "instead": [1, 2, 3, 7, 11, 15, 23, 25, 27, 31, 33, 37, 41, 53, 55, 59, 63, 71, 89, 95, 104], "directli": [1, 3, 11, 15, 35, 46, 47, 52, 55, 57, 59, 79, 81, 83, 95, 100], "direct": [1, 4, 6, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 61, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 97, 99, 100, 101, 104], "extern": [1, 3, 7, 15, 33, 47, 49, 75, 104], "welcom": [1, 51], "ani": [1, 2, 3, 7, 11, 15, 23, 25, 29, 31, 33, 34, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 67, 69, 73, 77, 83, 85, 87, 93, 95, 100, 102, 104], "typo": [1, 104], "howev": [1, 33, 55], "befor": [1, 3, 7, 11, 21, 25, 31, 33, 35, 41, 45, 47, 51, 53, 55, 59, 61, 73, 77, 83, 85, 89, 98, 100, 102, 104], "larg": [1, 7, 23, 33, 49, 53, 104], "advis": [1, 23, 89], "discuss": [1, 3, 11, 93, 104], "beforehand": 1, "correspond": [1, 7, 11, 15, 33, 35, 55, 57, 83, 87], "gh": 1, "write": [1, 3, 7, 15, 25, 45, 47, 49, 59, 61, 71, 83, 95, 102, 104], "pleas": [1, 3, 7, 8, 11, 15, 23, 31, 33, 35, 41, 43, 45, 47, 53, 59, 73, 102, 104], "read": [1, 3, 11, 15, 21, 25, 28, 41, 43, 45, 47, 48, 49, 53, 55, 59, 61, 63, 69, 73, 74, 75, 79, 81, 83, 87, 95, 98, 104], "acknowledg": [1, 3], "our": [1, 3, 59, 65, 100, 104], "extens": [1, 3, 5, 7, 33, 45, 47, 49, 53, 65, 79, 81, 83, 104], "dev": [1, 3, 7, 23, 104], "line": [2, 11, 15, 21, 55, 57, 75, 95, 100, 102], "258": 2, "take": [2, 7, 11, 25, 31, 33, 43, 57, 71, 87, 89, 95, 104], "autocommit": [2, 23, 104], "modul": [2, 3, 11, 17, 23, 31, 57, 104], "651": 2, "too": [2, 11, 25, 104], "compl": 2, "1137": 2, "return": [2, 5, 7, 11, 13, 15, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 57, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "more": [2, 3, 7, 11, 13, 15, 21, 23, 25, 31, 33, 41, 43, 45, 49, 53, 55, 57, 59, 61, 67, 69, 71, 73, 75, 83, 87, 93, 95, 100, 102, 104], "valuabl": 2, "about": [2, 3, 5, 7, 11, 15, 23, 31, 33, 41, 43, 53, 55, 59, 69, 73, 77, 85, 89, 93, 95, 100, 104], "1390": 2, "multipl": [2, 3, 7, 11, 15, 21, 23, 33, 35, 37, 39, 49, 53, 55, 59, 61, 65, 75, 77, 83, 95, 104], "search": [2, 3, 11, 15, 29, 31, 37, 41, 43, 45, 49, 57, 59, 65, 67, 93, 95, 98, 100, 104], "criteria": [2, 31, 43, 55, 73, 95, 104], "same": [2, 7, 11, 15, 21, 25, 33, 35, 41, 47, 51, 53, 55, 61, 63, 69, 77, 83, 89, 95, 100, 104], "time": [2, 3, 5, 7, 11, 12, 13, 15, 29, 31, 33, 41, 43, 47, 49, 53, 62, 63, 73, 83, 85, 87, 89, 93, 98, 100, 104], "identifi": [2, 11, 15, 17, 25, 29, 31, 37, 39, 53, 55, 59, 83, 87, 89, 93, 95, 100, 104], "ONE": 2, "element": [2, 7, 11, 15, 25, 31, 33, 57, 59, 61, 85, 89, 100, 104], "1416": 2, "114": [2, 104], "move": [2, 25, 31, 41, 43, 47, 49, 73, 104], "specif": [2, 3, 7, 11, 13, 15, 17, 21, 23, 25, 35, 37, 41, 43, 59, 61, 69, 73, 77, 79, 81, 85, 100, 104], "adapt": [2, 79, 81, 83, 104], "170": [2, 104], "out": [2, 11, 15, 49, 83, 93], "get": [2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 71, 73, 75, 77, 79, 81, 83, 87, 89, 95, 98, 100, 102, 104], "actual": [2, 45, 47], "default": [2, 3, 5, 7, 11, 13, 15, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "307": 2, "run": [2, 3, 7, 11, 15, 19, 23, 29, 31, 33, 35, 41, 45, 47, 49, 73, 77, 79, 81, 83, 85, 89, 95, 100, 102, 104], "mayb": 2, "screenshot": [2, 11, 25, 31, 47, 57, 85, 89, 104], "match": [2, 7, 11, 15, 17, 21, 25, 29, 31, 33, 37, 41, 43, 47, 49, 57, 59, 61, 65, 73, 75, 77, 83, 85, 89, 93, 95, 98, 104], "73": [2, 89], "clamp": 2, "dimens": [2, 7, 17, 33, 95, 104], "106": 2, "enum": [2, 104], "exhaust": 2, "177": 2, "draw": [2, 31, 57], "circl": 2, "526": 2, "exchangelib": [2, 104], "doe": [2, 11, 15, 29, 31, 33, 43, 45, 47, 49, 53, 55, 59, 77, 83, 89, 95, 100, 104], "seem": [2, 104], "straightforward": 2, "958": 2, "2259": 2, "target": [2, 3, 11, 25, 31, 33, 37, 41, 43, 45, 47, 53, 59, 61, 65, 67, 69, 73, 77, 83, 100, 104], "worksheet": [2, 45, 47, 67, 95, 104], "cell": [2, 11, 15, 39, 45, 47, 59, 89, 93, 95, 104], "format": [2, 3, 5, 7, 11, 13, 15, 21, 23, 25, 29, 31, 33, 35, 37, 39, 43, 45, 47, 49, 53, 61, 71, 83, 87, 89, 93, 95, 102, 104], "overwritten": 2, "573": 2, "glob": [2, 7, 33, 49], "611": [2, 104], "subdirectori": [2, 5, 7, 33, 43, 49], "872": [2, 104], "proper": [2, 15, 65, 104], "date": [2, 3, 7, 12, 13, 33, 43, 47, 57, 87, 93, 98, 104], "882": [2, 104], "891": 2, "friendli": [2, 7, 33, 83, 104], "229": 2, "log": [2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 71, 75, 79, 81, 83, 84, 85, 89, 93, 95, 100, 104], "row": [2, 7, 11, 15, 23, 33, 39, 45, 47, 59, 67, 89, 93, 95, 100, 104], "debug": [2, 11, 33, 51, 53, 89, 93, 104], "level": [2, 3, 49, 51, 59, 79, 81, 83, 85, 100, 104], "436": 2, "437": 2, "xpath": [2, 11, 61], "syntax": [2, 11, 25, 43, 100, 104], "122": 2, "tokenbackend": 2, "vault": [2, 3, 7, 15, 17, 19, 21, 23, 33, 35, 37, 39, 41, 43, 55, 63, 65, 71, 77, 79, 81, 85, 87, 104], "297": 2, "fail": [2, 3, 7, 11, 23, 33, 49, 51, 53, 55, 59, 77, 83, 85, 93, 104], "defin": [2, 3, 5, 7, 11, 25, 29, 31, 33, 47, 53, 55, 59, 61, 65, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 104], "path": [2, 3, 5, 7, 11, 15, 19, 21, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 48, 49, 51, 53, 57, 59, 61, 65, 73, 75, 77, 79, 81, 83, 87, 93, 95, 100, 102, 104], "want": [2, 3, 7, 11, 15, 19, 23, 33, 35, 41, 43, 53, 55, 83, 89, 104], "209": 2, "endpoint": [2, 15, 17, 19, 37, 53, 63, 71, 77, 87], "118": 2, "throughout": [2, 104], "218": 2, "consid": [2, 11, 13, 37, 47, 53, 61, 71, 89, 93], "properli": [2, 55, 104], "connect": [2, 11, 15, 23, 31, 41, 43, 45, 51, 53, 65, 67, 73, 87, 89, 102, 104], "676": 2, "result": [2, 3, 7, 13, 15, 17, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 49, 53, 55, 57, 61, 65, 67, 71, 75, 77, 83, 87, 93, 95, 98, 100, 104], "object": [2, 3, 7, 11, 13, 15, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 53, 54, 57, 59, 60, 61, 65, 67, 79, 81, 83, 87, 89, 95, 100, 104], "modifi": [2, 5, 11, 15, 25, 43, 49, 53, 55, 79, 80, 81, 83, 93, 95], "here": [2, 7, 33, 37, 41, 47, 53, 61, 93, 100], "36": [2, 89], "cmin764": 2, "16": [2, 3, 7, 9, 13, 47, 63, 75, 89, 100], "aug": 2, "2023": [2, 13, 71], "handles_com_error": 2, "decor": 2, "littl": 2, "collect": [3, 15, 55, 61, 79, 81, 83, 104], "open": [3, 7, 11, 17, 25, 31, 33, 41, 43, 45, 47, 49, 53, 63, 65, 70, 73, 75, 83, 85, 89, 102, 104], "autom": [3, 7, 9, 10, 11, 24, 25, 30, 31, 33, 57, 58, 59, 89, 93, 99, 100, 104], "design": [3, 11, 61, 89, 104], "goal": 3, "activ": [3, 11, 31, 35, 45, 47, 55, 59, 65, 73, 75, 83, 93, 100, 102, 104], "core": [3, 7, 104], "softwar": [3, 43], "learn": [3, 41, 55, 93, 100], "100": [3, 7, 25, 31, 41, 61, 67, 98, 100], "sponsor": 3, "optim": [3, 104], "control": [3, 7, 10, 11, 25, 31, 33, 43, 44, 45, 47, 53, 59, 65, 71, 72, 73, 77, 78, 79, 81, 82, 83, 84, 85, 88, 96, 100, 101, 102, 104], "room": [3, 17, 45, 65, 73, 77, 78, 79, 81, 82, 83, 102, 104], "homepag": 3, "http": [3, 7, 11, 13, 23, 33, 35, 37, 43, 45, 49, 51, 55, 63, 65, 69, 71, 73, 75, 77, 83, 85, 89, 100, 102, 104], "www": [3, 11, 23, 49, 53, 85, 100], "com": [3, 7, 11, 23, 33, 35, 37, 41, 43, 45, 49, 53, 55, 61, 63, 65, 69, 71, 73, 75, 83, 85, 95, 100, 102, 104], "org": [3, 11, 23, 51, 53, 69], "note": [3, 11, 15, 21, 23, 25, 31, 33, 41, 43, 45, 47, 49, 53, 55, 59, 63, 71, 73, 77, 79, 81, 83, 89, 93], "releasenot": 3, "html": [3, 11, 41, 43, 49, 53, 73, 83, 89, 102, 104], "rss": 3, "feed": 3, "xml": [3, 49, 61, 104], "abov": [3, 11, 15, 45, 53, 61, 69, 77, 100, 104], "recognit": [3, 25, 57, 104], "alon": [3, 59], "do": [3, 7, 11, 31, 33, 43, 53, 55, 83, 85, 93, 95, 100, 104], "x": [3, 7, 17, 23, 25, 31, 33, 57, 59, 89, 100, 104], "column": [3, 7, 11, 15, 23, 45, 47, 59, 89, 93, 95, 104], "mean": [3, 5, 7, 9, 11, 13, 15, 23, 29, 31, 33, 41, 71, 100, 104], "dialog": [3, 7, 25, 31, 104], "name": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 104], "descript": [3, 7, 11, 15, 23, 25, 33, 55, 59, 61, 71, 87, 93, 95, 104], "archiv": [3, 49, 55, 59, 104], "tar": [3, 4, 5, 104], "zip": [3, 4, 5, 55, 104], "assist": [3, 33, 37, 55, 59, 71, 79, 81, 104], "displai": [3, 6, 7, 11, 31, 32, 33, 45, 47, 59, 65, 73, 93, 100, 102, 104], "selenium": [3, 8, 85, 104], "web": [3, 10, 11, 15, 19, 41, 52, 57, 61, 65, 67, 104], "special": [3, 7, 11, 15, 25, 31, 33, 41, 75, 100], "below": [3, 11, 15, 25, 45, 55, 63, 65, 69, 73, 85, 87, 95, 100, 102, 104], "calendar": [3, 41, 65, 104], "manipul": [3, 12, 15, 28, 45, 46, 47, 48, 56, 57, 60, 61, 94, 95, 104], "cloud": [3, 11, 15, 17, 19, 35, 83, 104], "aw": [3, 104], "amazon": [3, 14, 15, 104], "servic": [3, 11, 14, 15, 16, 17, 18, 19, 34, 35, 36, 37, 38, 39, 41, 45, 63, 66, 67, 68, 69, 71, 73, 75, 102, 104], "azur": [3, 23, 65, 71, 104], "microsoft": [3, 16, 17, 31, 41, 45, 47, 64, 65, 70, 73, 83, 100, 104], "googl": [3, 11, 34, 35, 43, 53, 55, 59, 63], "crypto": [3, 104], "hash": [3, 20, 21, 104], "encrypt": [3, 20, 21, 75, 104], "databas": [3, 15, 25, 55, 79, 81, 87, 104], "interact": [3, 7, 11, 22, 25, 26, 31, 33, 49, 50, 51, 52, 59, 77, 79, 81, 82, 83, 100, 104], "desktop": [3, 11, 27, 29, 31, 44, 45, 57, 59, 72, 73, 88, 99, 100, 101, 102, 104], "cross": [3, 7, 15, 24, 25, 29, 33, 104], "clipboard": [3, 25], "operatingsystem": [3, 43, 49, 104], "o": [3, 28, 59, 63, 73, 77, 89, 104], "dure": [3, 7, 11, 31, 33, 63, 77, 84, 85, 104], "execut": [3, 7, 9, 11, 15, 21, 23, 31, 33, 45, 49, 51, 55, 59, 73, 83, 85, 87, 96, 100, 102, 104], "documentai": [3, 37, 39, 75, 104], "intellig": [3, 34, 36, 37, 38, 39, 104], "wrapper": [3, 35, 59, 104], "base64ai": [3, 35, 104], "nanonet": [3, 34, 35, 104], "email": [3, 7, 25, 33, 37, 41, 43, 55, 61, 67, 69, 73, 83, 93, 95, 104], "exchang": [3, 43, 63, 65, 104], "mail": [3, 7, 33, 35, 40, 41, 42, 43, 61, 63, 83, 95, 100, 104], "protocol": [3, 11, 40, 43, 53, 104], "imapsmtp": [3, 104], "imap": [3, 42, 43, 104], "smtp": [3, 42, 43, 69, 104], "excel": [3, 7, 31, 33, 53, 67, 73, 95, 104], "filesystem": [3, 15, 51, 104], "ftp": [3, 104], "server": [3, 23, 41, 43, 45, 50, 51, 53, 73, 91, 93, 102, 104], "hubspot": [3, 104], "access": [3, 11, 15, 21, 23, 31, 35, 41, 43, 49, 51, 54, 59, 61, 63, 64, 65, 66, 67, 70, 77, 80, 83, 87, 92, 93, 95, 98, 100, 104], "crm": [3, 54, 55, 104], "data": [3, 7, 11, 15, 21, 23, 33, 35, 37, 45, 47, 49, 53, 54, 55, 59, 61, 63, 65, 67, 75, 77, 83, 87, 93, 94, 95, 104], "imag": [3, 5, 7, 11, 15, 17, 25, 31, 33, 37, 41, 43, 47, 63, 71, 75, 100, 104], "javaaccessbridg": [3, 104], "java": [3, 58, 59, 104], "json": [3, 15, 19, 23, 31, 35, 37, 49, 53, 71, 77, 83, 87, 91, 95, 104], "mfa": [3, 15, 85, 104], "authent": [3, 15, 17, 19, 21, 35, 41, 43, 51, 53, 55, 62, 63, 65, 87, 93, 98, 104], "one": [3, 7, 11, 15, 21, 23, 25, 31, 33, 35, 41, 43, 45, 47, 53, 55, 59, 61, 62, 63, 65, 67, 71, 83, 87, 95, 100, 104], "password": [3, 7, 23, 31, 33, 41, 43, 47, 51, 53, 62, 63, 67, 69, 79, 81, 87, 89, 104], "otp": [3, 62, 63, 104], "oauth2": [3, 19, 41, 43, 63, 65, 104], "notifi": [3, 104], "differ": [3, 7, 11, 13, 15, 17, 19, 23, 25, 33, 35, 37, 39, 41, 53, 59, 61, 65, 68, 69, 77, 83, 87, 89, 93, 95, 100, 104], "openai": [3, 104], "artifici": 3, "outlook": [3, 31, 45, 69, 102, 104], "pdf": [3, 7, 11, 15, 19, 33, 35, 37, 39, 41, 43, 45, 73, 102, 104], "workitem": [3, 43, 77, 83, 104], "work": [3, 5, 7, 11, 13, 21, 23, 25, 31, 35, 41, 43, 45, 49, 51, 59, 61, 73, 75, 77, 79, 81, 82, 83, 89, 100, 102, 104], "item": [3, 7, 11, 13, 15, 17, 21, 31, 37, 41, 43, 49, 55, 59, 61, 65, 67, 73, 75, 77, 82, 83, 89, 93, 100, 104], "storag": [3, 19, 35, 49, 104], "asset": [3, 78, 104], "salesforc": [3, 104], "sap": [3, 104], "gui": [3, 88, 89], "client": [3, 15, 17, 41, 43, 53, 55, 61, 63, 65, 87, 88, 104], "smartsheet": [3, 104], "sheet": [3, 45, 47, 92, 95, 104], "sort": [3, 13, 47, 61, 73, 94, 95, 104], "filter": [3, 15, 23, 37, 41, 43, 47, 55, 61, 73, 83, 93, 94, 95, 104], "tabular": [3, 15, 47, 94, 95], "twitter": [3, 104], "interfac": [3, 25, 41, 43, 76, 97], "altern": [3, 55, 71, 79, 81, 83, 89, 100, 104], "word": [3, 11, 15, 31, 39, 43, 45, 53, 73, 100, 102, 104], "moment": [3, 23, 41, 59, 104], "becaus": [3, 11, 41, 59, 85, 95, 100, 104], "post": [3, 53, 63, 87, 91], "need": [3, 7, 11, 15, 17, 19, 25, 29, 31, 35, 37, 39, 41, 43, 47, 53, 59, 73, 77, 85, 87, 89, 91, 93, 104], "fulli": [3, 11], "minimum": [3, 7, 31, 35, 37, 39, 41, 63, 104], "conda": [3, 7, 15, 25, 71, 100, 104], "yaml": [3, 7, 15, 25, 71, 83, 104], "forg": [3, 9, 15, 100], "depend": [3, 7, 9, 11, 15, 25, 33, 55, 57, 61, 77, 89, 93, 100, 104], "nodej": [3, 9], "14": [3, 9, 89], "2": [3, 7, 9, 11, 13, 15, 17, 19, 23, 31, 37, 43, 47, 51, 53, 55, 61, 65, 71, 77, 83, 85, 89, 93, 95, 100], "pip": [3, 15, 25, 57, 100, 104], "22": [3, 9, 13, 31, 47, 61, 89, 95, 100], "1": [3, 7, 9, 11, 13, 15, 17, 19, 23, 25, 31, 37, 39, 41, 43, 45, 47, 51, 53, 55, 57, 59, 61, 69, 71, 73, 75, 83, 85, 87, 89, 93, 95, 100], "robotframework": [3, 9, 11, 59, 104], "17": [3, 9, 23, 85, 89], "0": [3, 7, 9, 11, 13, 15, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 71, 73, 83, 89, 93, 95, 100], "24": [3, 7, 47, 89], "rccpostinstal": [3, 9], "rfbrowser": [3, 9], "init": [3, 9, 15, 17, 19, 35, 104], "To": [3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31, 33, 37, 39, 43, 45, 47, 53, 55, 59, 67, 71, 75, 77, 79, 81, 83, 87, 89, 93, 100, 104], "extra": [3, 9, 15, 23, 37, 59, 69, 102, 104], "tesseract": [3, 25], "4": [3, 11, 13, 47, 53, 63, 71, 87, 89, 95, 100], "5": [3, 7, 11, 13, 15, 23, 25, 31, 33, 41, 43, 47, 49, 57, 59, 67, 71, 73, 89, 95, 98, 100], "7": [3, 9, 13, 15, 23, 43, 47, 71, 89, 95, 100], "without": [3, 11, 23, 33, 43, 47, 49, 53, 59, 65, 71, 85, 100, 104], "higher": [3, 51, 71, 83], "import": [3, 5, 7, 11, 15, 19, 23, 25, 27, 29, 31, 35, 37, 39, 41, 43, 45, 47, 49, 51, 55, 57, 59, 61, 63, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "insid": [3, 7, 35, 49, 61, 63, 83, 95, 104], "set": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "login": [3, 7, 11, 25, 33, 51, 65, 67, 83, 87, 89], "avail": [3, 7, 9, 11, 15, 19, 25, 31, 33, 39, 45, 47, 55, 59, 65, 67, 77, 83, 85, 87, 93, 95, 100, 104], "text": [3, 7, 11, 15, 17, 19, 21, 23, 25, 27, 31, 33, 37, 39, 43, 47, 49, 59, 65, 71, 75, 83, 89, 91, 93, 95, 98, 102, 104], "id": [3, 7, 11, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 55, 59, 61, 63, 65, 67, 69, 71, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 104], "usernam": [3, 7, 23, 29, 31, 33, 41, 43, 53, 69, 79, 81, 83, 87, 93, 95, 98], "lib": [3, 5, 23, 37, 47, 49, 57, 100], "open_available_brows": [3, 11], "input_text": [3, 89], "tutori": 3, "question": [3, 11], "forum": 3, "commun": 3, "your": [3, 7, 11, 15, 17, 21, 25, 33, 41, 43, 47, 55, 59, 71, 83, 87, 93, 100, 104], "fellow": 3, "expert": 3, "found": [3, 11, 25, 31, 37, 39, 41, 43, 45, 53, 55, 57, 59, 63, 65, 87, 89, 93, 95, 100, 104], "critic": [3, 104], "interest": [3, 100], "head": [3, 7, 11, 33, 43, 47, 53, 95, 104], "over": [3, 31, 37, 43, 47, 49, 61, 83, 95, 104], "see": [3, 7, 9, 11, 13, 15, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 69, 73, 77, 83, 85, 89, 93, 95, 100, 102, 104], "where": [3, 5, 7, 11, 15, 23, 33, 35, 41, 43, 45, 47, 53, 55, 57, 65, 69, 71, 73, 83, 87, 95, 100, 102, 104], "start": [3, 7, 11, 13, 15, 19, 25, 31, 33, 39, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 77, 83, 85, 89, 95, 100, 104], "base": [3, 7, 9, 11, 19, 23, 25, 33, 35, 43, 49, 51, 53, 57, 59, 61, 62, 63, 65, 71, 75, 77, 79, 81, 83, 93, 95, 100, 104], "machin": [3, 7, 29, 31, 33], "templat": [3, 25, 31, 57, 93, 104], "so": [3, 7, 11, 15, 33, 35, 43, 45, 55, 61, 65, 71, 73, 89, 93, 100, 102, 104], "choic": [3, 37], "Not": [3, 11, 49, 55, 104], "recommend": [3, 11, 15, 25, 31, 43, 59, 73, 83, 100, 104], "some": [3, 7, 9, 11, 13, 25, 33, 35, 43, 47, 49, 59, 61, 79, 81, 83, 89, 93, 100, 104], "relat": [3, 11, 37, 39, 61, 63, 77, 104], "At": [3, 23, 31, 41, 59, 100], "11": [3, 31, 89], "might": [3, 11, 15, 43, 47, 59, 61, 100], "caus": [3, 11, 47, 55, 59, 83, 104], "poetri": 3, "invok": 3, "underli": [3, 11, 15, 53, 85, 104], "compil": 3, "build": [3, 7, 33, 104], "script": [3, 19, 23, 25, 61, 89, 100, 104], "purpos": [3, 11, 33, 59, 89], "lint": 3, "test": [3, 11, 53, 59, 71, 73, 87, 89, 100, 104], "publish": 3, "initi": [3, 7, 15, 33, 35, 41, 43, 47, 53, 55, 59, 65, 77, 79, 81, 85, 95, 104], "configur": [3, 11, 23, 35, 41, 43, 45, 55, 63, 65, 73, 77, 79, 81, 83, 91, 93, 102, 104], "config": 3, "virtualenv": 3, "null": [3, 61], "true": [3, 5, 7, 11, 13, 15, 17, 19, 23, 29, 31, 33, 37, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 69, 73, 75, 77, 83, 87, 89, 93, 95, 98, 100, 102, 104], "devpi": 3, "clone": 3, "branch": 3, "switch": [3, 11, 31, 35, 37, 75, 83, 93, 104], "stai": [3, 7, 104], "master": [3, 11, 53], "convent": 3, "hotfix": [3, 104], "its": [3, 7, 9, 11, 13, 15, 25, 29, 31, 37, 43, 45, 49, 51, 53, 55, 65, 67, 83, 93, 95, 100, 104], "venv": [3, 57], "directori": [3, 5, 7, 11, 15, 31, 33, 37, 41, 43, 49, 51, 65, 73, 83, 93, 95, 104], "against": [3, 37, 41, 55, 59, 95], "devdata": [3, 49, 83, 104], "env": [3, 11, 31, 83, 104], "environ": [3, 11, 15, 17, 19, 25, 35, 53, 59, 67, 77, 79, 81, 83, 87, 98, 100, 104], "variabl": [3, 5, 7, 13, 15, 17, 19, 35, 37, 41, 43, 47, 51, 53, 55, 59, 61, 67, 69, 73, 77, 79, 81, 83, 85, 87, 93, 98, 104], "whl": 3, "dist": 3, "push": [3, 59], "raw": [3, 7, 21, 23, 33, 35, 37, 39, 43, 53, 59, 83, 93, 104], "url": [3, 7, 11, 15, 33, 35, 37, 39, 41, 43, 45, 49, 53, 63, 65, 69, 71, 77, 79, 81, 83, 93, 104], "anoth": [3, 7, 15, 21, 25, 39, 55, 75, 89, 102], "intern": [3, 7, 11, 15, 25, 33, 35, 89, 104], "instanc": [3, 7, 11, 13, 23, 29, 31, 33, 49, 57, 65, 75, 83, 87, 95, 100, 104], "point": [3, 7, 25, 31, 33, 35, 57, 100, 104], "m": [3, 5, 29, 31, 41, 47, 57, 65, 89, 100], "robot_arg": 3, "target_robot_fil": 3, "report": [3, 43, 55, 75, 83, 93], "none": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "outputdir": 3, "output": [3, 7, 11, 17, 19, 21, 33, 37, 43, 47, 49, 51, 53, 61, 83, 85, 95, 100, 104], "logtitl": 3, "target_python_fil": 3, "sure": [3, 11, 43, 45, 53, 73, 89, 100, 102, 104], "guidelin": 3, "It": [3, 7, 11, 13, 21, 25, 31, 33, 39, 43, 47, 49, 55, 57, 59, 61, 63, 65, 75, 83, 85, 89, 93, 95, 104], "like": [3, 5, 7, 11, 15, 31, 35, 37, 43, 47, 53, 55, 61, 65, 83, 89, 93, 95, 98, 100, 104], "ha": [3, 7, 11, 13, 15, 21, 31, 33, 41, 43, 47, 49, 53, 55, 59, 61, 65, 83, 87, 89, 93, 95, 104], "chang": [3, 7, 11, 13, 25, 31, 33, 43, 45, 47, 49, 51, 59, 61, 73, 75, 83, 85, 87, 89, 93, 100, 102, 104], "those": [3, 11, 29, 31, 43, 53, 55, 59, 77, 85, 98], "root": [3, 11, 47, 61, 65, 83, 100], "call": [3, 7, 11, 15, 21, 23, 25, 31, 33, 35, 43, 47, 49, 55, 59, 63, 65, 69, 71, 73, 75, 83, 85, 93, 95, 100, 104], "meta": [3, 15, 17], "built": [3, 15, 49, 51, 53, 55, 59, 78, 83, 104], "docgen": 3, "local": [3, 5, 7, 11, 13, 15, 17, 33, 35, 37, 43, 47, 49, 51, 65, 79, 81, 83, 98, 104], "reflect": [3, 83, 93], "doc": [3, 7, 9, 11, 13, 15, 33, 35, 43, 45, 53, 55, 61, 71, 73, 83, 93, 102, 104], "must": [3, 7, 11, 15, 25, 33, 35, 41, 43, 45, 47, 53, 55, 59, 61, 63, 65, 71, 73, 79, 81, 83, 89, 93, 95, 100, 102, 104], "util": [3, 13, 15, 21, 37, 53, 55, 59, 83, 93, 100], "package_nam": 3, "appropri": [3, 93, 104], "g": [3, 11, 31, 37, 43, 47, 49, 53, 55, 59, 65, 69, 71, 79, 81, 89, 93, 95, 100, 104], "reinstal": 3, "edit": [3, 7, 33], "ad": [3, 5, 7, 11, 13, 23, 25, 33, 43, 47, 53, 55, 59, 61, 63, 65, 83, 87, 89, 100, 104], "repeat": 3, "order": [3, 7, 11, 13, 21, 23, 33, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 71, 73, 87, 89, 93, 95, 100, 104], "reset": [3, 13, 93], "updat": [3, 7, 25, 31, 33, 41, 43, 49, 53, 55, 61, 63, 75, 87, 93, 95, 98, 104], "view": [3, 7, 33, 55, 59, 104], "navig": [3, 7, 11, 25, 104], "localhost": 3, "8000": [3, 23], "live": [3, 71], "webpag": [3, 11], "cv": [3, 104], "py": [3, 7, 11, 57, 83], "test_funct": 3, "inv": 3, "testrobot": 3, "r": [3, 7, 37, 89], "robot_nam": 3, "t": [3, 7, 11, 21, 33, 35, 41, 43, 47, 49, 55, 59, 63, 75, 83, 85, 89, 95, 100, 104], "task_nam": 3, "remot": [3, 7, 11, 33, 35, 51, 53], "rst": [3, 11], "been": [3, 7, 13, 15, 21, 23, 31, 33, 43, 49, 53, 55, 59, 83, 87, 89, 93, 104], "merg": [3, 53, 75, 95, 104], "within": [3, 5, 11, 15, 21, 31, 41, 55, 59, 67, 79, 81, 89, 98, 100, 104], "latest": [3, 11, 13, 15, 19, 53, 59, 69, 95], "pyproject": 3, "toml": 3, "command": [3, 11, 19, 21, 23, 25, 31, 51, 100, 104], "lock": [3, 25, 31, 93, 100, 104], "y": [3, 5, 25, 29, 31, 41, 57, 59, 89, 100, 104], "z": [3, 61], "green": [3, 7, 33], "visual": [3, 100, 104], "studio": 3, "editor": [3, 104], "languag": [3, 15, 17, 55, 61, 71, 98, 104], "gitlen": 3, "less": [3, 41, 55, 71, 98, 104], "prone": 3, "term": [3, 11, 61, 69, 100], "apach": 3, "msgraph": [3, 104], "netsuit": [3, 104], "robotloglisten": [3, 104], "todo": 3, "link": [4, 6, 7, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 33, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 65, 66, 68, 69, 70, 72, 74, 76, 78, 80, 82, 84, 86, 87, 88, 89, 90, 92, 94, 96, 97, 99, 101], "class": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "folder": [5, 7, 11, 33, 41, 43, 49, 65, 73, 93, 104], "With": [5, 7, 11, 15, 25, 33, 35, 43, 55, 59, 61, 83, 87, 104], "curdir": [5, 11, 15, 23, 37, 39, 41, 43, 57, 59, 73, 77, 95, 102], "recurs": [5, 31, 49, 61, 104], "exclud": [5, 93], "list": [5, 7, 11, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 65, 67, 71, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 104], "FOR": [5, 7, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 59, 61, 71, 73, 77, 83, 85, 93, 95, 98, 100], "IN": [5, 7, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 59, 61, 71, 73, 77, 83, 85, 93, 95, 98, 100], "end": [5, 7, 11, 13, 15, 17, 19, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 59, 61, 63, 71, 73, 77, 83, 85, 93, 95, 98, 100, 102, 104], "info": [5, 15, 41, 43, 45, 53, 59, 63, 73, 75, 83, 85, 102, 104], "archive_folder_with_tar": 5, "list_arch": 5, "print": [5, 7, 11, 13, 15, 17, 23, 25, 27, 29, 31, 35, 37, 39, 51, 53, 55, 59, 61, 63, 71, 75, 77, 79, 81, 83, 85, 87, 93, 98, 100, 104], "robot_library_doc_format": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 102], "rest": [5, 7, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 102], "robot_library_scop": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "global": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "add_to_arch": 5, "union": [5, 7, 11, 13, 15, 21, 23, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 73, 77, 83, 85, 87, 91, 93, 95], "str": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "archive_nam": 5, "paramet": [5, 7, 11, 13, 15, 17, 19, 21, 23, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "filenam": [5, 7, 11, 15, 23, 31, 33, 39, 41, 43, 45, 47, 49, 53, 57, 59, 61, 65, 73, 77, 83, 102, 104], "rel": [5, 7, 11, 25, 49, 104], "exist": [5, 11, 15, 23, 29, 31, 41, 43, 45, 47, 49, 53, 55, 57, 61, 63, 71, 73, 79, 81, 83, 85, 89, 91, 93, 95, 102, 104], "structur": [5, 11, 15, 37, 47, 59, 61, 65, 83, 91, 100, 104], "extrafil": 5, "txt": [5, 7, 15, 31, 33, 49], "myfil": [5, 19, 31], "stat": [5, 29, 31], "png": [5, 7, 11, 15, 19, 25, 31, 33, 35, 37, 41, 43, 47, 49, 57, 69, 71, 73, 104], "gz": 5, "filename1": 5, "filename2": 5, "bool": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 65, 69, 73, 77, 83, 87, 93, 95, 98, 102], "fals": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 65, 69, 73, 77, 83, 87, 89, 93, 95, 98, 100, 102, 104], "sub": [5, 37, 41, 43, 61, 93, 104], "pattern": [5, 7, 15, 33, 43, 49, 61, 83], "type": [5, 7, 11, 15, 23, 25, 31, 33, 37, 39, 41, 47, 53, 59, 61, 65, 67, 77, 83, 87, 89, 93, 95, 98, 100, 104], "determin": [5, 7, 55, 87, 95], "By": [5, 7, 11, 15, 29, 31, 33, 37, 45, 47, 53, 55, 59, 85, 87, 95, 104], "onli": [5, 7, 11, 13, 15, 21, 23, 25, 33, 35, 37, 41, 45, 47, 49, 53, 55, 59, 61, 63, 73, 79, 81, 83, 85, 89, 93, 95, 98, 100, 102, 104], "similarli": 5, "dotfil": 5, "archive_folder_with_zip": 5, "compress": 5, "deflat": 5, "bzip2": 5, "lzma": 5, "mydoc": 5, "robottask": 5, "no_dotfil": 5, "packagelzma": 5, "bzip": 5, "extract_arch": 5, "member": [5, 15, 59], "extract": [5, 37, 43, 75], "filepath": [5, 15, 19, 23, 37, 39, 41, 43, 51, 53, 59, 73, 77, 87], "c": [5, 7, 31, 33, 41, 47, 55, 59, 61, 69, 89, 100], "extract_file_from_arch": 5, "background": [5, 7], "get_archive_info": 5, "dict": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 53, 55, 61, 63, 65, 77, 83, 87, 91, 93, 95, 98, 104], "dictionari": [5, 7, 11, 13, 15, 29, 31, 37, 39, 41, 43, 47, 53, 55, 61, 63, 65, 69, 73, 75, 77, 79, 81, 83, 87, 91, 93, 95, 98, 102, 104], "kei": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 51, 53, 55, 59, 61, 63, 71, 75, 77, 78, 83, 87, 89, 93, 95, 98, 100, 104], "filemod": 5, "mtime": 5, "attribut": [5, 11, 15, 31, 41, 43, 85, 87, 89, 93, 100, 104], "last": [5, 11, 13, 47, 53, 55, 83, 95, 100], "modif": [5, 49], "d": [5, 23, 29, 31, 41, 47, 57, 89], "h": [5, 29, 31, 41, 47, 55, 57], "archiveinfo": 5, "while": [7, 11, 33, 53, 55, 83, 93, 104], "allow": [7, 15, 31, 33, 47, 49, 53, 55, 59, 61, 63, 79, 81, 83, 85, 93, 95, 104], "capabl": [7, 11, 41, 104], "other": [7, 11, 15, 31, 33, 35, 37, 41, 45, 53, 55, 61, 65, 73, 77, 79, 81, 83, 93, 95, 100, 102, 104], "hi": 7, "previou": [7, 11, 13, 25, 33, 53, 59, 63, 73, 83, 95, 100, 104], "desir": [7, 65, 71, 104], "could": [7, 19, 33, 53, 69, 87, 95], "finish": [7, 33, 41, 43, 63, 89], "dynam": [7, 33, 95, 104], "person": [7, 33, 61, 93], "content": [7, 11, 15, 19, 23, 25, 27, 31, 33, 37, 41, 43, 47, 49, 53, 59, 65, 79, 81, 83, 87, 91, 95, 98, 104], "workflow": [7, 33], "compos": [7, 33], "fly": [7, 33], "state": [7, 25, 33, 53, 59, 61, 77, 83, 100, 104], "relev": [7, 33, 45, 59, 65, 73, 102, 104], "either": [7, 8, 11, 15, 17, 21, 25, 31, 33, 41, 45, 47, 53, 55, 61, 65, 83, 87, 89, 93, 95, 100, 104], "block": [7, 15, 33, 45, 73, 102, 104], "continu": [7, 31, 33, 49, 71, 104], "freeli": [7, 33], "field": [7, 15, 25, 31, 33, 35, 37, 39, 43, 55, 59, 61, 65, 73, 75, 87, 89, 93, 95, 104], "successfulli": [7, 11, 33, 104], "submit": [7, 11, 15, 33, 71, 104], "enter": [7, 25, 31, 33, 59, 89, 100], "abort": [7, 33, 51], "close": [7, 11, 23, 31, 33, 45, 47, 51, 53, 55, 59, 67, 73, 85, 87, 100, 102, 104], "forcefulli": [7, 33], "valu": [7, 11, 13, 15, 19, 21, 23, 31, 33, 35, 37, 41, 43, 45, 47, 51, 53, 55, 57, 59, 61, 63, 65, 67, 71, 75, 77, 78, 79, 81, 83, 87, 89, 93, 95, 100, 104], "uniqu": [7, 11, 15, 31, 33, 55, 57, 87, 93, 95, 104], "button": [7, 11, 25, 31, 33, 59, 89, 100, 104], "dotdict": [7, 33, 104], "string": [7, 11, 13, 15, 21, 23, 29, 31, 33, 35, 41, 43, 47, 49, 51, 53, 55, 59, 61, 63, 65, 71, 75, 77, 83, 87, 89, 91, 93, 95, 98, 100, 102, 104], "checkbox": [7, 11, 33, 89, 93, 104], "boolean": [7, 11, 15, 23, 33, 41, 43, 47, 53, 55, 65, 95, 104], "won": [7, 11, 43, 55, 59, 87, 100, 104], "layout": [7, 104], "bottom": [7, 25, 31, 37, 43, 47, 57, 100, 104], "bit": [7, 21, 25, 43, 59, 100], "margin": [7, 104], "around": [7, 11, 23, 25, 57, 61, 104], "spacious": 7, "overrid": [7, 59, 85, 87, 95, 104], "smaller": [7, 57, 95], "combin": [7, 15, 41, 55, 57, 61, 89, 95, 104], "stack": [7, 104], "posit": [7, 11, 25, 37, 43, 59, 71, 89, 95, 100, 104], "center": [7, 31, 33, 47, 59, 100, 104], "topleft": [7, 31], "bottomright": 7, "coordin": [7, 25, 31, 37, 57, 59, 100, 104], "tupl": [7, 11, 15, 23, 35, 37, 43, 45, 51, 53, 55, 57, 77, 83, 93, 95], "bse": 7, "absolut": [7, 25, 43, 49, 59, 77, 79, 81, 83, 104], "anywher": 7, "color": [7, 11, 33, 47, 57], "pad": [7, 89, 100], "navbar": [7, 104], "bar": [7, 11, 41, 43, 53, 63, 104], "Its": 7, "clear": [7, 27, 33, 47, 55, 59, 83, 95, 100, 104], "success": [7, 11, 23, 33, 41, 43, 51, 57, 69, 73, 87, 89], "icon": [7, 33, 91, 104], "titl": [7, 11, 31, 33, 59, 69, 89, 93, 104], "failur": [7, 11, 33, 51, 53, 55, 83, 85, 104], "enterpris": [7, 33], "label": [7, 15, 25, 33, 39, 43, 55, 89, 104], "troubleshoot": [7, 33, 43, 104], "real": [7, 33, 61, 98], "chonker": [7, 33], "fat": [7, 33], "cat": [7, 33], "jpeg": [7, 15, 33, 37, 39], "height": [7, 17, 25, 33, 59, 100, 104], "1024": [7, 33, 95], "width": [7, 11, 17, 25, 33, 45, 47, 57, 59, 93, 100], "confirm": [7, 11, 33, 43], "warn": [7, 23, 31, 33, 43, 53, 55, 104], "delet": [7, 15, 25, 33, 41, 43, 47, 49, 51, 53, 61, 83, 87, 100, 104], "No": [7, 31, 33, 47, 57, 61], "ye": [7, 33], "IF": [7, 13, 23, 33, 41, 43, 49, 53, 59, 73, 77, 93, 104], "form": [7, 13, 15, 19, 33, 47, 53, 63, 65, 75, 83, 104], "send": [7, 15, 31, 33, 41, 43, 51, 53, 55, 59, 73, 77, 83, 89, 91, 93, 98, 100, 104], "feedback": [7, 11, 33, 55, 104], "address": [7, 11, 15, 23, 33, 35, 37, 41, 43, 51, 55, 59, 61, 63, 73, 83, 95, 104], "placehold": [7, 33, 104], "maximum_row": [7, 104], "def": [7, 23, 25, 29, 31, 43, 47, 49, 57, 63, 73, 75, 77, 79, 81, 83, 85, 100], "success_dialog": 7, "add_icon": [7, 33], "add_head": [7, 33], "add_fil": [7, 33], "run_dialog": [7, 33, 104], "failure_dialog": 7, "add_text": [7, 33], "add_link": [7, 33], "large_dialog": 7, "add_imag": [7, 33], "confirmation_dialog": 7, "add_submit_button": [7, 33], "delete_us": 7, "input_from_dialog": 7, "add_text_input": [7, 33], "send_feedback_messag": 7, "robot_auto_keyword": [7, 13, 33, 35, 55, 59, 77, 83, 93], "add_button": 7, "callabl": [7, 83], "arg": [7, 11, 19, 25, 35, 45, 49, 53, 65, 75, 79, 81, 83, 89, 95, 100], "locat": [7, 11, 15, 23, 25, 31, 33, 35, 43, 47, 57, 59, 65, 67, 89, 93, 98, 100, 104], "verticalloc": 7, "left": [7, 17, 25, 31, 37, 47, 57, 59, 65, 100, 104], "kwarg": [7, 11, 15, 19, 25, 35, 45, 53, 63, 69, 75, 77, 79, 81, 83, 87, 89, 93, 100, 104], "callback": [7, 59, 104], "press": [7, 11, 25, 31, 33, 59, 89, 100, 104], "pass": [7, 15, 23, 25, 35, 37, 41, 43, 45, 49, 51, 53, 55, 59, 61, 63, 65, 69, 75, 85, 87, 93, 95, 100, 104], "app": [7, 11, 19, 31, 41, 43, 45, 55, 59, 63, 65, 73, 87, 98, 100, 102, 104], "second": [7, 11, 13, 15, 29, 31, 33, 41, 43, 47, 49, 51, 53, 55, 59, 61, 73, 89, 95], "let": [7, 61, 69], "infinit": [7, 104], "loop": [7, 11, 33, 59, 85, 104], "first_view": 7, "second_view": 7, "add_checkbox": [7, 33], "indic": [7, 15, 33, 41, 55, 61, 65, 100, 104], "select": [7, 11, 15, 23, 31, 33, 35, 43, 49, 57, 59, 61, 83, 87, 89, 93, 95, 100, 104], "shown": [7, 11, 25, 33, 55, 85, 91, 100], "next": [7, 13, 15, 33, 47, 55, 77, 83, 100, 104], "enabl": [7, 9, 11, 15, 19, 25, 31, 33, 37, 43, 45, 47, 53, 59, 65, 73, 83, 89, 93, 102, 104], "trigger": [7, 33, 77, 83, 104], "select_checkbox": [7, 89], "enable_vault": 7, "add_date_input": [7, 33], "yyyi": [7, 13, 33, 41, 87], "mm": [7, 13, 33, 41, 47, 87], "dd": [7, 13, 33, 41, 47, 87], "otherwis": [7, 11, 13, 15, 23, 29, 31, 33, 41, 43, 47, 83, 100, 104], "birthdat": [7, 33], "1993": [7, 33], "04": [7, 33], "26": [7, 13, 33, 89], "consol": [7, 13, 33, 37, 39, 43, 53, 61, 83, 87, 100], "year": [7, 13, 33, 41, 47], "select_birthd": 7, "add_drop_down": [7, 33], "drop": [7, 23, 31, 33, 104], "menu": [7, 25, 31, 33, 59, 87, 89, 100], "custom": [7, 11, 13, 25, 33, 37, 41, 45, 47, 53, 73, 83, 87, 91, 95, 102, 104], "user_typ": [7, 33], "admin": [7, 33], "select_user_type_from_drop_down": 7, "open_file_button": 7, "generate_order_fil": 7, "add_file_input": [7, 33], "file_typ": [7, 33], "nativ": [7, 33, 55, 104], "up": [7, 11, 15, 19, 25, 33, 35, 49, 53, 55, 57, 89, 95, 100, 104], "home": [7, 25, 33, 43, 95, 100, 104], "restrict": [7, 23, 33, 73, 100, 104], "svg": [7, 69], "limit": [7, 11, 15, 23, 33, 43, 57, 59, 75, 77, 83, 93, 104], "xl": [7, 33, 45, 47, 49, 53, 83, 104], "xlsx": [7, 21, 33, 45, 47, 49, 67, 73, 77, 83, 95, 104], "src": [7, 31, 33, 41, 43], "temp": [7, 33, 49, 65], "everi": [7, 11, 33, 37, 95, 104], "multiple_file_select": 7, "insert": [7, 11, 15, 23, 25, 33, 47, 87, 89, 93, 100, 104], "itself": [7, 11, 33, 37, 55, 100], "unix": [7, 33, 55, 93, 95], "style": [7, 11, 33, 47, 55, 71, 104], "express": [7, 11, 15, 31, 33, 59, 104], "everyth": [7, 33, 49], "singl": [7, 11, 13, 15, 23, 33, 37, 41, 43, 47, 49, 55, 61, 73, 77, 83, 89, 93, 95, 104], "charact": [7, 11, 15, 23, 31, 33, 43, 49, 61, 63, 71, 95, 98, 100, 104], "seq": [7, 33], "escap": [7, 33, 89, 100], "wrap": [7, 33, 35, 63, 64, 65, 70, 75, 89, 104], "squar": [7, 33, 71], "bracket": [7, 33, 89, 100], "between": [7, 13, 15, 31, 33, 35, 41, 53, 55, 57, 61, 71, 95, 100, 104], "order0": [7, 33], "order9": [7, 33], "open_multiple_files_button": 7, "add_flet_icon": 7, "int": [7, 11, 13, 15, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 55, 59, 61, 63, 67, 69, 71, 77, 83, 87, 93, 95, 98, 100, 104], "galleri": [7, 104], "flet": [7, 104], "browser": [7, 33, 49, 85, 100, 104], "lower_cas": 7, "blob": [7, 11], "035b00104f782498d084c2fd7ee96132a542ab7f": 7, "sdk": [7, 31, 93, 100], "flet_cor": 7, "l37": 7, "argb": 7, "rgb": [7, 57], "ffxxyyzz": 7, "xxyyzz": 7, "integ": [7, 13, 15, 23, 51, 53, 55, 59, 77, 93, 95, 104], "icon_nam": 7, "check_circle_round": 7, "ff00ff": 7, "48": [7, 33, 47, 89], "add_custom_icon": 7, "medium": [7, 33], "small": [7, 33], "add_dialog_head": 7, "add_hidden_input": [7, 33], "hidden": [7, 33, 93], "feild": [7, 33], "visibl": [7, 11, 25, 31, 33, 37, 45, 59, 73, 85, 102, 104], "alwai": [7, 31, 33, 47, 53, 59, 83, 95, 104], "static": [7, 33, 37, 53], "togeth": [7, 11, 33, 41, 49, 53, 55, 87, 95, 104], "alreadi": [7, 11, 31, 33, 35, 43, 47, 49, 53, 55, 63, 69, 89, 104], "known": [7, 23, 33, 65, 95, 104], "ensur": [7, 9, 33, 41, 43, 45, 59, 63, 73, 102, 104], "user_id": [7, 33, 55], "get_user_inform": 7, "enter_user_inform": 7, "variant": [7, 33], "short": [7, 61], "statu": [7, 11, 15, 29, 31, 33, 37, 43, 53, 77, 83, 85, 87, 95, 98, 104], "being": [7, 11, 15, 33, 35, 47, 55, 65, 104], "present": [7, 11, 33, 51, 55, 59, 65, 89, 104], "mark": [7, 33, 43, 47, 61, 73, 75, 77, 83, 95, 100, 104], "orang": [7, 33], "triangl": [7, 33], "red": [7, 33, 47, 57], "pixel": [7, 17, 25, 33, 57, 93], "64": [7, 33, 59, 104], "url_or_path": [7, 33], "inlin": [7, 15, 33, 41, 43, 104], "resiz": [7, 33, 47, 104], "fit": [7, 33], "explicitli": [7, 8, 11, 23, 33, 95, 104], "aspect": [7, 33], "ratio": [7, 33], "compani": [7, 11, 31, 33, 55, 83], "logo": [7, 25, 33, 69], "display_imag": 7, "clickabl": [7, 11, 33, 104], "occur": [7, 33], "add_troubleshoot_link": 7, "add_loading_bar": 7, "bar_height": 7, "tooltip": 7, "float": [7, 25, 31, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 73, 87, 89], "load": [7, 11, 21, 23, 47, 55, 61, 83, 95, 104], "stroke": 7, "black12": 7, "red500": 7, "mous": [7, 25, 31, 59, 100, 104], "hover": 7, "complet": [7, 11, 15, 33, 35, 47, 49, 51, 53, 55, 63, 65, 71, 75, 100, 104], "indetermin": 7, "progress": [7, 33, 51], "add_loading_spinn": 7, "stroke_width": 7, "spinner": [7, 104], "spin": 7, "endlessi": 7, "add_next_ui_button": 7, "lead": [7, 100, 104], "ui": [7, 25, 45, 55, 57, 58, 59, 73, 93, 100, 102, 104], "retriev": [7, 15, 35, 37, 53, 55, 63, 65, 83, 87, 89, 93, 100, 104], "advanc": [7, 25, 53, 55, 93, 104], "username_1": 7, "show": [7, 33, 41, 45, 57, 59, 61, 73, 77, 102, 104], "detail": [7, 11, 15, 35, 37, 41, 55, 65, 83, 87, 89, 100, 104], "user_data": 7, "phone_numb": 7, "main_form": 7, "customer_detail": 7, "retrieve_user_data": 7, "add_password_input": [7, 33], "hide": [7, 33, 47, 104], "look": [7, 33, 37, 43, 47, 53, 55, 95, 100], "plachold": [7, 33], "change_password": 7, "change_user_password": 7, "add_radio_button": [7, 33], "radio": [7, 11, 33, 89], "select_user_type_from_radio_button": 7, "add_slid": 7, "slider_min": 7, "slider_max": 7, "thumb_text": 7, "decim": [7, 47, 100, 104], "slider": [7, 104], "maximum": [7, 11, 15, 43, 53, 55, 57, 59, 61, 71, 93, 98, 104], "thumb_label": 7, "slide": 7, "thumb": [7, 69], "amount": [7, 11, 33, 47, 51, 83, 95, 104], "specifi": [7, 11, 15, 35, 43, 47, 53, 55, 65, 67, 73, 83, 89, 93, 95, 100, 104], "round": [7, 55, 104], "min": [7, 11, 89], "max": [7, 15, 93, 104], "mani": [7, 11, 15, 29, 31, 33, 41, 53, 55, 61, 79, 81, 93, 95, 104], "percentag": [7, 47], "create_percentage_slid": 7, "prefer": [7, 11, 25, 33, 55, 83, 98, 104], "highlight": [7, 11, 31, 33, 59, 104], "accent": [7, 33], "delete_user_warn": 7, "user_01": 7, "f": [7, 13, 17, 25, 27, 29, 31, 37, 39, 51, 55, 63, 75, 77, 79, 81, 87, 89, 93], "paragraph": [7, 33], "larger": [7, 33, 49, 57, 95, 104], "bodi": [7, 15, 33, 41, 43, 53, 55, 73, 83, 104], "show_error_dialog": 7, "minimum_row": [7, 104], "wasn": [7, 104], "longer": [7, 33, 53, 59, 104], "scrollbar": [7, 89], "appear": [7, 11, 31, 71, 89, 104], "fill": [7, 33, 47, 75], "assign": [7, 95], "doesn": [7, 11, 33, 41, 43, 49, 55, 63, 83, 104], "complic": [7, 61], "sign": [7, 37], "dot": [7, 11, 15, 55, 65], "regex": [7, 61, 100, 104], "And": [7, 31, 41, 43, 53, 85, 100, 104], "regexp": [7, 31, 75], "invalid": [7, 104], "validate_email": 7, "open_dialog": [7, 31], "ask_us": [7, 104], "timeout": [7, 11, 15, 31, 33, 41, 43, 49, 51, 53, 59, 73, 104], "180": [7, 33], "until": [7, 11, 15, 25, 31, 33, 35, 49, 59, 83, 98, 100, 104], "wait": [7, 11, 15, 25, 31, 33, 41, 43, 49, 53, 59, 73, 89, 104], "ask_user_dialog": 7, "clear_dialog": 7, "close_column": 7, "previous": [7, 15, 21, 33, 35, 41, 43, 47, 53, 63, 83, 87, 100, 104], "rais": [7, 11, 31, 33, 41, 45, 47, 49, 51, 53, 57, 59, 61, 63, 67, 83, 87, 95, 104], "layouterror": 7, "recent": [7, 13, 98, 104], "close_contain": 7, "close_navbar": 7, "close_row": 7, "close_stack": 7, "open_column": 7, "doubl": [7, 25, 31, 43, 89, 100, 104], "double_column_layout": 7, "open_row": 7, "open_contain": 7, "background_color": 7, "much": [7, 37, 59, 104], "bgcolor": 7, "place": [7, 21, 55, 59, 95, 104], "center___": 7, "___center": 7, "20": [7, 15, 25, 47, 61, 67, 85, 89, 95], "blue500": 7, "sampl": [7, 49, 71, 95], "padded_element_with_background": 7, "open_navbar": 7, "go": [7, 11, 31, 41, 43, 83, 85, 104], "go_to_start_menu": 7, "assistant_navbar": 7, "side": [7, 11, 25, 59, 100, 104], "side_by_side_el": 7, "open_stack": 7, "overlap": [7, 47], "360": 7, "topright": 7, "right": [7, 25, 31, 37, 47, 57, 59, 63, 89, 100, 104], "absolutely_positioned_el": 7, "refresh_dialog": 7, "typing_extens": 7, "liter": [7, 104], "480": [7, 33], "on_top": [7, 33], "windowloc": [7, 104], "set_titl": 7, "deprec": [8, 11, 27, 31, 33, 41, 53, 55, 83, 104], "alia": [8, 11, 25, 47, 49, 53, 104], "playwright": [8, 104], "upstream": [9, 89], "bundl": [9, 53], "avoid": [9, 37, 65, 83, 100], "conflict": 9, "maxim": [9, 11, 89, 104], "practic": 9, "13": [9, 13, 15, 55, 100], "seleniumlibrari": [10, 11, 85, 104], "instal": [11, 15, 19, 25, 53, 57, 100, 104], "visit": 11, "webdriv": [11, 104], "seleniumhq": 11, "readm": 11, "driver": [11, 104], "chapter": 11, "binari": [11, 49, 51, 53, 104], "toc": 11, "typic": [11, 15, 47, 63], "most": [11, 47, 59, 83, 85, 93, 98, 100], "often": [11, 25, 31], "webel": [11, 104], "strategi": [11, 100, 104], "css": 11, "selector": [11, 25, 104], "implicit": [11, 23, 53, 104], "sens": [11, 104], "context": [11, 13, 15, 89, 93], "click": [11, 25, 31, 59, 89, 100, 104], "href": 11, "normal": [11, 15, 31, 49, 61, 79, 81, 83, 85, 100, 104], "accident": [11, 104], "recogn": [11, 37], "explicit": [11, 37, 63, 89], "foo": [11, 53], "former": 11, "latter": [11, 104], "ident": [11, 15], "robotframeworkuserguid": 11, "space": [11, 25, 31, 41, 63, 100, 104], "ignor": [11, 49, 55, 83, 89, 93, 104], "equival": [11, 25], "tabl": [11, 15, 23, 39, 41, 47, 59, 65, 67, 77, 87, 89, 93, 104], "regist": [11, 41, 55, 65, 85], "tag": [11, 15, 37, 43, 104], "div": 11, "dom": [11, 104], "exact": [11, 15, 29, 31], "partial": [11, 31, 55, 85], "he": [11, 25], "ex": [11, 25, 31, 41, 100], "sizzl": 11, "my_id": 11, "jqueri": 11, "behavior": [11, 53, 65, 71, 104], "necessari": [11, 23, 43, 63, 93], "pro": 11, "con": 11, "simpli": [11, 35], "fast": [11, 31], "stabl": [11, 37], "solut": 11, "h1": [11, 43], "easi": [11, 59], "complex": 11, "approach": [11, 100], "power": [11, 61], "downsid": 11, "prior": [11, 35, 65, 83, 100], "conveni": [11, 104], "construct": [11, 13], "parenthesi": [11, 61, 100, 104], "front": [11, 89], "chain": [11, 15, 25, 35, 100, 104], "two": [11, 15, 17, 33, 41, 47, 55, 77, 79, 81, 87, 95, 104], "greater": [11, 53, 55, 98, 104], "mix": [11, 98], "Or": [11, 87, 93], "although": [11, 104], "abei": 11, "whole": [11, 41, 100, 104], "locator_list": 11, "div_id": 11, "elem": 11, "lookup": [11, 55, 104], "constraint": 11, "getelementbyid": 11, "reimplement": 11, "basic": [11, 25, 41, 53, 59, 61, 65, 104], "refer": [11, 17, 23, 25, 37, 49, 53, 57, 59, 61, 65, 75, 95, 100, 104], "conceptu": 11, "talk": 11, "03_webdriv": 11, "jsp": 11, "independ": 11, "usual": [11, 31, 35, 41, 43, 63, 83], "cooki": [11, 25, 53], "session": [11, 15, 45, 53, 63, 65, 73, 89, 102, 104], "profil": [11, 98, 104], "site": [11, 35, 57, 65, 98], "children": [11, 59, 104], "synonym": 11, "One": [11, 33, 55, 95], "mai": [11, 13, 15, 25, 55, 65, 79, 81, 83, 87, 93], "tab": [11, 25, 89, 95, 100], "pop": [11, 43, 95], "belong": [11, 15, 35, 37, 77], "blank": [11, 47, 55], "demonstr": [11, 89], "browsera": 11, "robocon": 11, "io": [11, 13, 53, 69, 89], "browserb": 11, "third": [11, 47, 95], "goe": [11, 69, 83], "currectli": 11, "delai": [11, 31, 53, 59, 89], "slow": [11, 31], "speed": [11, 31, 57, 59, 89, 93, 104], "long": [11, 23, 31, 41, 43, 55, 63], "event": [11, 15, 25], "alert": [11, 45, 73, 102, 104], "addition": [11, 37], "async": 11, "asynchron": [11, 15, 75, 104], "implicit_wait": 11, "04_webdriver_advanc": 11, "page_load_timeout": 11, "42": [11, 89], "30": [11, 13, 25, 31, 59, 89, 93], "handi": 11, "own": [11, 17, 43, 49], "captur": [11, 57, 85, 104], "run_on_failur": [11, 85, 104], "resourc": [11, 15, 23, 53, 65, 78, 85], "disabl": [11, 33, 41, 53, 83, 85, 89, 104], "noth": [11, 85, 89], "perform": [11, 23, 43, 53, 55, 59, 61, 87, 89, 93, 104], "convers": [11, 71, 104], "hint": [11, 104], "did": 11, "covert": 11, "eventfiringwebdriv": 11, "webdriver_support": 11, "event_firing_webdriv": 11, "extend": [11, 35, 53, 55, 61, 67, 85, 87, 93, 98, 104], "further": [11, 25, 31, 33, 35, 61, 63, 100, 104], "thread": 11, "safe": [11, 23], "mainli": [11, 63, 104], "due": [11, 15, 85, 104], "wiki": [11, 23, 51], "frequent": 11, "q": 11, "plugin": [11, 104], "hack": 11, "prevent": [11, 83, 104], "auto_clos": [11, 104], "evalu": [11, 15, 39, 41, 47, 55, 59, 104], "available_opt": 11, "chrome": [11, 104], "chromiumedg": 11, "edg": [11, 104], "firefox": [11, 104], "firefoxopt": 11, "ie": [11, 43, 73, 85, 100, 104], "safari": 11, "available_servic": 11, "chromedriv": [11, 104], "msedgedriv": 11, "geckodriv": [11, 104], "iedriverserv": 11, "safaridriv": 11, "browser_nam": 11, "ff": 11, "gc": 11, "googlechrom": 11, "headlesschrom": 11, "headless_chrom": 11, "headlessfirefox": 11, "headless_firefox": 11, "internetexplor": 11, "chromium_brows": 11, "msedg": 11, "robot_library_vers": 11, "supported_brows": 11, "add_library_compon": [11, 19, 25, 75, 100], "library_compon": [11, 19, 25, 75, 100], "attach_chrome_brows": 11, "port": [11, 23, 43, 51, 69, 104], "digit": [11, 55], "effect": [11, 41, 63], "That": [11, 53], "9222": 11, "clear_all_highlight": 11, "made": [11, 29, 31, 55, 83], "click_button_when_vis": 11, "shadowroot": 11, "onc": [11, 31, 35, 47, 55, 93, 95, 104], "becom": [11, 49, 95], "ctrl": [11, 25, 31, 89, 100], "mybutton": 11, "click_element_if_vis": 11, "click_element_when_click": 11, "timedelta": 11, "readi": [11, 104], "orient": [11, 49, 104], "workaround": [11, 23, 59], "tri": [11, 13, 15, 33, 85, 104], "fallback": [11, 69, 100, 104], "mechan": [11, 53, 104], "durat": [11, 15], "give": [11, 13, 15, 41, 43, 47, 53, 59, 64, 65, 70, 85, 87, 104], "click_element_when_vis": 11, "action_chain": 11, "actionchain": 11, "queue": [11, 15, 83], "alt": [11, 25, 31, 43, 89, 100], "does_alert_contain": 11, "valueerror": [11, 31, 45, 57, 61, 67, 95, 104], "does_alert_not_contain": 11, "unexpect": [11, 104], "does_element_contain": 11, "ignore_cas": [11, 104], "insensit": [11, 25, 104], "spec": 11, "does_frame_contain": 11, "frame": [11, 59], "myfram": 11, "does_location_contain": 11, "does_page_contain": 11, "gmail": [11, 43, 69, 73, 104], "does_page_contain_button": 11, "does_page_contain_checkbox": 11, "random": 11, "does_page_contain_el": 11, "count": [11, 23, 41, 43, 47, 59, 67, 95, 98, 104], "textarea": [11, 59], "does_page_contain_imag": 11, "does_page_contain_link": 11, "does_page_contain_list": 11, "does_page_contain_radio_button": 11, "male": 11, "does_page_contain_textfield": 11, "textfield": [11, 89], "does_table_cell_contain": 11, "begin": [11, 15, 47, 93, 100, 104], "does_table_column_contain": 11, "nokia": [11, 15, 55, 87], "does_table_contain": 11, "februari": 11, "does_table_footer_contain": 11, "footer": [11, 102], "sum": 11, "does_table_header_contain": 11, "header": [11, 37, 39, 43, 47, 53, 77, 95, 102, 104], "month": [11, 13, 47], "does_table_row_contain": 11, "does_textarea_contain": 11, "sincer": 11, "does_textfield_contain": 11, "lname": [11, 77], "properti": [11, 13, 25, 29, 35, 45, 59, 63, 65, 73, 77, 79, 81, 83, 87, 93, 100, 102, 104], "noopenbrows": 11, "execute_cdp": 11, "chromium": [11, 104], "devtool": [11, 104], "chromedevtool": 11, "headless": [11, 104], "param": [11, 15, 23, 53, 55, 104], "userag": 11, "83": [11, 89], "4103": 11, "53": 11, "cdp": [11, 104], "network": 11, "setuseragentoverrid": 11, "failure_occur": 11, "overwrit": [11, 31, 41, 43, 47, 49, 53, 73, 77, 79, 81, 95, 104], "find_el": [11, 31], "parent": [11, 41, 49, 59, 61, 100, 104], "webelememt": 11, "child": [11, 55, 61, 83, 100], "elementnotfound": [11, 59], "mpty": 11, "get_browser_cap": 11, "cap": [11, 25, 100], "get_element_statu": 11, "focus": [11, 59, 100], "get_keyword_argu": [11, 19, 25, 75, 100], "get_keyword_document": [11, 19, 25, 75, 100], "get_keyword_nam": [11, 19, 25, 75, 100], "get_keyword_sourc": [11, 19, 25, 75, 100], "keyword_nam": [11, 19, 25, 75, 100], "get_keyword_tag": [11, 19, 25, 75, 100], "get_keyword_typ": [11, 19, 25, 75, 100], "get_testability_statu": 11, "seleniumtest": [11, 104], "get_webel": 11, "shadow": [11, 49, 104], "mozilla": 11, "en": [11, 13, 15, 43, 45, 51, 53, 69, 73], "u": [11, 15, 33, 45, 73, 100], "highlight_el": [11, 59], "2px": 11, "blue": 11, "outlin": [11, 31], "h2": 11, "input_text_when_element_is_vis": 11, "freetext": 11, "my": [11, 23, 31, 41, 45, 49, 59, 69, 79, 81, 87, 93], "is_alert_pres": 11, "box": [11, 37, 59, 75, 104], "dismiss": [11, 45, 73, 102], "leav": [11, 71, 83], "is_checkbox_select": 11, "tax": 11, "paid": 11, "is_chromium": 11, "is_element_attribute_equal_to": 11, "equal": [11, 21, 31, 41, 53, 55, 59, 61, 95, 104], "is_element_dis": 11, "missing_ok": [11, 49, 83, 104], "is_element_en": [11, 31], "field1": 11, "is_element_focus": 11, "is_element_text": 11, "john": [11, 47, 61, 77, 95], "is_element_vis": [11, 31], "is_list_select": 11, "car": 11, "ford": 11, "is_loc": 11, "is_radio_button_select": 11, "group_nam": 11, "group": [11, 55, 83, 95, 100], "gender": [11, 17], "is_radio_button_set_to": 11, "femal": 11, "is_textarea_valu": 11, "is_textfield_valu": 11, "lastnam": [11, 23, 43, 55], "is_titl": 11, "normalize_opt": 11, "argopt": 11, "use_profil": [11, 104], "browser_select": 11, "profile_nam": 11, "profile_path": 11, "proxi": [11, 53, 104], "user_ag": [11, 104], "download": [11, 15, 41, 51, 53, 65, 77, 83, 93, 104], "attempt": [11, 49, 51, 53, 57, 65, 93, 95, 104], "devic": [11, 15, 63], "forc": [11, 55, 59, 83, 93, 104], "agent": [11, 77, 79, 81], "overridden": [11, 15, 47], "creation": [11, 49, 104], "chromeopt": 11, "add_argu": 11, "incognito": 11, "set_cap": 11, "acceptinsecurecert": 11, "randomli": 11, "pick": [11, 35, 59], "plan": [11, 43], "parallel": 11, "internet": 11, "explor": [11, 31, 59, 100], "mode": [11, 21, 23, 29, 31, 33, 49, 51, 53, 55, 63, 100, 104], "opera": 11, "headlessbrows": 11, "dir": [11, 49, 53], "8888": 11, "darwin": 11, "comma": [11, 43, 61, 83, 93], "pars": [11, 15, 21, 31, 55, 75, 83, 93, 104], "launch": [11, 31, 104], "stop": [11, 25, 95, 100, 104], "except": [11, 33, 43, 49, 53, 59, 83, 85, 95, 104], "were": [11, 17, 31, 33, 41, 47, 61, 65, 73, 100], "slightli": 11, "faster": [11, 57, 104], "benefit": [11, 61, 104], "drawback": 11, "unless": [11, 47, 55, 83, 93], "detect": [11, 15, 17, 23, 35, 37, 43, 104], "rpa_headless_mod": [11, 104], "var": [11, 27, 83, 104], "somewher": 11, "outsid": [11, 53], "respect": [11, 13, 43], "mind": [11, 35, 59, 75, 104], "observ": [11, 100], "user_data_dir": 11, "pair": [11, 15, 47, 53, 57, 83, 104], "open_chrome_brows": 11, "full": [11, 39, 41, 43, 49, 65, 83, 85, 89, 93, 104], "open_headless_chrome_brows": 11, "idx": [11, 85], "open_user_brows": 11, "te": [11, 89], "print_to_pdf": 11, "output_path": [11, 43, 75], "attent": 11, "tot": 11, "printtopdf": 11, "save": [11, 15, 31, 37, 41, 43, 45, 47, 53, 57, 59, 61, 65, 67, 73, 75, 83, 93, 102, 104], "landscap": 11, "displayheaderfoot": 11, "printbackground": 11, "prefercsspages": 11, "register_driv": 11, "webdrivercach": 11, "run_keyword": [11, 19, 25, 75, 100], "timestamp": [11, 55, 57, 93], "img": [11, 41, 43], "NO": [11, 15, 17, 19], "subdir": [11, 31, 49], "loc": 11, "set_download_directori": 11, "download_pdf": 11, "disk": [11, 37, 43, 83, 104], "non": [11, 47, 49, 59, 83, 95, 100, 104], "preview": [11, 37, 104], "viewer": 11, "output_dir": [11, 43, 47, 57, 75, 93, 95], "cdn": 11, "legal": 11, "eula": 11, "v1": 11, "set_element_attribut": 11, "wait_and_click_button": 11, "especi": [13, 41, 100, 104], "busi": [13, 83, 104], "dai": [13, 47, 61, 93, 104], "holidai": [13, 104], "pendulum": 13, "mondai": 13, "fridai": 13, "weekdai": 13, "sundai": 13, "saturdai": 13, "countri": [13, 55, 100], "consider": 13, "english": [13, 104], "add_custom_holidai": 13, "datetim": [13, 29, 31, 55], "calcul": [13, 15, 21, 31, 37, 61, 100, 104], "custom_holidai": 13, "03": 13, "08": 13, "09": 13, "more_holidai": 13, "compare_tim": 13, "time1": 13, "time2": 13, "compar": [13, 47, 61, 95, 104], "comparison": [13, 33, 95, 104], "02": [13, 41, 53], "47": [13, 89], "create_tim": 13, "date_str": 13, "date_format_in": 13, "timezon": 13, "date_format_out": 13, "eustac": 13, "token": [13, 15, 19, 21, 35, 41, 43, 55, 61, 63, 65, 69, 71, 79, 81, 87, 93, 98, 104], "19": [13, 35, 37, 39, 63, 89], "mmm": [13, 47], "yy": [13, 47], "utc": [13, 41], "first_business_day_of_the_month": 13, "first_dai": 13, "2024": 13, "06": [13, 61], "01": [13, 15, 41, 61], "get_iso_calendar": 13, "iso": [13, 104], "week": 13, "iso_c": 13, "iso_year": 13, "iso_week": 13, "iso_weekdai": 13, "is_the_date_business_dai": 13, "rang": [13, 15, 47, 55, 85, 95, 104], "32": [13, 43, 59, 61, 63, 89, 100], "is_business_dai": 13, "fi": [13, 53, 69], "els": [13, 21, 31, 41, 53, 59, 73, 87, 104], "relax": 13, "is_the_date_holidai": 13, "date_in": 13, "is_holidai": 13, "2022": [13, 41, 55, 59], "12": [13, 41, 59, 61, 73, 89, 95], "last_business_day_of_the_month": 13, "last_dai": 13, "29": [13, 89], "reset_custom_holidai": 13, "empti": [13, 31, 41, 43, 47, 49, 59, 65, 71, 73, 77, 83, 89, 95, 104], "return_holidai": 13, "holiday_nam": 13, "return_next_business_dai": 13, "return_format": [13, 41], "origin": [13, 15, 21, 31, 33, 37, 43, 47, 59, 61, 83, 104], "next_busi": 13, "05": [13, 71], "return_previous_business_dai": 13, "prev_busi": 13, "prev": 13, "previous_busi": 13, "set_business_dai": 13, "denot": [13, 55, 100], "4dai": 13, "set_local": 13, "locale_nam": 13, "now": [13, 33, 41, 83, 85, 93, 104], "time_now": 13, "dddd": 13, "mmmm": 13, "juev": 13, "marzo": 13, "thursdai": 13, "march": [13, 55], "sort_list_of_d": 13, "revers": [13, 104], "oldest": 13, "datelist": 13, "07": 13, "31": [13, 41, 89], "35": [13, 89], "Of": [13, 23], "time_differ": 13, "start_dat": 13, "end_dat": 13, "start_timezon": 13, "end_timezon": 13, "end_date_is_lat": 13, "hour": [13, 15, 41, 63, 104], "minut": [13, 15, 41, 89], "diff": [13, 41], "1975": 13, "22t18": 13, "00": [13, 41, 47, 61], "22t22": 13, "45": [13, 89], "time_difference_between_timezon": 13, "america": 13, "new_york": 13, "europ": 13, "helsinki": 13, "time_difference_in_dai": 13, "21": [13, 47, 51, 89], "time_difference_in_hour": 13, "21t22": 13, "22t04": 13, "time_difference_in_minut": 13, "245": [13, 104], "time_difference_in_month": 13, "15": [13, 15, 71, 89, 95], "boston": 13, "region": [15, 17, 25, 35, 57, 100, 104], "eu": [15, 35], "west": 15, "robocorp_vault_nam": [15, 17, 104], "s3": [15, 104], "sq": [15, 104], "textract": [15, 104], "comprehend": [15, 104], "three": [15, 19, 31, 33, 55, 95, 100], "aws_key_id": 15, "aws_kei": 15, "aws_region": [15, 104], "redshift": [15, 104], "author": [15, 35, 37, 39, 41, 43, 55, 63, 65, 67, 71, 87, 98, 104], "cluster": 15, "arn": 15, "serverless": 15, "temporari": [15, 104], "credenti": [15, 19, 43, 55, 67, 77, 98, 104], "permiss": [15, 63, 65, 87], "getclustercredenti": 15, "role": [15, 59, 67, 104], "assumpt": 15, "st": [15, 104], "abl": [15, 35, 59, 104], "assum": [15, 21, 47, 55, 65, 83, 104], "east": 15, "use_robocorp_vault": [15, 17, 19, 104], "vault_nam": [15, 17, 19, 41, 63, 104], "boto3": [15, 104], "plu": [15, 41, 43], "rememb": 15, "bucket_nam": [15, 19], "testbucket12213123123": [15, 19], "upload": [15, 19, 51, 53, 65, 69, 83, 104], "bucket": [15, 19], "setup": [15, 19, 35, 41, 43, 45, 47, 55, 61, 67, 73, 77, 83, 85, 87, 98, 100, 102, 104], "analyze_docu": 15, "image_fil": [15, 17], "json_fil": 15, "model": [15, 35, 37, 39, 71, 93, 104], "analyz": [15, 17, 35, 104], "relationship": [15, 25], "analysi": [15, 104], "textractdocu": 15, "assume_rol": 15, "role_arn": 15, "role_session_nam": 15, "policy_arn": 15, "900": 15, "transitive_tag_kei": 15, "external_id": [15, 67], "serial_numb": 15, "token_cod": 15, "source_ident": 15, "secur": [15, 21, 23, 43, 65, 87], "consist": [15, 104], "account": [15, 19, 25, 41, 43, 55, 63, 65, 67, 69, 71, 73, 87, 93, 104], "accesskeyid": 15, "secretaccesskei": 15, "sessiontoken": 15, "expir": [15, 41, 43, 63], "2015": 15, "assumedroleus": 15, "assumedroleid": 15, "packedpolicys": 15, "123": [15, 61, 93, 100], "sourceident": 15, "iam": 15, "associ": [15, 31, 77], "transit": 15, "subsequ": [15, 93, 100], "administr": 15, "identif": 15, "who": [15, 43, 49], "trust": 15, "princip": 15, "convert_textract_response_to_model": 15, "create_bucket": 15, "acl": 15, "create_queu": 15, "queue_nam": 15, "create_redshift_statement_paramet": 15, "sql": [15, 23, 87, 104], "statement": [15, 23, 47, 104], "produc": [15, 23], "delete_bucket": 15, "delete_fil": 15, "delete_messag": [15, 43], "receipt_handl": 15, "delete_queu": 15, "describe_redshift_t": 15, "schema": [15, 55, 104], "metadata": [15, 17, 25, 41, 43, 49, 55, 63, 65, 87, 93, 104], "notat": [15, 55, 65], "columnlist": 15, "columndefault": 15, "iscasesensit": 15, "iscurr": 15, "issign": 15, "length": [15, 47, 61, 71, 83, 93, 95], "nullabl": 15, "precis": [15, 47], "scale": [15, 47, 59, 100, 104], "schemanam": 15, "tablenam": [15, 23], "typenam": 15, "ommit": 15, "detect_document_text": 15, "detect_ent": 15, "lang": [15, 98], "entiti": [15, 100], "utf": [15, 21, 23, 43, 49, 61, 75, 104], "fewer": 15, "000": [15, 55], "byte": [15, 21, 29, 31, 43, 49, 51, 53, 73, 104], "encod": [15, 21, 23, 37, 43, 49, 53, 61, 75, 95, 104], "detect_senti": 15, "infer": [15, 55], "prevail": 15, "sentiment": 15, "download_fil": 15, "target_directori": 15, "execute_redshift_stat": 15, "statement_nam": 15, "with_ev": 15, "40": [15, 47, 89, 104], "dml": 15, "definit": [15, 59, 65, 93, 104], "ddl": 15, "parameter": [15, 23, 104], "referenc": [15, 104], "implicitli": [15, 83], "simplic": 15, "helper": [15, 35, 37, 39, 53, 65, 104], "natur": [15, 55, 71, 100, 104], "scope": [15, 19, 41, 63, 65, 83, 93, 104], "mytabl": [15, 23], "seattl": 15, "queri": [15, 23, 37, 41, 53, 87, 93, 98, 104], "whether": [15, 31, 47, 53, 55, 71, 89, 93], "eventbridg": 15, "bu": 15, "becuas": 15, "waiter": 15, "execute_redshift_statement_asyncron": 15, "asyncron": 15, "later": [15, 25, 33, 35, 47, 83], "generate_presigned_url": 15, "object_nam": 15, "expires_in": 15, "extra_param": 15, "presign": [15, 104], "3600": 15, "get_cel": 15, "get_document_analysi": 15, "job_id": 15, "max_result": [15, 55], "1000": [15, 55, 71], "next_token": 15, "collect_all_result": 15, "job": 15, "pagin": [15, 67], "jobstatu": 15, "succeed": [15, 43], "aws_key_secret": 15, "jobid": 15, "s3bucket_nam": 15, "invoic": [15, 35, 37, 39, 41, 43, 73, 75, 104], "get_document_text_detect": 15, "get_pages_and_text": 15, "textract_respons": 15, "get_redshift_statement_result": 15, "statement_id": 15, "yet": [15, 31, 69, 100, 104], "retreiv": [15, 55], "get_tabl": 15, "get_word": 15, "init_comprehend_cli": 15, "session_token": 15, "init_redshift_data_cli": 15, "cluster_identifi": 15, "database_us": 15, "secret_arn": 15, "init_s3_cli": 15, "init_sqs_cli": 15, "queue_url": 15, "init_sts_cli": 15, "init_textract_cli": 15, "list_bucket": 15, "list_fil": [15, 51], "jmespath": 15, "list_objects_v2": 15, "awslibrari": 15, "list_redshift_databas": 15, "list_redshift_schema": 15, "schema_pattern": 15, "substr": [15, 104], "_": [15, 93, 100], "list_redshift_t": 15, "table_pattern": 15, "neither": 15, "nor": [15, 100], "logger": 15, "receive_messag": 15, "receiv": [15, 33, 41, 43, 63, 73, 83, 98, 104], "send_messag": [15, 41, 43, 73, 104], "message_attribut": 15, "set_robocorp_vault": 15, "start_document_analysi": 15, "bucket_name_in": 15, "object_name_in": 15, "object_version_in": 15, "bucket_name_out": 15, "prefix_object_out": 15, "textract_output": 15, "start_document_text_detect": 15, "upload_fil": 15, "basenam": 15, "contenttyp": 15, "mybucket": 15, "extraarg": 15, "file1": [15, 83], "file2": 15, "northeurop": 17, "computervis": 17, "comput": [17, 25, 29, 31, 49, 100, 104], "vision": [17, 19, 25, 104], "face": [17, 104], "speech": [17, 19, 104], "textanalyt": 17, "analyt": [17, 104], "subscript": [17, 55], "azure_textanalytics_kei": 17, "azure_subscription_kei": 17, "googlecloud": [17, 19], "image_url": [17, 69], "imagetyp": 17, "visual_featur": 17, "ag": [17, 47, 95], "rectangl": [17, 31, 57, 100, 104], "facerectangl": 17, "init_text_analytics_servic": 17, "init_face_servic": 17, "init_computer_vision_servic": 17, "init_speech_servic": 17, "westeurop": 17, "sentiment_analyz": 17, "wonder": 17, "staff": 17, "detect_fac": 17, "path_to_fil": 17, "face_attribut": 17, "smile": 17, "hair": 17, "facialhair": 17, "emot": 17, "faceattribut": 17, "vision_analyz": 17, "url_to_imag": 17, "text_to_speech": 17, "leverag": 17, "ecosystem": 17, "neural_voice_styl": 17, "cheer": 17, "target_fil": [17, 19, 53, 65, 77], "mp3": [17, 19], "service_account": 19, "vault_secret_kei": 19, "cloud_auth_typ": 19, "serviceaccount": [19, 35], "gcp": 19, "approri": 19, "oauth": [19, 41, 43, 63, 65, 104], "google_application_credenti": 19, "servicecr": 19, "token_fil": 19, "drive": [19, 37, 55, 65, 104], "script_scop": 19, "spreadsheet": [19, 104], "oauth_token": 19, "appdata": 19, "ganfd123321aabeedysc": 19, "init_vis": 19, "init_text_to_speech": 19, "detect_text": 19, "imagefil": 19, "synthesize_speech": 19, "said": 19, "aloud": 19, "fernet": 21, "ae": 21, "cbc": 21, "128": 21, "hmac": 21, "sha256": 21, "decrypt": [21, 75, 104], "cli": [21, 104], "rgx1eda07yz7ud08chipsunn8vaaurxw0pabsal9zjm": 21, "encryptionkei": 21, "decrypt_fil": 21, "enc": 21, "decrypt_str": 21, "base64": [21, 34, 35, 36, 37, 43, 104], "encrypt_fil": 21, "encrypt_str": 21, "don": [21, 35, 41, 47, 83, 95, 104], "generate_kei": 21, "lost": [21, 55], "recov": 21, "anyon": 21, "gain": [21, 59], "hash_fil": 21, "sha1": 21, "digest": [21, 53], "md5": 21, "uslyrhlbu8nzy29ymzhdupderp4": 21, "hash_str": 21, "use_encryption_kei": 21, "use_encryption_key_from_vault": 21, "cryptokei": 21, "procedur": [23, 104], "random_data": 23, "quot": [23, 41, 43, 55, 104], "exec": 23, "insertjsondatatosamplet": 23, "pep": 23, "0249": 23, "db": 23, "moin": 23, "databaseinterfac": 23, "program": [23, 49, 61], "databaseprogram": 23, "pymysql": [23, 104], "tester": 23, "127": [23, 51], "incoming_ord": [23, 87], "filesecret": [23, 79, 81, 87, 104], "get_secret": [23, 35, 37, 39, 41, 55, 63, 71, 77, 79, 81, 87], "databasesecret": 23, "connect_to_databas": [23, 104], "call_stored_procedur": 23, "sanstran": [23, 104], "as_tabl": [23, 87, 104], "transact": [23, 89], "rollback": [23, 104], "turn": 23, "off": [23, 37, 41, 55, 104], "firstparam": 23, "secondparam": 23, "thirdparam": 23, "mystpr": 23, "module_nam": 23, "charset": 23, "config_fil": 23, "cfg": 23, "ssl": [23, 53, 104], "had": [23, 27, 104], "mysql": [23, 104], "ssl_ca": 23, "ssl_cert": 23, "ssl_kei": 23, "client_flag": 23, "hostnam": 23, "3306": 23, "databasenam": 23, "found_row": 23, "digicertglobalrootg2": 23, "crt": 23, "pem": [23, 53], "dbconfig": 23, "azuredb": 23, "connector": [23, 104], "descripton": 23, "mydb": 23, "db_descript": 23, "disconnect_from_databas": 23, "firstnam": [23, 55], "disconnect": 23, "execute_sql_script": 23, "get_number_of_row": 23, "condit": [23, 47, 57, 61, 95], "claus": [23, 87], "column1": [23, 47, 93], "column2": [23, 47, 93], "get_row": [23, 93], "arguement": 23, "arvo": 23, "newvalu": 23, "updatedvalu": 23, "assert": [23, 53, 104], "untrust": 23, "bobbi": 23, "row_count": 23, "ones": [23, 33, 37, 100, 104], "heurist": 23, "fetch": [23, 104], "decid": 23, "stored_procedur": 23, "insert_and_return_nam": 23, "sqlite3": 23, "sqlite": 23, "data1": [23, 95], "1st": 23, "data2": [23, 95], "2nd": [23, 100], "INTO": 23, "set_auto_commit": 23, "locators_path": [25, 100, 104], "keyboard": [25, 31, 100, 104], "emul": [25, 104], "scrape": 25, "ocr": [25, 31, 37, 39, 104], "graphic": 25, "screen": [25, 31, 57, 63, 89, 98, 100], "offset": [25, 31, 100, 104], "bound": [25, 37], "rectangular": 25, "confid": [25, 37, 104], "divid": [25, 100], "colon": 25, "omit": [25, 53, 75, 93, 100, 104], "50": [25, 41], "robot_root": [25, 33, 73, 83], "200": [25, 53, 57, 95], "sparebin": 25, "enough": [25, 37, 100], "area": [25, 33, 47, 57, 104], "600": 25, "400": [25, 57], "300": [25, 31, 33, 43, 73], "disappear": 25, "truth": 25, "websit": [25, 85], "vscode": [25, 79, 81, 83, 100, 104], "craft": 25, "shortcut": 25, "underscor": 25, "page_down": 25, "shift": [25, 89, 100], "shift_l": 25, "shift_r": 25, "ctrl_l": 25, "ctrl_r": 25, "alt_l": 25, "alt_r": 25, "alt_gr": 25, "altgr": 25, "cmd": 25, "super": 25, "cmd_l": 25, "cmd_r": 25, "arrow": [25, 100], "backspac": [25, 89, 100], "esc": [25, 89, 100], "page_up": 25, "caps_lock": 25, "f1": [25, 89, 100], "f20": [25, 100], "undefin": 25, "num_lock": 25, "num": [25, 47, 100], "paus": [25, 100], "break": [25, 100, 104], "print_screen": 25, "scroll_lock": 25, "scroll": [25, 89, 100], "rule": 25, "appli": [25, 41, 55, 61, 83, 93, 95, 104], "left_click": 25, "double_click": 25, "triple_click": 25, "tripl": 25, "right_click": 25, "middl": [25, 31, 100, 104], "erp_client": 25, "write_entry_in_account": 25, "open_appl": [25, 31, 45, 73, 102], "type_text": [25, 59, 104], "press_kei": [25, 59], "input_label": 25, "write_to_field": 25, "move_mous": 25, "click_new": 25, "wait_for_el": [25, 31], "anchor": [25, 100, 104], "500": [25, 89, 98, 104], "type_not": 25, "click_with_offset": 25, "copi": [27, 31, 33, 47, 49, 59, 95, 100, 104], "past": [27, 59, 100], "clip": 27, "copy_to_clipboard": 27, "paste_from_clipboard": 27, "clear_clipboard": 27, "boot_tim": 29, "boot": [29, 31], "as_datetim": [29, 31], "memori": [29, 31, 47, 53, 55, 61, 93, 104], "get_computer_inform": 29, "op": 29, "get_boot_tim": [29, 31], "get_machine_nam": [29, 31], "get_usernam": [29, 31], "get_memory_stat": [29, 31], "__name__": [29, 31, 77], "__main__": [29, 31, 77], "boot_time_in_seconds_from_epoch": [29, 31], "epoch": [29, 31, 55], "datetime_format": [29, 31], "boottim": [29, 31], "mem": [29, 31], "kill_process": [29, 31], "process_nam": [29, 31, 77], "kill": [29, 31, 104], "succe": [29, 31], "calc": [29, 31, 47, 100], "strict": [29, 31, 59, 95, 104], "kill_process_by_pid": [29, 31], "pid": [29, 31, 59, 104], "process_exist": [29, 31], "inclus": [29, 31, 95], "process_id_exist": [29, 31], "4567": [29, 31], "put_system_to_sleep": [29, 31], "put": [29, 31, 53, 95], "sleep": [29, 31, 53, 85, 100], "backend": [31, 65, 104], "uia": [31, 59], "dispatch": 31, "offic": [31, 45, 73, 104], "pywinauto": 31, "investig": 31, "get_windows_el": 31, "class_nam": [31, 100, 104], "control_typ": [31, 100, 104], "automation_id": [31, 100, 104], "send_kei": [31, 100], "type_kei": 31, "faq": [31, 45, 73, 102, 104], "attributeerror": [31, 41], "win32com": 31, "gen_pi": 31, "00020813": 31, "0000": 31, "c000": 31, "000000000046x0x1x9": 31, "clsidtoclassmap": 31, "powershel": 31, "localappdatatempgen_pi": 31, "suit": [31, 61, 73, 83, 102], "teardown": [31, 33, 45, 47, 73, 85, 100, 102, 104], "rich": 31, "calculatorresult": [31, 100], "Be": [31, 53, 85, 89], "As": [31, 43, 47, 53, 73, 87, 93, 104], "win": [31, 100], "open_calcul": 31, "open_from_search": 31, "get_window_el": 31, "make_calcul": 31, "get_element_rich_text": 31, "strip": [31, 104], "exp": 31, "close_all_appl": 31, "calculate_rectangle_cent": 31, "rect": 31, "click_typ": [31, 59, 89], "horizont": [31, 47, 59, 100], "vertic": [31, 47, 59, 100], "450": 31, "notepad": [31, 104], "untitl": 31, "connect_by_handl": 31, "windowtitl": [31, 104], "existing_app": 31, "parse_el": 31, "appid": [31, 67], "88112": 31, "connect_by_pid": 31, "app_pid": 31, "3231": 31, "drag_and_drop": [31, 104], "src_locat": 31, "target_loc": 31, "handle_ctrl_kei": 31, "drop_delai": 31, "drag": [31, 104], "notif": [31, 33, 69, 104], "app1": 31, "vk_space": 31, "workfil": 31, "movethes": 31, "app2": 31, "wordpad": 31, "testfile_": 31, "search_criteria": 31, "get_app": 31, "app_id": 31, "active_appl": 31, "appdetail": 31, "get_dialog_rectangl": 31, "as_dict": 31, "coord": [31, 37], "get_el": [31, 59, 100], "reopen": 31, "get_element_cent": 31, "get_element_rectangl": 31, "rich_text": 31, "get_open_appl": 31, "app3": 31, "get_spaced_str": 31, "replac": [31, 33, 43, 49, 53, 61, 79, 81, 83, 95, 102, 104], "bond": 31, "get_text": 31, "Into": [31, 104], "55": 31, "val": [31, 37], "element_json": 31, "descend": [31, 41, 61, 95], "get_window_list": 31, "control_id": 31, "is_act": [31, 104], "keyboard_focu": [31, 104], "is_element_match": 31, "itemdict": 31, "wildcard": [31, 61, 83, 104], "reg": 31, "lock_screen": 31, "log_in": 31, "domain": [31, 41, 43, 53, 61, 73, 87, 104], "mynam": 31, "mypassword": 31, "menu_select": 31, "menuitem": [31, 59], "minimize_dialog": 31, "mouse_click": 31, "off_x": 31, "off_i": 31, "ctype": 31, "focu": [31, 55, 59, 89, 104], "toler": [31, 57], "corner": [31, 37, 57, 95], "myimag": [31, 41], "trickycheckbox": 31, "mouse_click_coord": 31, "delay_tim": 31, "mouse_click_imag": 31, "powerpoint": 31, "open_execut": 31, "work_dir": 31, "open_fil": [31, 102], "open_using_run_dialog": 31, "quit_appl": [31, 45, 73, 102], "quit": [31, 45, 51, 73, 100, 102, 104], "application_id": 31, "f4": [31, 89, 100], "refresh_window": 31, "restore_dialog": 31, "restor": [31, 85, 104], "send_keys_to_input": 31, "keys_to_typ": 31, "with_ent": 31, "send_delai": 31, "enter_delai": 31, "jame": 31, "THE": 31, "set_automation_spe": 31, "set_windows_backend": 31, "supported_backend": 31, "win32": 31, "switch_to_appl": 31, "type_into": 31, "empty_field": [31, 104], "use_refresh": 31, "interv": [31, 41, 43, 73], "elementnotfounderror": 31, "listbox": 31, "popup": [31, 45, 73, 102], "poll": [31, 49], "notic": 33, "migrat": [33, 104], "gfko5": 33, "2200": 33, "widget": 33, "add_dialog_next_page_button": 33, "delimit": [33, 95, 104], "wizard": [33, 104], "experi": [33, 104], "contact": [33, 55], "add_el": 33, "destin": [33, 49, 65, 83], "ext1": 33, "ext2": 33, "anyt": 33, "dest": 33, "sai": [33, 61], "choos": [33, 35], "clear_el": 33, "clean": 33, "close_all_dialog": 33, "implic": 33, "dialog1": 33, "dialog2": 33, "know": 33, "close_dialog": 33, "correctli": [33, 104], "throw": [33, 104], "shorthand": [33, 87], "show_dialog": 33, "immedi": [33, 53, 104], "agument": 33, "still": [33, 37, 45, 53, 59, 73, 83, 102, 104], "wait_all_dialog": 33, "wait_dialog": 33, "wait_dialogs_as_complet": 33, "yield": 33, "idp": [34, 36, 37, 38, 39, 104], "ai": [34, 35, 36, 37, 70, 104], "scan": [35, 37, 75], "facad": 35, "engin": [35, 89, 93, 104], "predict": [35, 37, 39, 104], "matter": [35, 104], "particular": 35, "jump": 35, "document_ai": 35, "858e4b37": 35, "6679": 35, "4552": 35, "9481": 35, "d5497dfc0b4a": 35, "enginenam": 35, "lib_docai": 35, "init_engin": 35, "df1d166771005ff4": 35, "project_id": 35, "agenc": 35, "347912": 35, "get_result": 35, "hashabl": [35, 37, 39, 61], "obtain": [35, 41, 43, 55, 59, 63, 65, 71, 93, 104], "again": [35, 83, 93], "final": [35, 41, 43, 47, 55, 63, 83, 100, 104], "split": [35, 61, 75, 104], "just": [35, 71, 104], "privat": [35, 51, 55, 104], "resolut": [35, 104], "isn": [35, 63, 104], "hold": [35, 83, 100], "ll": [35, 55], "absenc": [35, 61, 100, 104], "mail_apikei": 35, "mandatori": [35, 104], "guess": 35, "financ": [35, 37], "switch_engin": 35, "auth": [37, 39, 41, 53, 55, 61, 63, 87, 104], "apikei": [37, 39, 77], "model_typ": [37, 39], "usa": [37, 55], "join": [37, 39, 49, 55, 69, 73, 77], "baselib": [37, 71], "set_author": [37, 39], "scan_document_fil": 37, "prop": 37, "base_url": 37, "filter_matching_signatur": 37, "match_respons": 37, "confidence_threshold": 37, "similarity_threshold": 37, "signatur": [37, 104], "threshold": 37, "simplifi": [37, 61, 104], "enclos": [37, 41, 104], "portion": [37, 49, 65], "score": 37, "crop": [37, 57, 104], "candid": 37, "alik": [37, 104], "discard": [37, 83, 95], "fraudul": 37, "sig": 37, "get_fields_from_prediction_result": [37, 39], "get_matching_signatur": 37, "reference_imag": 37, "query_imag": 37, "geometri": 37, "simpler": 37, "jpg": [37, 39, 49], "licens": 37, "card": 37, "contract": 37, "bank": 37, "reveal": 37, "resembl": 37, "ref_imag": 37, "get_signature_imag": 37, "cut": 37, "decod": [37, 43, 49, 104], "numer": [37, 55, 61, 100, 104], "along": 37, "ref_sig": 37, "qry_sig": 37, "get_user_data": 37, "credit": 37, "remain": [37, 55, 63, 95], "givennam": 37, "familynam": 37, "hasworkemail": 37, "companynam": 37, "numberofcredit": 37, "numberofpag": 37, "numberofupload": 37, "numberofcreditsspentondocu": 37, "numberofcreditsspentonfacedetect": 37, "numberofcreditsspentonfacerecognit": 37, "hasactiveawscontract": 37, "subscriptiontyp": 37, "subscriptionperiod": 37, "ccemail": 37, "remainingcredit": 37, "userdata": 37, "file_path": [37, 65], "mock": 37, "img_8277": [37, 39], "1120": 37, "scan_document_url": 37, "api_email": 37, "api_kei": [37, 55, 71], "eckero": 39, "receipt": 39, "ocr_text": 39, "nanolib": 39, "predict_fil": 39, "file_to_scan": 39, "get_tables_from_prediction_result": 39, "rpatabl": 39, "create_t": [39, 95], "get_all_model": 39, "model_id": 39, "ocr_fulltext": 39, "fulltext": 39, "pagenum": 39, "enumer": [39, 65], "pagedata": 39, "raw_text": 39, "page_data": 39, "categor": 39, "docu": 39, "vault_token_kei": [41, 104], "tenant": [41, 43, 65, 104], "ew": 41, "articl": [41, 61, 104], "email_oauth_microsoft": 41, "ztzvn": 41, "onmicrosoft": 41, "account_nam": [41, 43, 73, 87], "recipient_address": [41, 43], "recipi": [41, 43, 73, 104], "mydocu": 41, "is_oauth": [41, 43, 104], "flow": [41, 43, 63, 65, 104], "client_id": [41, 43, 63, 65], "client_secret": [41, 43, 63, 65], "refresh": [41, 43, 55, 59, 63, 65, 93, 100, 104], "subject": [41, 43, 69, 73], "p": [41, 43, 89], "br": 41, "cc": [41, 43, 73, 104], "email_address": 41, "bcc": [41, 43, 73, 104], "msg": [41, 53], "save_dir": [41, 104], "savedir": 41, "inbox": [41, 43, 73], "sub1": 41, "criterion": [41, 43, 73, 104], "savedir2": 41, "purchas": [41, 59], "sub2": 41, "ex_account": 41, "forget": [41, 47, 104], "subject_contain": 41, "body_contain": 41, "sender": [41, 43, 73, 91, 104], "sender_contain": [41, 104], "categori": 41, "category_contain": 41, "timeformat": 41, "25": [41, 47, 89], "2021": 41, "23": [41, 61, 89], "to_protect": [41, 43], "get_oauth_token": [41, 43, 63, 85], "refresh_oauth_token": [41, 43, 63, 65, 85], "autodiscov": [41, 104], "access_typ": [41, 63, 104], "accesstyp": 41, "deleg": [41, 104], "primary_smtp_address": 41, "skip": [41, 89, 104], "imperson": [41, 93, 104], "expiri": 41, "create_fold": [41, 43], "folder_nam": [41, 43, 73, 104], "parent_fold": 41, "delete_fold": [41, 43], "empty_fold": 41, "delete_sub_fold": 41, "generate_oauth_url": [41, 43, 63], "sensit": [41, 43, 55, 63, 104], "auth_url": [41, 43, 63], "810482312368": [41, 43, 63], "19htmcgcj": [41, 43, 63], "googleusercont": [41, 43, 63], "response_url": [41, 43, 63], "gocspx": [41, 43, 63], "mqzaw89": [41, 43, 63], "resp_url": [41, 43, 63], "redirect": [41, 43, 53, 63, 65], "list_messag": [41, 43, 104], "items_onli": [41, 104], "list_unread_messag": 41, "unread": [41, 43, 73, 104], "move_messag": [41, 43], "changekei": 41, "priority_account": 41, "prioriti": [41, 73], "1h": [41, 43, 63], "never": [41, 43, 63], "revok": [41, 43, 63], "rename_fold": [41, 43], "oldnam": [41, 43], "newnam": [41, 43], "renam": [41, 43, 47, 49, 51, 95, 104], "save_attach": [41, 43, 73], "attachments_from_eml": 41, "eml": [41, 43, 104], "robot_artifact": [41, 77], "save_messag": [41, 43], "reply_to": [41, 43, 104], "sent": [41, 53, 55, 77, 83, 87, 104], "repli": [41, 43, 104], "send_reply_messag": 41, "reply_al": 41, "verifi": [41, 53, 55, 57, 100, 104], "hh": 41, "datetime_receiv": 41, "came": 41, "mika": 41, "total": [41, 43, 73, 85, 104], "agre": 41, "wait_for_messag": [41, 43], "arriv": [41, 43, 73], "AS": [41, 83, 102], "OF": 41, "smtp_server": 43, "smtp_port": [43, 104], "587": [43, 69, 104], "imap_serv": 43, "imap_port": [43, 104], "993": 43, "oauthprovid": 43, "answer": 43, "185833": 43, "hl": 43, "xoauth2": [43, 104], "highli": [43, 104], "care": 43, "mistak": 43, "gmail_account": 43, "gmail_password": 43, "app_password": 43, "body_img1": 43, "imagedir": 43, "approv": [43, 73, 93], "body_img2": 43, "email_bodi": 43, "authorize_imap": 43, "authorize_smtp": 43, "set_credenti": [43, 77], "generate_oauth_str": 43, "add_gmail_label": 43, "source_fold": [43, 73], "customer1": 43, "wip": 43, "customerfold": 43, "Will": [43, 47, 61, 89, 104], "convert_eml_file_into_messag": 43, "eml_filepath": 43, "save_attachments_directori": 43, "body_text": 43, "body_html": 43, "aboutth": 43, "exactli": [43, 59], "greet": 43, "do_message_act": 43, "target_fold": [43, 65, 73], "msg_copi": 43, "msg_delet": 43, "msg_flag": 43, "msg_unflag": 43, "msg_read": 43, "msg_unread": 43, "msg_save": 43, "msg_attachment_sav": 43, "glabel_add": 43, "glabel_remov": 43, "actions_don": 43, "message_count": 43, "uid": [43, 104], "xxx": 43, "email_to_docu": 43, "input_sourc": 43, "binaryio": 43, "docx": [43, 102, 104], "mail_fil": 43, "pathlib": 43, "lib_work": 43, "lib_mail": 43, "convert_email_to_docx": 43, "get_input_work_item": [43, 83], "get_work_item_fil": [43, 83], "flag_messag": 43, "unflag": [43, 104], "flag": [43, 47, 104], "oftot": 43, "access_token": [43, 55, 93, 98], "pack": 43, "legaci": [43, 45, 47, 104], "get_decoded_email_bodi": 43, "html_first": 43, "imaplib": 43, "printabl": 43, "latin": 43, "priorit": 43, "unicod": [43, 100, 104], "tell": 43, "get_folder_list": 43, "readonli": [43, 104], "deliv": 43, "mark_as_read": 43, "mark_as_unread": 43, "yyi": 43, "move_messages_by_id": 43, "message_id": 43, "use_gmail_search": 43, "rfc822msgid": 43, "remove_gmail_label": 43, "unlabel": [43, 55], "suppress_error": 43, "silenc": 43, "subfold": [43, 65], "userdir": 43, "select_fold": 43, "attachment_posit": [43, 104], "attachmentposit": 43, "in_reply_to": [43, 104], "return_path": [43, 104], "message_id_for_reply_to": 43, "bounc": 43, "tend": 43, "need_to_know": 43, "hidden_copi": 43, "send_smtp_hello": 43, "hello": [43, 69, 73, 83, 100], "unflag_messag": 43, "mailbox": [43, 65, 73], "workbook": [45, 47, 67, 83, 104], "sheetnam": [45, 93, 104], "stuff": [45, 87], "macro": [45, 47, 104], "orders_with_macro": 45, "xlsm": 45, "sheet1": 45, "commandbutton1_click": 45, "export": [45, 95, 102, 104], "open_workbook": [45, 47], "set_active_worksheet": [45, 47], "write_to_cel": 45, "save_excel": 45, "caveat": [45, 73, 100, 102], "autoexit": [45, 73, 102, 104], "self": [45, 73, 85, 102], "worker": [45, 73, 102, 104], "rdp": [45, 73, 102], "tick": [45, 73, 102, 104], "encount": [45, 73, 83, 100, 102], "potenti": [45, 57, 73, 102], "unattend": [45, 63, 73, 77, 83, 102, 104], "2016": [45, 73, 102], "app_dispatch": [45, 73, 102], "add_new_sheet": 45, "create_workbook": [45, 47], "add_new_workbook": 45, "close_docu": [45, 73, 102], "save_chang": [45, 73, 102], "export_as_pdf": 45, "pdf_filenam": 45, "excel_filenam": 45, "find_first_available_cel": 45, "free": [45, 55, 104], "find_first_available_row": 45, "display_alert": [45, 73, 102], "read_from_cel": 45, "run_macro": 45, "macro_nam": 45, "save_excel_a": 45, "autofit": 45, "file_format": 45, "vba": [45, 73], "xlfileformat": 45, "modern": [45, 47, 61, 104], "97": [45, 89, 104], "56": 45, "sheetnumb": 45, "number_format": [45, 47], "formula": [45, 47, 93, 104], "protect": [47, 85, 104], "iter": [47, 49, 77, 95, 104], "orders_fil": 47, "excel_fil": 47, "sheet_nam": [47, 93, 104], "my_new_excel": 47, "append": [47, 49, 53, 61, 67, 93, 95, 104], "read_excel_worksheet": 47, "read_worksheet": 47, "close_workbook": 47, "append_rows_to_worksheet": 47, "formatting_as_empti": [47, 104], "repres": [47, 55, 57, 59, 61, 65, 77, 87, 93, 95, 100], "table_nam": 47, "sara": 47, "beth": 47, "ami": [47, 95], "table_ag": 47, "57": 47, "save_workbook": 47, "auto_size_column": 47, "start_column": 47, "end_column": 47, "font": [47, 104], "auto_s": 47, "b": [47, 61, 87, 89, 100], "clear_cell_rang": 47, "range_str": 47, "a9": 47, "a100": 47, "a2": 47, "a1": 47, "b2": 47, "b50": 47, "copy_cell_valu": 47, "source_rang": 47, "d4": 47, "g10": 47, "fmt": 47, "xlsworkbook": 47, "xlsxworkbook": 47, "newli": [47, 55, 65, 83, 104], "upon": 47, "mycustomsheetnam": 47, "create_worksheet": 47, "exist_ok": [47, 49, 104], "dictonari": 47, "employees_row1": 47, "58": [47, 95], "employees_row2": 47, "employees_row3": 47, "adam": [47, 95], "67": [47, 95], "worksheet_data": 47, "worksheet_data_row1": 47, "worksheet_data_row2": 47, "worksheet_data_row3": 47, "employe": [47, 95], "workseet": 47, "employees_nam": 47, "employees_ag": 47, "worksheet_data_nam": 47, "worksheet_data_ag": 47, "delete_column": 47, "aa": 47, "delete_row": 47, "jj": 47, "find_empty_row": 47, "get_active_worksheet": 47, "active_worksheet": 47, "get_cell_valu": [47, 89], "column3": 47, "get_worksheet_valu": 47, "hide_column": 47, "insert_columns_aft": 47, "insert_columns_befor": 47, "insert_image_to_worksheet": 47, "factor": [47, 59, 62, 104], "last_row": 47, "insert_rows_aft": 47, "insert_rows_befor": 47, "list_worksheet": 47, "declar": [47, 87], "workset": 47, "move_rang": 47, "translat": [47, 104], "openpyxl": 47, "neg": [47, 95], "e2": 47, "e10": 47, "data_onli": [47, 104], "read_onli": [47, 102, 104], "letter": [47, 104], "read_worksheet_as_t": 47, "trim": [47, 95, 104], "remove_worksheet": 47, "rename_worksheet": 47, "src_name": 47, "dst_name": 47, "futur": [47, 55, 65, 83, 100], "cannot": [47, 55, 61, 83, 89, 93, 104], "vice": 47, "versa": 47, "per": [47, 55, 93, 95], "basi": [47, 71], "bege": 47, "set_cell_format": 47, "themselv": [47, 100], "libreoffic": 47, "aforement": [47, 61], "explan": 47, "set_cell_formula": 47, "transpos": 47, "e3": 47, "b3": 47, "set_cell_valu": [47, 89], "start_cel": 47, "table_head": [47, 95], "all_row": 47, "fourth": 47, "2000": 47, "g1": 47, "uncom": 47, "m1": 47, "simplest": [47, 61], "set_styl": 47, "font_nam": 47, "famili": 47, "bold": 47, "ital": 47, "underlin": 47, "strikethrough": 47, "cell_fil": 47, "align_horizont": 47, "align_vert": 47, "justifi": 47, "centercontinu": 47, "distribut": 47, "0_": 47, "00e": 47, "am": [47, 77], "pm": 47, "ss": [47, 93], "hex": 47, "align": [47, 104], "lightblu": 47, "ff0000": 47, "arial": 47, "set_worksheet_valu": 47, "unhide_column": 47, "unhid": 47, "worksheet_exist": 47, "does_worksheet_exist": 47, "move_to_arch": 49, "find_fil": 49, "create_directori": 49, "move_fil": 49, "path_typ": 49, "absolute_path": 49, "resolv": [49, 100, 104], "symlink": 49, "append_to_binary_fil": 49, "append_to_fil": 49, "change_file_extens": 49, "copy_directori": 49, "copy_fil": 49, "create_binary_fil": 49, "fe88505b6162b2538a045c": 49, "2017": [49, 53], "file_example_jpg_100kb": 49, "create_fil": 49, "written": [49, 61, 85], "newfil": 49, "does_directory_exist": 49, "does_directory_not_exist": 49, "directory_exist": 49, "does_file_exist": 49, "log_exist": 49, "does_file_not_exist": 49, "empty_directori": 49, "include_dir": 49, "include_fil": 49, "get_file_creation_d": 49, "whenev": [49, 83], "get_file_extens": 49, "suffix": 49, "get_file_modified_d": 49, "get_file_nam": 49, "get_file_own": 49, "owner": [49, 55, 93, 104], "get_file_s": 49, "get_file_stem": 49, "is_directory_empti": 49, "directory_empti": 49, "new_fil": 49, "is_directory_not_empti": 49, "is_file_empti": 49, "zero": [49, 93, 95], "is_file_not_empti": 49, "file_empti": 49, "alt_dir": 49, "join_path": 49, "compon": [49, 104], "ext": [49, 83, 104], "nest": [49, 53, 61], "list_directories_in_directori": 49, "list_files_in_directori": 49, "log_directory_tre": 49, "tree": [49, 59, 100, 104], "move_directori": 49, "normalize_path": 49, "redund": 49, "normalized_path": 49, "read_binary_fil": 49, "pictur": [49, 71], "read_fil": 49, "remove_directori": 49, "remove_fil": 49, "run_keyword_if_file_exist": 49, "touch_fil": 49, "touch": 49, "wait_until_cr": 49, "wait_until_modifi": 49, "wait_until_remov": 49, "ftplib": 51, "27345": 51, "12345": 51, "transfer": 51, "unilater": 51, "tl": [51, 53, 69, 104], "passiv": 51, "keyfil": 51, "certfil": 51, "source_address": 51, "certif": [51, 53, 104], "socket": [51, 104], "bind": [51, 104], "authenticationexcept": 51, "connnect": 51, "cwd": [51, 59], "dirnam": [51, 83], "remotefil": 51, "localfil": 51, "file_s": 51, "get_welcome_messag": 51, "mkd": 51, "pwd": 51, "fromnam": 51, "tonam": 51, "rmd": 51, "send_command": 51, "wikipedia": [51, 69], "list_of_ftp_command": 51, "set_ascii_mod": 51, "ascii": [51, 104], "set_binary_mod": 51, "set_debug_level": 51, "moder": 51, "requestslibrari": [53, 104], "default_retry_method_list": 53, "trace": 53, "check_vulner": 53, "vulner": [53, 104], "runtim": [53, 104], "openssl": [53, 104], "discov": [53, 61], "create_client_cert_sess": 53, "client_cert": 53, "max_retri": 53, "backoff_factor": 53, "disable_warn": 53, "retry_status_list": 53, "retry_method_list": 53, "map": [53, 61, 83, 87, 95, 100, 104], "3128": 53, "4012": 53, "cert": 53, "ca_bundl": [53, 104], "verbos": [53, 104], "httplib": 53, "httpconnect": 53, "set_debuglevel": 53, "retri": [53, 77, 83, 93, 104], "kind": [53, 104], "regardless": 53, "testcas": 53, "introduc": [53, 63], "eg": 53, "attemp": 53, "urllib3": 53, "readthedoc": [53, 69], "uppercas": 53, "verb": 53, "idempot": 53, "502": [53, 104], "503": 53, "create_custom_sess": 53, "create_digest_sess": 53, "ntlm": 53, "create_ntlm_sess": 53, "create_sess": 53, "delete_all_sess": 53, "delete_on_sess": 53, "expected_statu": 53, "delete_request": 53, "uri": [53, 65], "allow_redirect": 53, "cach": [53, 93, 104], "force_new_sess": 53, "stream": [53, 77, 104], "download_path": [53, 93], "word_exampl": 53, "wp": 53, "sample_100kb": 53, "excel_exampl": 53, "file_example_xls_10": 53, "reus": [53, 104], "verif": [53, 104], "get_current_session_alia": 53, "get_file_for_streaming_upload": 53, "descriptor": [53, 93], "caller": 53, "get_on_sess": 53, "get_request": 53, "urlencod": 53, "head_on_sess": 53, "oppos": 53, "head_request": 53, "http_get": 53, "old": [53, 71, 102, 104], "scheme": [53, 104], "options_on_sess": 53, "options_request": 53, "patch_on_sess": 53, "patch_request": 53, "post_on_sess": 53, "post_request": 53, "multipart": 53, "put_on_sess": 53, "put_request": 53, "request_should_be_success": 53, "4xx": 53, "5xx": 53, "httperror": 53, "versatil": 53, "session_exist": 53, "session_less_delet": 53, "session_less_get": 53, "serializ": [53, 61, 83], "cookiejar": 53, "fileobj": 53, "content_typ": 53, "custom_head": 53, "ca": 53, "offici": [53, 85, 104], "session_less_head": 53, "session_less_opt": 53, "session_less_patch": 53, "session_less_post": 53, "session_less_put": 53, "status_should_b": 53, "But": [53, 59, 61], "ok": 53, "bad": 53, "404": 53, "resp": 53, "notfound": 53, "NOT": [53, 59, 89, 100], "to_json": 53, "pretty_print": 53, "pretti": 53, "update_sess": 53, "hubspot_apikei": 55, "hubspot_access_token": 55, "understand": 55, "millisecond": [55, 89], "result_format": [55, 57, 71], "multipli": [55, 100], "nearest": 55, "integar": [55, 93], "18": [55, 89], "yesterdai": 55, "24h": 55, "yesterday_hs_t": 55, "deal": [55, 59], "hs_lastmodifiedd": 55, "gte": 55, "get_current_d": 55, "subtract_time_from_d": 55, "search_for_object": 55, "wish": 55, "finland": [55, 87], "new_compani": 55, "batchinputfactori": 55, "batchmod": 55, "robocorpvault": 55, "extend_input": 55, "citi": 55, "espoo": [55, 87], "alphabet": 55, "mountain": 55, "1001": 55, "1002": 55, "batch_input": 55, "updated_compani": 55, "execute_batch": 55, "n": [55, 61, 67, 89], "recal": 55, "use_cach": [55, 93], "object_typ": [55, 87], "singular": 55, "plural": 55, "rather": 55, "account_nokia": [55, 87], "6818764598": 55, "nokia_account_id": [55, 87], "get_object": 55, "whose": [55, 98], "standard": [55, 61, 95, 100], "created_at": 55, "updated_at": 55, "archived_at": 55, "deals_to_compani": 55, "multi": [55, 62, 65, 104], "travel": 55, "readabel": 55, "stage": [55, 87], "display_ord": 55, "th": 55, "sale": 55, "first_nam": 55, "last_nam": 55, "team": 55, "membership": 55, "secondari": 55, "builtin_plural_map": 55, "submiss": 55, "feadback": 55, "product": [55, 87, 95], "ticket": 55, "builtin_singular_map": 55, "add_input_to_batch": 55, "object_id": [55, 87], "auth_with_api_kei": 55, "wide": 55, "auth_with_token": [55, 87], "clear_current_batch": 55, "create_new_batch": 55, "create_object": 55, "nonexist": 55, "paremet": 55, "extend_batch_with_input": 55, "get_current_batch": 55, "get_current_batch_input": 55, "get_current_stage_of_object": 55, "id_properti": 55, "label_as_kei": 55, "hupspot": 55, "recach": 55, "get_owner_by_id": 55, "owner_id": 55, "owner_email": 55, "provis": 55, "get_owner_of_object": 55, "hs_object": 55, "owner_properti": 55, "hubspot_owner_id": 55, "get_pipelin": 55, "pipeline_id": 55, "discreet": 55, "accessess": 55, "comprehens": 55, "concept": 55, "step_on": 55, "visib": 55, "get_pipeline_stag": 55, "isclos": 55, "closed_won_stage_id": 55, "dealstag": 55, "eq": 55, "get_us": 55, "user_email": 55, "list_associ": 55, "to_object_typ": 55, "contact_to_compani": 55, "list_pipelin": 55, "unarchiv": 55, "objectschema": 55, "natural_search": 55, "string_queri": 55, "record": [55, 67, 75, 89, 100, 104], "property_nam": 55, "AND": [55, 100], "OR": [55, 61, 79, 81, 83, 100], "lt": 55, "lte": 55, "gt": 55, "neq": 55, "not_in": 55, "has_properti": 55, "opposit": 55, "not_has_properti": 55, "contains_token": 55, "not_contains_token": 55, "alic": 55, "smith": 55, "enum1": 55, "caten": [55, 83], "proeprti": 55, "filtergroup": 55, "logic": 55, "combination_search": 55, "propertynam": 55, "pseudo": 55, "seach": 55, "search_object": 55, "searchabl": 55, "set_associ": 55, "to_object_id": 55, "association_typ": 55, "company_to_contact": 55, "set_current_batch_input": 55, "update_object": 55, "upper": 57, "increas": [57, 93, 104], "toward": 57, "pillow": [57, 104], "robust": 57, "numpi": [57, 104], "opencv": [57, 104], "opt": [57, 59], "imagenotfounderror": 57, "desktop_": 57, "draw_matches_on_imag": 57, "find_template_in_imag": 57, "show_region_in_imag": 57, "crop_imag": 57, "significantli": 57, "get_pixel_color_in_imag": 57, "pil": 57, "onto": 57, "ignore_callback": [59, 104], "access_bridge_path": [59, 104], "max_depth": [59, 104], "disable_refresh": [59, 104], "bridg": [59, 104], "technologi": 59, "juli": [59, 104], "27": [59, 89], "insight": [59, 100], "Then": 59, "rc_java_access_bridge_dl": 59, "windowsaccessbridg": 59, "dll": [59, 104], "bin": 59, "jabswitch": 59, "situat": [59, 100], "regular": [59, 104], "bring": 59, "numberfield": 59, "startswith": 59, "type1": 59, "javael": [59, 104], "contextnod": 59, "java_el": [59, 104], "node": [59, 61, 89], "javaobject": 59, "ancestri": 59, "states_str": 59, "col": 59, "column_count": 59, "visible_children": 59, "visible_children_count": 59, "index_in_par": 59, "swing": [59, 104], "jar": 59, "basicsw": 59, "shell": [59, 89, 104], "chat": [59, 69, 71, 104], "subprocess": [59, 104], "jab": [59, 104], "popen": 59, "close_fd": 59, "select_window": 59, "click_el": [59, 89], "application_refresh": 59, "call_element_act": 59, "click_coordin": 59, "click_push_button": 59, "button_nam": 59, "close_java_window": 59, "get_element_act": 59, "get_element_text": 59, "butto": 59, "moretext": 59, "get_locator_tre": 59, "mostli": 59, "indexinpar": [59, 104], "get_version_info": 59, "list_java_window": 59, "javawindow": 59, "hwnd": 59, "window_list": 59, "select_window_by_pid": 59, "len": [59, 61, 83, 93], "simultan": 59, "print_element_tre": 59, "print_locator_tre": 59, "read_tabl": 59, "visible_onli": [59, 104], "locator_t": 59, "refresh_el": 59, "thu": [59, 104], "big": [59, 65, 104], "select_menu": 59, "bring_foreground": 59, "brought": 59, "foreground": 59, "select_window_by_titl": 59, "set_display_scale_factor": 59, "set_mouse_posit": 59, "shutdown_jab": 59, "shutdown": 59, "toggle_drop_down": 59, "toggl": 59, "dropdown": [59, 89], "wait_until_element_exist": 59, "wait_until_element_is_focus": 59, "wait_until_element_text_contain": 59, "wait_until_element_text_equ": 59, "interchang": 61, "inspir": 61, "subset": 61, "de": 61, "facto": 61, "agnost": 61, "easili": [61, 95, 104], "arrai": [61, 87, 93], "quickli": 61, "flavor": 61, "ng": 61, "analog": 61, "johnni": 61, "streetroad": 61, "price": [61, 87, 95], "103": 61, "98": 61, "99": [61, 95], "jane": 61, "waypath": 61, "321": 61, "2330": 61, "come": [61, 69, 104], "deliveri": 61, "cost": 61, "expens": 61, "wilcard": 61, "slice": [61, 95, 104], "ascend": [61, 73, 95], "substitut": 61, "arithmet": 61, "encapsul": [61, 104], "backtick": 61, "book": 61, "genr": 61, "horror": 61, "young": 61, "adult": 61, "repl": [61, 104], "char": [61, 104], "segment": 61, "max_split": 61, "concaten": 61, "multitud": 61, "seen": [61, 104], "individu": [61, 83, 95], "add_to_json": 61, "expr": 61, "peopl": 61, "j": 61, "convert_string_to_json": 61, "convert_json_to_str": 61, "obj": 61, "builtin": [61, 85, 95], "should_be_equ": 61, "delete_from_json": 61, "get_value_from_json": 61, "ingest": 61, "json_str": 61, "tx": 61, "001": [61, 71], "002": 61, "003": [61, 71], "004": 61, "152": 61, "005": 61, "json_doc": 61, "noutput": 61, "get_values_from_json": 61, "simplist": 61, "za": 61, "texa": 61, "load_json_from_fil": 61, "scalar": 61, "save_json_to_fil": 61, "indent": [61, 87, 104], "update_value_to_json": 61, "johnmalkovich": 61, "updated_doc": 61, "nnew": 61, "new_email": 61, "charg": 61, "id_pric": 61, "order_id": 61, "one_pric": 61, "counter": [62, 63, 104], "vault_kei": 63, "otpmod": 63, "intend": 63, "late": 63, "pyotp": 63, "requests_oauthlib": 63, "passcod": 63, "otpsecret": 63, "qr": 63, "mobil": 63, "phone": 63, "duplic": [63, 104], "get_time_based_otp": 63, "redirect_uri": [63, 65], "arbitrari": [63, 104], "oauthlib": [63, 104], "consent": 63, "offlin": 63, "oauthplayground": 63, "prompt": [63, 71, 104], "grant": [63, 65, 104], "lib_mfa": 63, "get_counter_based_otp": 63, "otp_passcod": 63, "token_url": 63, "oauth2sess": 63, "refresh_token": [63, 65], "guarante": 63, "constant": [63, 93, 104], "set_counter_based_otp": 63, "set_time_based_otp": 63, "use_mfa_secret_from_vault": 63, "o365": [64, 65, 104], "abil": [64, 65, 70, 104], "graph": [64, 65, 104], "programmat": [64, 65, 70, 100, 104], "vault_backend": 65, "vault_secret": 65, "file_backend_path": 65, "windowspath": 65, "openid": 65, "expos": [65, 83, 104], "behalf": 65, "bot": 65, "microsoftonlin": 65, "nativecli": 65, "organiz": 65, "authorize_and_get_token": 65, "authorization_url": 65, "configure_msgraph_cli": 65, "create_sharepoint_list": 65, "list_data": 65, "sharepointlist": 65, "sharepoint": [65, 104], "download_file_from_onedr": 65, "to_path": 65, "onedr": 65, "driveitem": 65, "download_file_from_share_link": 65, "share_url": 65, "download_file_from_sharepoint": 65, "download_folder_from_onedr": 65, "caution": 65, "find_onedrive_fil": 65, "search_str": 65, "include_fold": 65, "across": 65, "generate_oauth_authorization_url": 65, "get_drive_inst": 65, "drive_id": [65, 104], "get_file_inst": 65, "reobtain": 65, "get_folder_inst": 65, "get_items_from_sharepoint_list": 65, "list_nam": 65, "get_m": [65, 98], "get_scop": 65, "mailbox_shar": 65, "message_send": 65, "message_send_shar": 65, "message_al": 65, "message_all_shar": 65, "address_book": 65, "address_book_shar": 65, "address_book_al": 65, "address_book_all_shar": 65, "calendar_shar": 65, "calendar_al": 65, "calendar_shared_al": 65, "onedrive_al": 65, "sharepoint_dl": 65, "settings_al": 65, "tasks_al": 65, "presenc": 65, "get_sharepoint_sit": 65, "list_files_in_onedrive_fold": 65, "list_files_in_sharepoint_site_dr": 65, "list_sharepoint_site_dr": 65, "retain": 65, "search_for_us": 65, "search_field": 65, "displaynam": 65, "me": [65, 98], "upload_file_to_onedr": 65, "suitetalk": [66, 67], "soap": 67, "netsuitesdk": 67, "webservic": 67, "account_typ": 67, "_expens": 67, "netsuite_account": 67, "bill": 67, "vendor": 67, "netsuite_bil": 67, "consumer_kei": [67, 87, 98], "consumer_secret": [67, 87, 98], "token_kei": 67, "token_secret": 67, "get_account": 67, "currenc": 67, "get_curr": 67, "ns_account": 67, "ns_consumer_kei": 67, "ns_consumer_secret": 67, "ns_token_kei": 67, "ns_token_secret": 67, "get_classif": 67, "classif": 67, "currency_id": 67, "get_depart": 67, "depart": 67, "get_loc": 67, "get_vendor_bil": 67, "get_vendor": 67, "ns_email": 67, "ns_password": 67, "ns_role": 67, "ns_appid": 67, "netsuite_get": 67, "record_typ": 67, "internal_id": 67, "internalid": 67, "externalid": 67, "netsuite_get_al": 67, "netsuite_search": 67, "type_nam": 67, "search_valu": 67, "page_s": 67, "paginatedsearch": 67, "netsuite_search_al": 67, "interfact": 69, "pushov": [69, 104], "telegram": 69, "twilio": 69, "gitter": 69, "mailgun": 69, "pagerduti": 69, "popcornnotifi": 69, "pushbullet": 69, "simplepush": 69, "statuspag": 69, "zulip": 69, "provider_nam": 69, "room_id": 69, "id_of_the_gitter_room": 69, "office365": 69, "account_usernam": 69, "account_password": 69, "recipient_email": 69, "from_": 69, "sender_address": 69, "email_usernam": 69, "email_password": 69, "email_notifi": 69, "sender_email": 69, "slack_webhook": 69, "webhookdetail": 69, "webhook_url": [69, 91], "slack_attach": 69, "liverpool": 69, "wikimedia": 69, "cd": 69, "liverpool_fc": 69, "n_logo": 69, "1200px": 69, "notify_slack": 69, "slack_webhook_url": 69, "generic_notifi": 69, "notify_email": 69, "recipient_email_address": 69, "outlook_usernam": 69, "outlook_password": 69, "notify_gmail": 69, "notify_pushov": 69, "webhook": [69, 77, 91], "notify_telegram": 69, "chat_id": 69, "notify_twilio": 69, "number_from": 69, "number_to": 69, "account_sid": 69, "sid": 69, "secret_nam": [71, 79, 81], "taglin": 71, "ic": 71, "cream": 71, "shop": 71, "temperatur": 71, "authorize_to_openai": 71, "completion_cr": 71, "icecream": 71, "authorize_to_azure_openai": 71, "api_bas": 71, "api_typ": 71, "api_vers": 71, "azureopenai": 71, "chat_completion_cr": 71, "user_cont": 71, "gpt": [71, 104], "turbo": 71, "system_cont": 71, "top_prob": 71, "frequency_penalti": 71, "presence_penalti": 71, "chatgpt": [71, 104], "histori": [71, 93], "deployment_nam": 71, "deploy": 71, "mygpt4deploy": 71, "risk": 71, "nucleu": 71, "top_p": 71, "mass": 71, "penal": 71, "frequenc": 71, "far": 71, "chatgpt_convers": 71, "biggest": 71, "mammal": 71, "davinci": 71, "max_token": 71, "256": [71, 104], "mydavinci3deploy": 71, "divers": 71, "half": [71, 83], "likelihood": 71, "weight": 71, "image_cr": 71, "512x512": 71, "num_imag": 71, "256x256": 71, "1024x1024": 71, "cartoon": 71, "cute": 71, "monkei": [71, 77], "skateboard": 71, "image_create_vari": 71, "src_imag": 71, "variat": [71, 104], "4mb": 71, "source_imag": 71, "coupl": 73, "email_filt": 73, "senderemailaddress": 73, "emailaddress_1": 73, "emailaddress_2": 73, "csv": [73, 77, 83, 95, 104], "2007": [73, 104], "bb219950": 73, "v": [73, 89, 100, 104], "get_email": 73, "attachment_fold": 73, "sort_kei": 73, "sort_descend": 73, "email_fold": 73, "incom": 73, "mark_email_as_read": 73, "move_email": 73, "save_email_attach": 73, "100000": 73, "send_email": 73, "html_bodi": 73, "save_as_draft": [73, 104], "cc_recipi": 73, "bcc_recipi": 73, "draft": 73, "recipient3": 73, "recipient4": 73, "recipient1": 73, "xslx": 73, "cc_repient": 73, "bcc_repient": 73, "recipient5": 73, "recipient6": 73, "wait_for_email": 73, "watermark": [75, 104], "therefor": [75, 83, 89], "accur": 75, "video": [75, 100, 104], "pain": 75, "use_appearances_writ": 75, "extract_data_from_first_pag": 75, "get_text_from_pdf": 75, "get_lines_matching_regexp": 75, "get_invoice_numb": 75, "open_pdf": 75, "find_text": 75, "fill_form_field": 75, "switch_to_pdf": 75, "get_input_field": 75, "set_field_valu": 75, "save_field_valu": 75, "workspace_id": 77, "process_id": 77, "workspace_api_kei": 77, "cr": 77, "rc_api_process_host": [77, 104], "workforc": 77, "processapi": 77, "item1": 77, "fname": 77, "item2": 77, "work_item": 77, "batch": [77, 104], "workdata": 77, "item_id": [77, 83, 89], "payload": [77, 83, 104], "config_typ": 77, "extra_info": 77, "artifact": [77, 104], "filematch": 77, "process_run_id": 77, "processrunid": 77, "step_run_id": [77, 104], "activityrunid": 77, "download_link": 77, "artifact_id": 77, "retry_failed_item": 77, "list_process_work_item": 77, "retry_work_item": 77, "download_artifacts_match": 77, "list_run_artifact": 77, "get_robot_run_artifact": 77, "target_filepath": 77, "getenv": 77, "base_api": 77, "create_input_work_item": 77, "get_process_id_by_nam": 77, "workspac": [77, 79, 81, 93], "get_process_run_statu": 77, "get_work_item": 77, "workitem_id": 77, "include_data": 77, "list_process_run_work_item": 77, "item_st": 77, "list_process_run": 77, "run_stat": 77, "list_process_runs_in_workspac": 77, "list_process": 77, "process_api": 77, "register_file_upload": 77, "workitem_filenam": 77, "work_item_id": 77, "set_apikei": 77, "set_process_id": 77, "set_workspace_id": 77, "start_configured_process": 77, "configurationtyp": 77, "start_process": 77, "upload_file_to_s3": 77, "workspace_api": 77, "taken": [79, 81], "rcc": [79, 81], "fashion": [79, 81], "rc_api_secret_host": [79, 81], "rc_api_secret_token": [79, 81], "rc_workspace_id": [79, 81], "rpa_secret_manag": [79, 81], "rpa_secret_fil": [79, 81], "swaglab": [79, 81], "standard_us": [79, 81], "secret_sauc": [79, 81], "nobodi": [79, 81], "reading_secret": [79, 81], "modifying_secret": [79, 81], "set_secret": [79, 81], "autoload": [83, 104], "default_adapt": 83, "baseadapt": 83, "robocorpadapt": 83, "auto_parse_email": 83, "__mail": 83, "parsedemail": [83, 104], "rawemail": 83, "treat": 83, "truthi": 83, "transform": 83, "attend": [83, 104], "world": 83, "behaviour": [83, 85, 87, 100, 104], "alter": [83, 100], "back": [83, 85, 100], "defer": 83, "rpa_workitems_adapt": 83, "fileadapt": [83, 104], "variable1": 83, "variable2": 83, "adjac": [83, 104], "rpa_output_workitem_path": [83, 104], "simul": [83, 104], "dude": 83, "list_vari": 83, "get_work_item_vari": 83, "email_body_load": 83, "full_load": 83, "robot_listener_api_vers": [83, 85], "active_input": 83, "add_work_item_fil": 83, "clear_work_item": 83, "wi": 83, "save_work_item": 83, "create_output_work_item": 83, "customer_var": 83, "delete_work_item_vari": 83, "for_each_input_work_item": 83, "keyword_or_func": 83, "items_limit": [83, 104], "return_result": [83, 104], "rf": [83, 85, 95], "deplet": 83, "log_payload": 83, "get_work_item_payload": 83, "get_current_work_item": 83, "_internal_cal": 83, "customer_": 83, "keyerror": 83, "guest": 83, "input_wi": 83, "list_work_item_fil": 83, "list_work_item_vari": 83, "release_input_work_item": 83, "exception_typ": 83, "_internal_releas": 83, "lastli": 83, "unspecifi": 83, "regard": [83, 104], "login_portal_down": 83, "unabl": [83, 95], "err": 83, "doc_format_error": 83, "process_and_set_st": 83, "remove_work_item_fil": 83, "set_current_work_item": 83, "parent_wi": 83, "child_wi": 83, "set_task_variables_from_work_item": 83, "input_url": 83, "set_work_item_payload": 83, "set_work_item_vari": 83, "markymark": 83, "appl": 83, "listen": 85, "mute": [85, 100, 104], "cours": [85, 104], "optional_keyword_to_run": 85, "xyz": 85, "exit": [85, 104], "robotnotrunningerror": 85, "import_librari": 85, "customlibrari": 85, "__init__": 85, "register_protected_keyword": 85, "special_keyword": 85, "info_level_keyword": 85, "keywords_to_mut": 85, "keywords_to_protect": 85, "robocloud": [85, 104], "end_keyword": 85, "mute_run_on_failur": 85, "only_info_level": 85, "start_keyword": 85, "temporarili": 85, "sandbox": 87, "dataload": 87, "execute_dataloader_import": 87, "mimic": 87, "input_object": 87, "mapping_dict": 87, "tilaus__c": 87, "workdir": 87, "asiaka": 87, "0015i000002jbliqa2": 87, "0015i000002jbldqa2": 87, "mapping_object": 87, "tilaaja__c": 87, "upsert": 87, "salseforc": 87, "update_obj": 87, "ltd": 87, "billingstreet": 87, "bulevard": 87, "api_token": 87, "pprint": 87, "pp": 87, "prettyprint": 87, "sf": 87, "get_salesforce_object_by_id": 87, "billing_inform": 87, "billingc": 87, "billingpostalcod": 87, "01210": 87, "billingcountri": 87, "update_salesforce_object": 87, "add_product_into_opportun": 87, "product_nam": 87, "quantiti": 87, "opportunity_id": 87, "pricebook_nam": 87, "custom_total_pric": 87, "opportun": 87, "pricelist": 87, "auth_with_connected_app": 87, "embed_api_token": 87, "emb": [87, 104], "robocop": 87, "create_new_opportun": 87, "close_d": 87, "opportunity_nam": 87, "stage_nam": 87, "create_salesforce_object": 87, "object_data": 87, "salesforcedatanotandictionari": 87, "delete_salesforce_object": 87, "salesfoc": 87, "describe_salesforce_object": 87, "execute_apex": 87, "apex": [87, 104], "apex_data": 87, "apex_method": 87, "myclass": 87, "getaccount": 87, "0017r00002xmxb1qam": 87, "execute_dataloader_insert": 87, "datahandl": 87, "dataloader_success": 87, "dataloader_error": 87, "get_dataloader_success_t": 87, "get_dataloader_error_t": 87, "get_domain": 87, "get_opportunity_id": 87, "get_pricebook_entri": 87, "pricebook": 87, "get_pricebook_id": 87, "get_products_in_pricelist": 87, "get_salesforce_object_metadata": 87, "read_dictionary_from_fil": 87, "mapping_fil": 87, "salesforce_queri": 87, "sql_string": 87, "salesforce_query_result_as_t": 87, "session_id": 87, "set_account": 87, "account_id": 87, "set_domain": 87, "salsesforc": 87, "set_pricebook": 87, "upsert_salesforce_object": 87, "frankvanderkuur": 89, "sapguilibrari": [89, 104], "logon": 89, "autoit": 89, "wnd": 89, "tbar": 89, "btn": 89, "backslash": [89, 100], "element_id": 89, "click_toolbar_button": 89, "table_id": 89, "button_id": 89, "toolbar": 89, "gridview": 89, "connect_to_existing_connect": 89, "connection_nam": 89, "connect_to_sess": 89, "explicit_wait": 89, "500m": 89, "disable_screenshots_on_error": 89, "doubleclick_el": 89, "column_id": [89, 93], "element_should_be_pres": 89, "element_value_should_b": 89, "expected_valu": 89, "uncheck": [89, 104], "radiobutton": 89, "combobox": 89, "element_value_should_contain": 89, "enable_screenshots_on_error": 89, "focus_and_click": 89, "wait_tim": 89, "adjust": [89, 104], "focus_and_input_text": 89, "generic_click_el": 89, "generic_input_password": 89, "generic_input_text": 89, "row_num": 89, "col_id": 89, "get_element_loc": 89, "get_element_typ": 89, "get_element_type_of_object": 89, "get_row_count": 89, "get_scroll_posit": 89, "get_statusbar_typ": 89, "messagetyp": 89, "statusbar": 89, "sbar": 89, "get_valu": 89, "guibutton": 89, "guititlebar": 89, "guistatusbar": 89, "guitab": 89, "get_window_titl": 89, "input_password": 89, "maximize_window": 89, "sapgui": 89, "open_connect": 89, "run_transact": 89, "unknown": [89, 95, 104], "select_context_menu_item": 89, "menu_or_button_id": 89, "select_from_list_by_label": 89, "select_nod": 89, "tree_id": 89, "node_id": 89, "expand": [89, 104], "tabletreecontrol": 89, "select_node_link": 89, "link_id1": 89, "link_id2": 89, "select_radio_button": 89, "select_table_column": 89, "select_table_row": 89, "tablecontrol": 89, "send_vkei": 89, "vkey_id": 89, "virtual": [89, 100], "vkei": 89, "f2": [89, 100], "72": 89, "f3": [89, 100], "28": 89, "74": 89, "f5": [89, 100], "75": 89, "f6": [89, 100], "76": 89, "del": [89, 100], "f7": [89, 100], "77": 89, "Ins": 89, "f8": [89, 100], "78": [89, 104], "33": 89, "f9": [89, 100], "79": 89, "34": 89, "f10": [89, 100], "80": 89, "f11": [89, 100], "81": 89, "f12": [89, 100], "82": 89, "37": 89, "38": [89, 104], "84": 89, "39": [89, 104], "85": 89, "86": 89, "41": [89, 104], "87": 89, "88": 89, "k": 89, "43": 89, "89": 89, "44": 89, "90": 89, "91": 89, "46": 89, "92": 89, "93": 89, "94": [89, 104], "70": [89, 104], "71": 89, "set_explicit_wait": 89, "700": 89, "milisecond": 89, "milli": 89, "sec": 89, "set_focu": 89, "take_screenshot": 89, "screenshot_nam": 89, "unselect_checkbox": 89, "slack_message_using_webhook": 91, "icon_emoji": 91, "slack_raw_messag": 91, "max_retry_tim": 93, "necessarili": 93, "unavail": [93, 104], "permalink": 93, "row_exclud": 93, "filteredoutrow": 93, "linkinfromcelldetail": 93, "linksouttocellsdetail": 93, "nonexistentcel": 93, "row_includ": 93, "attachmentfil": 93, "filteredout": 93, "rowid": 93, "rowpermalink": 93, "search_includ": 93, "favoriteflag": 93, "search_scop": 93, "celldata": 93, "comment": 93, "foldernam": 93, "reportnam": 93, "sightnam": 93, "summaryfield": 93, "templatenam": 93, "workspacenam": 93, "sheet_includ": 93, "add_column": 93, "column_typ": 93, "text_numb": 93, "format_str": 93, "symbol": [93, 104], "picklist": 93, "multi_picklist": 93, "add_row": 93, "ordereddict": 93, "snake": 93, "row1": 93, "value1": 93, "value2": 93, "row2": 93, "value3": 93, "value4": 93, "row3": 93, "value5": 93, "value6": 93, "set_row": 93, "convert_row_to_dict": 93, "convert_sheet_to_t": 93, "differnt": 93, "create_sheet": 93, "from_sheet_id": 93, "download_attach": 93, "123456789": 93, "get_attach": 93, "get_application_const": 93, "serverinfo": 93, "scenario": [93, 104], "get_cell_histori": 93, "cell_histori": 93, "revis": 93, "modified_bi": 93, "get_current_us": 93, "get_sheet": 93, "sheet_id": 93, "row_id": 93, "row_numb": 93, "filter_id": 93, "get_sheet_own": 93, "list_attach": 93, "list_column": 93, "list_sheet_filt": 93, "sheetfilt": 93, "filtered_sheet": 93, "my_sheet_id": 93, "list_sheet": 93, "reload": 93, "smartsheetlibrari": 93, "account_token": 93, "refresh_sheet": 93, "modified_sinc": 93, "personalworkspac": 93, "favorit": [93, 100], "parentobjectfavorit": 93, "sight": 93, "summari": 93, "set_access_token": 93, "set_max_retry_tim": 93, "rownumb": 93, "456": [93, 104], "789": 93, "unselect_current_sheet": 93, "update_column": 93, "five": 95, "bespok": 95, "read_table_from_csv": 95, "group_table_by_column": 95, "add_cart": 95, "make_ord": 95, "add_table_column": 95, "TOS": 95, "is_first": 95, "isfirst": 95, "add_table_row": 95, "clear_tabl": 95, "copy_t": 95, "table_copi": 95, "namedtupl": [95, 104], "table_data_nam": 95, "table_data_ag": 95, "table_data": 95, "export_t": 95, "with_index": 95, "as_list": 95, "customerid": 95, "filter_empty_row": 95, "filter_table_by_column": 95, "uwnant": 95, "product_typ": 95, "filter_table_with_keyword": 95, "falsi": [95, 104], "find_table_row": 95, "get_table_cel": 95, "get_table_column": 95, "get_table_dimens": 95, "get_table_row": 95, "get_table_slic": 95, "exclus": 95, "map_column_valu": 95, "merge_t": 95, "egg": 95, "chees": 95, "ham": 95, "stock": 95, "pop_table_column": 95, "userid": 95, "pop_table_row": 95, "firt": 95, "dialect": [95, 104], "column_unknown": 95, "deduc": 95, "rename_table_column": 95, "uno": 95, "set_row_as_column_nam": 95, "set_table_cel": 95, "set_table_column": 95, "set_table_row": 95, "sort_table_by_column": 95, "order_d": 95, "table_tail": 95, "tail": [95, 104], "trim_column_nam": 95, "extran": 95, "whitespac": [95, 104], "colum": 95, "trim_empty_row": 95, "write_table_to_csv": 95, "tweepi": 98, "twitter_consumer_kei": 98, "twitter_consumer_secret": 98, "twitter_access_token": 98, "twitter_access_token_secret": 98, "tweet": 98, "niinisto": 98, "get_user_tweet": 98, "tw": 98, "text_search_tweet": 98, "corona": 98, "trump": 98, "get_user_profil": 98, "access_token_secret": 98, "consum": [98, 100], "geocod": 98, "result_typ": 98, "since_id": 98, "max_id": 98, "popular": 98, "radiu": 98, "latitud": 98, "longitud": 98, "status": 98, "unfollow": 98, "unlik": 98, "standalon": 100, "terminologi": [100, 104], "controltyp": 100, "listitem": 100, "windowsel": 100, "fact": 100, "root_el": 100, "automationid": 100, "controltypenam": 100, "classnam": 100, "xcenter": 100, "ycenter": 100, "datagridrow": 100, "regexnam": 100, "subnam": [100, 104], "foundindex": 100, "searchdepth": 100, "travers": 100, "resort": 100, "cascad": 100, "effici": 100, "huge": 100, "spotifi": 100, "thing": 100, "clearbutton": 100, "units1": 100, "unit": 100, "370": [100, 104], "bigger": 100, "deeplynestedbutton": 100, "aren": [100, 104], "reliabl": [100, 104], "achiev": 100, "3rd": [100, 104], "yourself": 100, "uiautom": 100, "lbutton": 100, "rbutton": 100, "cancel": 100, "mbutton": 100, "xbutton1": 100, "x1": 100, "xbutton2": 100, "x2": 100, "capit": 100, "kana": 100, "im": 100, "hanguel": 100, "vk_hangul": 100, "hangul": 100, "junja": 100, "hanja": 100, "kanji": 100, "nonconvert": 100, "modechang": 100, "spacebar": 100, "pageup": 100, "pagedown": 100, "snapshot": 100, "printscreen": 100, "INS": 100, "lwin": 100, "rwin": 100, "numpad0": 100, "keypad": 100, "numpad1": 100, "numpad2": 100, "numpad3": 100, "numpad4": 100, "numpad5": 100, "numpad6": 100, "numpad7": 100, "numpad8": 100, "numpad9": 100, "subtract": 100, "f13": 100, "f14": 100, "f15": 100, "f16": 100, "f17": 100, "f18": 100, "f19": 100, "f21": 100, "f22": 100, "f23": 100, "f24": 100, "numlock": 100, "lshift": 100, "rshift": 100, "lcontrol": 100, "lctrl": 100, "rcontrol": 100, "rctrl": 100, "lalt": 100, "ralt": 100, "browser_back": 100, "browser_forward": 100, "forward": [100, 104], "browser_refresh": 100, "browser_stop": 100, "browser_search": 100, "browser_favorit": 100, "browser_hom": 100, "volume_mut": 100, "volum": 100, "volume_down": 100, "volume_up": 100, "media_next_track": 100, "media_prev_track": 100, "media_stop": 100, "media": 100, "media_play_paus": 100, "plai": 100, "launch_mail": 100, "launch_media_select": 100, "launch_app1": 100, "launch_app2": 100, "oem_1": 100, "miscellan": [100, 104], "vari": 100, "oem_plu": 100, "oem_comma": 100, "oem_minu": 100, "oem_period": 100, "oem_2": 100, "oem_3": 100, "oem_4": 100, "oem_5": 100, "oem_6": 100, "oem_7": 100, "oem_8": 100, "oem_102": 100, "angl": 100, "rt": 100, "102": 100, "processkei": 100, "packet": 100, "keystrok": 100, "vk_packet": 100, "low": 100, "remark": 100, "keybdinput": 100, "sendinput": 100, "wm_keydown": 100, "wm_keyup": 100, "attn": 100, "crsel": 100, "exsel": 100, "ereof": 100, "eras": 100, "eof": 100, "zoom": 100, "nonam": 100, "pa1": 100, "oem_clear": 100, "specialkeynam": 100, "ab": 100, "abc": 100, "0123456789": 100, "abcdefghijklmnopqrstuvwxyz": 100, "accesskei": 100, "kept": [100, 104], "inspector": 100, "log_as_warn": 100, "rudimentari": 100, "windowcontrol": 100, "applicationframewindow": 100, "9569486": 100, "titlebar": 100, "applicationframetitlebarwindow": 100, "textcontrol": 100, "eight": 100, "num8button": 100, "buttoncontrol": 100, "nine": 100, "num9button": 100, "abot": 100, "loom": 100, "2807372359f34b9cbe1bc2df9194ec68": 100, "distort": 100, "disturb": 100, "obstruct": 100, "96": 100, "test_do_some_calcul": 100, "windows_run": 100, "control_window": 100, "get_attribut": 100, "close_current_window": 100, "simulate_mov": 100, "write_text": 102, "save_document_a": 102, "fileformat": 102, "wdformatdocumentdefault": 102, "wdformathtml": 102, "opendocu": 102, "wdformatopendocumenttext": 102, "wdformatpdf": 102, "rtf": 102, "wdformatrtf": 102, "word97": 102, "wdformatdocument97": 102, "create_new_docu": 102, "export_to_pdf": 102, "get_all_text": 102, "replace_text": 102, "save_docu": 102, "set_foot": 102, "set_head": 102, "newlin": [102, 104], "1123": 104, "dirti": 104, "nit": 104, "inherit": 104, "anymor": 104, "slip": 104, "strongli": 104, "suggest": 104, "upgrad": 104, "pin": 104, "1060": 104, "enhanc": 104, "inner": 104, "bugfix": 104, "casual": 104, "1105": 104, "bump": 104, "1102": 104, "working_dir": 104, "1091": 104, "1078": 104, "1079": 104, "1075": 104, "remind": 104, "wdm_ssl_verifi": 104, "1092": 104, "rc_disable_ssl": 104, "truststor": 104, "inject": 104, "happen": 104, "1083": 104, "1084": 104, "whitelist": 104, "rpa_external_webdriv": 104, "1080": 104, "64bit": 104, "rpa_allow_64bit_i": 104, "32bit": 104, "1087": 104, "1082": 104, "repurpos": 104, "1057": 104, "mimetyp": 104, "overal": 104, "994": 104, "950": 104, "1068": 104, "1069": 104, "1059": 104, "1058": 104, "1055": 104, "better": 104, "tabnam": 104, "719": 104, "1051": 104, "reader": 104, "1003": 104, "1054": 104, "1035": 104, "115": 104, "1021": 104, "rpa_selenium_binary_loc": 104, "render": 104, "1016": 104, "gone": 104, "957": 104, "980": 104, "cryptographi": 104, "979": 104, "978": 104, "974": 104, "949": 104, "941": 104, "942": 104, "166": 104, "973": 104, "azureai": 104, "943": 104, "overcom": 104, "884": 104, "762": 104, "865": 104, "940": 104, "939": 104, "944": 104, "resultset": 104, "948": 104, "930": 104, "938": 104, "947": 104, "favor": 104, "mention": 104, "involv": 104, "945": 104, "935": 104, "926": 104, "916": 104, "883": 104, "586": 104, "919": 104, "pollut": 104, "920": 104, "913": 104, "actionnotposs": 104, "wouldn": 104, "914": 104, "typeerror": 104, "pickl": 104, "dict_kei": 104, "912": 104, "alongsid": 104, "flatten": 104, "besid": 104, "require_open_xlsx_workbook": 104, "908": 104, "switch_window_by_titl": 104, "899": 104, "909": 104, "880": 104, "light": 104, "preserv": 104, "boxes_flow": 104, "picker": 104, "sometim": 104, "assertionerror": 104, "859": 104, "694": 104, "psycopg2": 104, "privaci": 104, "878": 104, "difficult": 104, "regress": 104, "silent": 104, "869": 104, "movement": 104, "855": 104, "send_keys_fallback": 104, "483": 104, "clearer": 104, "usabl": 104, "796": 104, "combo": 104, "791": 104, "591": 104, "797": 104, "pyyaml": 104, "langchain": 104, "867": 104, "refactor": 104, "earlier": 104, "clariti": 104, "reduc": 104, "unnecessari": 104, "didn": 104, "obei": 104, "840": 104, "821": 104, "845": 104, "lower": 104, "misbehav": 104, "838": 104, "828": 104, "833": 104, "803": 104, "792": 104, "four": 104, "cover": 104, "dall": 104, "webview": 104, "broken": 104, "boilerpl": 104, "635": 104, "robocloud_vault_nam": 104, "use_robocloud_vault": 104, "794": 104, "785": 104, "subtext": 104, "787": 104, "781": 104, "rpa_selenium_browser_ord": 104, "745": 104, "773": 104, "772": 104, "767": 104, "parti": 104, "behav": 104, "pynput": 104, "mislead": 104, "740": 104, "736": 104, "706": 104, "604": 104, "658": 104, "710": 104, "711": 104, "712": 104, "693": 104, "siblings_onli": 104, "ON": 104, "sibl": 104, "692": 104, "687": 104, "pywintypesxx": 104, "683": 104, "685": 104, "cve": 104, "557": 104, "669": 104, "666": 104, "667": 104, "656": 104, "661": 104, "mac": 104, "arm64": 104, "663": 104, "660": 104, "176": 104, "653": 104, "655": 104, "570": 104, "649": 104, "psycopg": 104, "postgresql": 104, "648": 104, "647": 104, "643": 104, "641": 104, "637": 104, "638": 104, "639": 104, "619": 104, "618": 104, "622": 104, "615": 104, "609": 104, "robocorp_click_offset": 104, "610": 104, "494": 104, "602": 104, "607": 104, "got": 104, "385": 104, "oracl": 104, "oracledb": 104, "leak": 104, "599": 104, "603": 104, "lxml": 104, "495": 104, "226": 104, "220": 104, "597": 104, "stem": 104, "583": 104, "593": 104, "592": 104, "rpa_locators_databas": 104, "558": 104, "rational": 104, "538": 104, "unexpectedli": 104, "584": 104, "problemat": 104, "479": 104, "224": 104, "trail": 104, "572": 104, "567": 104, "568": 104, "560": 104, "libspec": 104, "549": 104, "492": 104, "493": 104, "typehint": 104, "548": 104, "jsontyp": 104, "lab": 104, "508": 104, "496": 104, "498": 104, "536": 104, "545": 104, "concern": 104, "515": 104, "481": 104, "504": 104, "505": 104, "506": 104, "507": 104, "490": 104, "485": 104, "484": 104, "491": 104, "indexerror": 104, "470": 104, "477": 104, "469": 104, "473": 104, "439": 104, "471": 104, "408": 104, "363": 104, "452": 104, "pyodbc": 104, "443": 104, "hang": 104, "_contain": 104, "notimplementederror": 104, "392": 104, "394": 104, "391": 104, "pywin32": 104, "comtyp": 104, "interrupt": 104, "spawn": 104, "aid": 104, "comerror": 104, "381": 104, "380": 104, "355": 104, "atleast": 104, "286": 104, "282": 104, "337": 104, "serial": 104, "cleanup": 104, "322": 104, "315": 104, "304": 104, "codec": 104, "243": 104, "only_closest": 104, "closest_neighbour": 104, "pinpoint": 104, "neighbour": 104, "298": 104, "295": 104, "285": 104, "303": 104, "octet": 104, "junk": 104, "dump": 104, "287": 104, "279": 104, "290": 104, "275": 104, "250": 104, "252": 104, "253": 104, "248": 104, "dependt": 104, "bypass": 104, "241": 104, "225": 104, "textbox": 104, "235": 104, "rpa_input_workitem_path": 104, "234": 104, "237": 104, "tzlocal": 104, "carriag": 104, "203": 104, "ibm_db": 104, "pythonlibcor": 104, "pymssql": 104, "received_bi": 104, "experiment": 104, "appreci": 104, "synthes": 104, "alias": 104, "dock": 104, "pyobjc": 104, "confus": 104, "shortcom": 104, "171": 104, "rotat": 104, "figur": 104, "pdfminer": 104, "161": 104, "suppress": 104, "thank": 104, "antusystem": 104, "annot": 104, "156": 104, "reboot": 104, "unifi": 104, "mismatch": 104, "nonetyp": 104, "146": 104, "148": 104, "activedocu": 104, "notebook": 104, "element1": 104, "constrain": 104, "chardet": 104, "destructor": 104, "gather": 104, "buffer": 104, "period": 104, "docutil": 104, "lsp": 104, "evdev": 104, "logarithm": 104, "stylesheet": 104, "shm": 104, "unsav": 104, "predefin": 104, "databaselibrari": 104, "pyscreenshot": 104, "mss": 104, "termin": 104, "filetyp": 104, "unpack": 104, "earli": 104, "superflu": 104, "jupyt": 104, "robocod": 104, "embed": 104, "infobar": 104, "use_test": 104, "mitig": 104, "msoffic": 104, "mdp": 104, "ga": 104, "kw": 104, "imapstmp": 104, "harmon": 104, "psutil": 104, "wheel": 104, "interpol": 104, "sanit": 104, "webdrivermanag": 104, "restructur": 104}, "objects": {"RPA.Archive": [[5, 0, 1, "", "Archive"]], "RPA.Archive.Archive": [[5, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [5, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [5, 2, 1, "", "add_to_archive"], [5, 2, 1, "", "archive_folder_with_tar"], [5, 2, 1, "", "archive_folder_with_zip"], [5, 2, 1, "", "extract_archive"], [5, 2, 1, "", "extract_file_from_archive"], [5, 2, 1, "", "get_archive_info"], [5, 2, 1, "", "list_archive"]], "RPA.Assistant": [[7, 0, 1, "", "Assistant"]], "RPA.Assistant.Assistant": [[7, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [7, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [7, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [7, 2, 1, "", "add_button"], [7, 2, 1, "", "add_checkbox"], [7, 2, 1, "", "add_date_input"], [7, 2, 1, "", "add_drop_down"], [7, 2, 1, "", "add_file"], [7, 2, 1, "", "add_file_input"], [7, 2, 1, "", "add_files"], [7, 2, 1, "", "add_flet_icon"], [7, 2, 1, "", "add_heading"], [7, 2, 1, "", "add_hidden_input"], [7, 2, 1, "", "add_icon"], [7, 2, 1, "", "add_image"], [7, 2, 1, "", "add_link"], [7, 2, 1, "", "add_loading_bar"], [7, 2, 1, "", "add_loading_spinner"], [7, 2, 1, "", "add_next_ui_button"], [7, 2, 1, "", "add_password_input"], [7, 2, 1, "", "add_radio_buttons"], [7, 2, 1, "", "add_slider"], [7, 2, 1, "", "add_submit_buttons"], [7, 2, 1, "", "add_text"], [7, 2, 1, "", "add_text_input"], [7, 2, 1, "", "ask_user"], [7, 2, 1, "", "clear_dialog"], [7, 2, 1, "", "close_column"], [7, 2, 1, "", "close_container"], [7, 2, 1, "", "close_navbar"], [7, 2, 1, "", "close_row"], [7, 2, 1, "", "close_stack"], [7, 2, 1, "", "open_column"], [7, 2, 1, "", "open_container"], [7, 2, 1, "", "open_navbar"], [7, 2, 1, "", "open_row"], [7, 2, 1, "", "open_stack"], [7, 2, 1, "", "refresh_dialog"], [7, 2, 1, "", "run_dialog"], [7, 2, 1, "", "set_title"]], "RPA.Browser.Selenium": [[11, 0, 1, "", "Selenium"]], "RPA.Browser.Selenium.Selenium": [[11, 1, 1, "", "AVAILABLE_OPTIONS"], [11, 1, 1, "", "AVAILABLE_SERVICES"], [11, 1, 1, "", "BROWSER_NAMES"], [11, 1, 1, "", "CHROMIUM_BROWSERS"], [11, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [11, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [11, 1, 1, "", "ROBOT_LIBRARY_VERSION"], [11, 1, 1, "", "SUPPORTED_BROWSERS"], [11, 2, 1, "", "add_library_components"], [11, 2, 1, "", "attach_chrome_browser"], [11, 2, 1, "", "clear_all_highlights"], [11, 2, 1, "", "click_button_when_visible"], [11, 2, 1, "", "click_element_if_visible"], [11, 2, 1, "", "click_element_when_clickable"], [11, 2, 1, "", "click_element_when_visible"], [11, 2, 1, "", "does_alert_contain"], [11, 2, 1, "", "does_alert_not_contain"], [11, 2, 1, "", "does_element_contain"], [11, 2, 1, "", "does_frame_contain"], [11, 2, 1, "", "does_location_contain"], [11, 2, 1, "", "does_page_contain"], [11, 2, 1, "", "does_page_contain_button"], [11, 2, 1, "", "does_page_contain_checkbox"], [11, 2, 1, "", "does_page_contain_element"], [11, 2, 1, "", "does_page_contain_image"], [11, 2, 1, "", "does_page_contain_link"], [11, 2, 1, "", "does_page_contain_list"], [11, 2, 1, "", "does_page_contain_radio_button"], [11, 2, 1, "", "does_page_contain_textfield"], [11, 2, 1, "", "does_table_cell_contain"], [11, 2, 1, "", "does_table_column_contain"], [11, 2, 1, "", "does_table_contain"], [11, 2, 1, "", "does_table_footer_contain"], [11, 2, 1, "", "does_table_header_contain"], [11, 2, 1, "", "does_table_row_contain"], [11, 2, 1, "", "does_textarea_contain"], [11, 2, 1, "", "does_textfield_contain"], [11, 3, 1, "", "driver"], [11, 2, 1, "", "execute_cdp"], [11, 2, 1, "", "failure_occurred"], [11, 2, 1, "", "find_element"], [11, 2, 1, "", "find_elements"], [11, 2, 1, "", "get_browser_capabilities"], [11, 2, 1, "", "get_element_status"], [11, 2, 1, "", "get_keyword_arguments"], [11, 2, 1, "", "get_keyword_documentation"], [11, 2, 1, "", "get_keyword_names"], [11, 2, 1, "", "get_keyword_source"], [11, 2, 1, "", "get_keyword_tags"], [11, 2, 1, "", "get_keyword_types"], [11, 2, 1, "", "get_testability_status"], [11, 2, 1, "", "get_webelement"], [11, 2, 1, "", "highlight_elements"], [11, 2, 1, "", "input_text_when_element_is_visible"], [11, 2, 1, "", "is_alert_present"], [11, 2, 1, "", "is_checkbox_selected"], [11, 3, 1, "", "is_chromium"], [11, 2, 1, "", "is_element_attribute_equal_to"], [11, 2, 1, "", "is_element_disabled"], [11, 2, 1, "", "is_element_enabled"], [11, 2, 1, "", "is_element_focused"], [11, 2, 1, "", "is_element_text"], [11, 2, 1, "", "is_element_visible"], [11, 2, 1, "", "is_list_selected"], [11, 2, 1, "", "is_list_selection"], [11, 2, 1, "", "is_location"], [11, 2, 1, "", "is_radio_button_selected"], [11, 2, 1, "", "is_radio_button_set_to"], [11, 2, 1, "", "is_textarea_value"], [11, 2, 1, "", "is_textfield_value"], [11, 2, 1, "", "is_title"], [11, 3, 1, "", "location"], [11, 2, 1, "", "normalize_options"], [11, 2, 1, "", "open_available_browser"], [11, 2, 1, "", "open_chrome_browser"], [11, 2, 1, "", "open_headless_chrome_browser"], [11, 2, 1, "", "open_user_browser"], [11, 2, 1, "", "print_to_pdf"], [11, 2, 1, "", "register_driver"], [11, 2, 1, "", "run_keyword"], [11, 2, 1, "", "screenshot"], [11, 2, 1, "", "set_download_directory"], [11, 2, 1, "", "set_element_attribute"], [11, 2, 1, "", "wait_and_click_button"]], "RPA.Calendar": [[13, 0, 1, "", "Calendar"]], "RPA.Calendar.Calendar": [[13, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [13, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [13, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [13, 2, 1, "", "add_custom_holidays"], [13, 2, 1, "", "compare_times"], [13, 2, 1, "", "create_time"], [13, 2, 1, "", "first_business_day_of_the_month"], [13, 2, 1, "", "get_iso_calendar"], [13, 2, 1, "", "is_the_date_business_day"], [13, 2, 1, "", "is_the_date_holiday"], [13, 2, 1, "", "last_business_day_of_the_month"], [13, 2, 1, "", "reset_custom_holidays"], [13, 2, 1, "", "return_holidays"], [13, 2, 1, "", "return_next_business_day"], [13, 2, 1, "", "return_previous_business_day"], [13, 2, 1, "", "set_business_days"], [13, 2, 1, "", "set_locale"], [13, 2, 1, "", "sort_list_of_dates"], [13, 2, 1, "", "time_difference"], [13, 2, 1, "", "time_difference_between_timezones"], [13, 2, 1, "", "time_difference_in_days"], [13, 2, 1, "", "time_difference_in_hours"], [13, 2, 1, "", "time_difference_in_minutes"], [13, 2, 1, "", "time_difference_in_months"], [13, 2, 1, "", "time_now"]], "RPA.Cloud.AWS": [[15, 0, 1, "", "AWS"]], "RPA.Cloud.AWS.AWS": [[15, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [15, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [15, 2, 1, "", "analyze_document"], [15, 2, 1, "", "assume_role"], [15, 1, 1, "", "clients"], [15, 2, 1, "", "convert_textract_response_to_model"], [15, 2, 1, "", "create_bucket"], [15, 2, 1, "", "create_queue"], [15, 2, 1, "", "create_redshift_statement_parameters"], [15, 2, 1, "", "delete_bucket"], [15, 2, 1, "", "delete_files"], [15, 2, 1, "", "delete_message"], [15, 2, 1, "", "delete_queue"], [15, 2, 1, "", "describe_redshift_table"], [15, 2, 1, "", "detect_document_text"], [15, 2, 1, "", "detect_entities"], [15, 2, 1, "", "detect_sentiment"], [15, 2, 1, "", "download_files"], [15, 2, 1, "", "execute_redshift_statement"], [15, 2, 1, "", "execute_redshift_statement_asyncronously"], [15, 2, 1, "", "generate_presigned_url"], [15, 2, 1, "", "get_cells"], [15, 2, 1, "", "get_document_analysis"], [15, 2, 1, "", "get_document_text_detection"], [15, 2, 1, "", "get_pages_and_text"], [15, 2, 1, "", "get_redshift_statement_results"], [15, 2, 1, "", "get_tables"], [15, 2, 1, "", "get_words"], [15, 2, 1, "", "init_comprehend_client"], [15, 2, 1, "", "init_redshift_data_client"], [15, 2, 1, "", "init_s3_client"], [15, 2, 1, "", "init_sqs_client"], [15, 2, 1, "", "init_sts_client"], [15, 2, 1, "", "init_textract_client"], [15, 2, 1, "", "list_buckets"], [15, 2, 1, "", "list_files"], [15, 2, 1, "", "list_redshift_databases"], [15, 2, 1, "", "list_redshift_schemas"], [15, 2, 1, "", "list_redshift_tables"], [15, 1, 1, "", "logger"], [15, 2, 1, "", "receive_message"], [15, 1, 1, "", "region"], [15, 1, 1, "", "robocorp_vault_name"], [15, 2, 1, "", "send_message"], [15, 1, 1, "", "services"], [15, 2, 1, "", "set_robocorp_vault"], [15, 2, 1, "", "start_document_analysis"], [15, 2, 1, "", "start_document_text_detection"], [15, 2, 1, "", "upload_file"], [15, 2, 1, "", "upload_files"]], "RPA.Cloud.Azure": [[17, 0, 1, "", "Azure"]], "RPA.Cloud.Azure.Azure": [[17, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [17, 1, 1, "", "ROBOT_LIBRARY_SCOPE"]], "RPA.Cloud.Google": [[19, 0, 1, "", "Google"]], "RPA.Cloud.Google.Google": [[19, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [19, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [19, 2, 1, "", "add_library_components"], [19, 2, 1, "", "get_keyword_arguments"], [19, 2, 1, "", "get_keyword_documentation"], [19, 2, 1, "", "get_keyword_names"], [19, 2, 1, "", "get_keyword_source"], [19, 2, 1, "", "get_keyword_tags"], [19, 2, 1, "", "get_keyword_types"], [19, 2, 1, "", "run_keyword"]], "RPA.Crypto": [[21, 0, 1, "", "Crypto"]], "RPA.Crypto.Crypto": [[21, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [21, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [21, 2, 1, "", "decrypt_file"], [21, 2, 1, "", "decrypt_string"], [21, 2, 1, "", "encrypt_file"], [21, 2, 1, "", "encrypt_string"], [21, 2, 1, "", "generate_key"], [21, 2, 1, "", "hash_file"], [21, 2, 1, "", "hash_string"], [21, 2, 1, "", "use_encryption_key"], [21, 2, 1, "", "use_encryption_key_from_vault"]], "RPA.Database": [[23, 0, 1, "", "Database"]], "RPA.Database.Database": [[23, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [23, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [23, 2, 1, "", "call_stored_procedure"], [23, 2, 1, "", "connect_to_database"], [23, 2, 1, "", "description"], [23, 2, 1, "", "disconnect_from_database"], [23, 2, 1, "", "execute_sql_script"], [23, 2, 1, "", "get_number_of_rows"], [23, 2, 1, "", "get_rows"], [23, 2, 1, "", "query"], [23, 2, 1, "", "set_auto_commit"]], "RPA.Desktop.Clipboard": [[27, 0, 1, "", "Clipboard"]], "RPA.Desktop.Clipboard.Clipboard": [[27, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [27, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [27, 2, 1, "", "clear_clipboard"], [27, 2, 1, "", "copy_to_clipboard"], [27, 2, 1, "", "paste_from_clipboard"]], "RPA.Desktop": [[25, 0, 1, "", "Desktop"]], "RPA.Desktop.Desktop": [[25, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [25, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [25, 2, 1, "", "add_library_components"], [25, 2, 1, "", "get_keyword_arguments"], [25, 2, 1, "", "get_keyword_documentation"], [25, 2, 1, "", "get_keyword_names"], [25, 2, 1, "", "get_keyword_source"], [25, 2, 1, "", "get_keyword_tags"], [25, 2, 1, "", "get_keyword_types"], [25, 2, 1, "", "run_keyword"]], "RPA.Desktop.OperatingSystem": [[29, 0, 1, "", "OperatingSystem"]], "RPA.Desktop.OperatingSystem.OperatingSystem": [[29, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [29, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [29, 2, 1, "", "boot_time_in_seconds_from_epoch"], [29, 2, 1, "", "get_boot_time"], [29, 2, 1, "", "get_machine_name"], [29, 2, 1, "", "get_memory_stats"], [29, 2, 1, "", "get_username"], [29, 2, 1, "", "kill_process"], [29, 2, 1, "", "kill_process_by_pid"], [29, 2, 1, "", "process_exists"], [29, 2, 1, "", "process_id_exists"], [29, 2, 1, "", "put_system_to_sleep"]], "RPA.Desktop.Windows": [[31, 0, 1, "", "Windows"]], "RPA.Desktop.Windows.Windows": [[31, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [31, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [31, 2, 1, "", "boot_time_in_seconds_from_epoch"], [31, 2, 1, "", "calculate_rectangle_center"], [31, 2, 1, "", "click_type"], [31, 2, 1, "", "close_all_applications"], [31, 2, 1, "", "connect_by_handle"], [31, 2, 1, "", "connect_by_pid"], [31, 2, 1, "", "drag_and_drop"], [31, 2, 1, "", "find_element"], [31, 2, 1, "", "get_app"], [31, 2, 1, "", "get_boot_time"], [31, 2, 1, "", "get_dialog_rectangle"], [31, 2, 1, "", "get_element"], [31, 2, 1, "", "get_element_center"], [31, 2, 1, "", "get_element_rectangle"], [31, 2, 1, "", "get_element_rich_text"], [31, 2, 1, "", "get_machine_name"], [31, 2, 1, "", "get_memory_stats"], [31, 2, 1, "", "get_open_applications"], [31, 2, 1, "", "get_spaced_string"], [31, 2, 1, "", "get_text"], [31, 2, 1, "", "get_username"], [31, 2, 1, "", "get_window_elements"], [31, 2, 1, "", "get_window_list"], [31, 2, 1, "", "is_element_enabled"], [31, 2, 1, "", "is_element_matching"], [31, 2, 1, "", "is_element_visible"], [31, 2, 1, "", "kill_process"], [31, 2, 1, "", "kill_process_by_pid"], [31, 2, 1, "", "lock_screen"], [31, 2, 1, "", "log_in"], [31, 2, 1, "", "menu_select"], [31, 2, 1, "", "minimize_dialog"], [31, 2, 1, "", "mouse_click"], [31, 2, 1, "", "mouse_click_coords"], [31, 2, 1, "", "mouse_click_image"], [31, 2, 1, "", "open_application"], [31, 2, 1, "", "open_dialog"], [31, 2, 1, "", "open_executable"], [31, 2, 1, "", "open_file"], [31, 2, 1, "", "open_from_search"], [31, 2, 1, "", "open_using_run_dialog"], [31, 2, 1, "", "process_exists"], [31, 2, 1, "", "process_id_exists"], [31, 2, 1, "", "put_system_to_sleep"], [31, 2, 1, "", "quit_application"], [31, 2, 1, "", "refresh_window"], [31, 2, 1, "", "restore_dialog"], [31, 2, 1, "", "screenshot"], [31, 2, 1, "", "send_keys"], [31, 2, 1, "", "send_keys_to_input"], [31, 2, 1, "", "set_automation_speed"], [31, 2, 1, "", "set_windows_backend"], [31, 2, 1, "", "switch_to_application"], [31, 2, 1, "", "type_into"], [31, 2, 1, "", "type_keys"], [31, 2, 1, "", "wait_for_element"]], "RPA.Dialogs": [[33, 0, 1, "", "Dialogs"]], "RPA.Dialogs.Dialogs": [[33, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [33, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [33, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [33, 2, 1, "", "add_checkbox"], [33, 2, 1, "", "add_date_input"], [33, 2, 1, "", "add_dialog_next_page_button"], [33, 2, 1, "", "add_drop_down"], [33, 2, 1, "", "add_element"], [33, 2, 1, "", "add_file"], [33, 2, 1, "", "add_file_input"], [33, 2, 1, "", "add_files"], [33, 2, 1, "", "add_heading"], [33, 2, 1, "", "add_hidden_input"], [33, 2, 1, "", "add_icon"], [33, 2, 1, "", "add_image"], [33, 2, 1, "", "add_link"], [33, 2, 1, "", "add_password_input"], [33, 2, 1, "", "add_radio_buttons"], [33, 2, 1, "", "add_submit_buttons"], [33, 2, 1, "", "add_text"], [33, 2, 1, "", "add_text_input"], [33, 2, 1, "", "clear_elements"], [33, 2, 1, "", "close_all_dialogs"], [33, 2, 1, "", "close_dialog"], [33, 2, 1, "", "run_dialog"], [33, 2, 1, "", "show_dialog"], [33, 2, 1, "", "wait_all_dialogs"], [33, 2, 1, "", "wait_dialog"], [33, 2, 1, "", "wait_dialogs_as_completed"]], "RPA.DocumentAI.Base64AI": [[37, 0, 1, "", "Base64AI"]], "RPA.DocumentAI.Base64AI.Base64AI": [[37, 1, 1, "", "BASE_URL"], [37, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [37, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [37, 2, 1, "", "filter_matching_signatures"], [37, 2, 1, "", "get_fields_from_prediction_result"], [37, 2, 1, "", "get_matching_signatures"], [37, 2, 1, "", "get_signature_image"], [37, 2, 1, "", "get_user_data"], [37, 2, 1, "", "scan_document_file"], [37, 2, 1, "", "scan_document_url"], [37, 2, 1, "", "set_authorization"]], "RPA.DocumentAI.DocumentAI": [[35, 0, 1, "", "DocumentAI"]], "RPA.DocumentAI.DocumentAI.DocumentAI": [[35, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [35, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [35, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [35, 3, 1, "", "engine"], [35, 2, 1, "", "get_result"], [35, 2, 1, "", "init_engine"], [35, 2, 1, "", "predict"], [35, 3, 1, "", "result"], [35, 2, 1, "", "switch_engine"]], "RPA.DocumentAI.Nanonets": [[39, 0, 1, "", "Nanonets"]], "RPA.DocumentAI.Nanonets.Nanonets": [[39, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [39, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [39, 2, 1, "", "get_all_models"], [39, 2, 1, "", "get_fields_from_prediction_result"], [39, 2, 1, "", "get_tables_from_prediction_result"], [39, 2, 1, "", "ocr_fulltext"], [39, 2, 1, "", "predict_file"], [39, 2, 1, "", "set_authorization"]], "RPA.Email.Exchange": [[41, 0, 1, "", "Exchange"]], "RPA.Email.Exchange.Exchange": [[41, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [41, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [41, 1, 1, "", "TO_PROTECT"], [41, 2, 1, "", "authorize"], [41, 2, 1, "", "create_folder"], [41, 2, 1, "", "delete_folder"], [41, 2, 1, "", "empty_folder"], [41, 2, 1, "", "generate_oauth_url"], [41, 2, 1, "", "get_oauth_token"], [41, 2, 1, "", "list_messages"], [41, 2, 1, "", "list_unread_messages"], [41, 2, 1, "", "move_message"], [41, 2, 1, "", "move_messages"], [41, 2, 1, "", "refresh_oauth_token"], [41, 2, 1, "", "rename_folder"], [41, 2, 1, "", "save_attachments"], [41, 2, 1, "", "save_message"], [41, 2, 1, "", "send_message"], [41, 2, 1, "", "send_reply_message"], [41, 2, 1, "", "wait_for_message"]], "RPA.Email.ImapSmtp": [[43, 0, 1, "", "ImapSmtp"]], "RPA.Email.ImapSmtp.ImapSmtp": [[43, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [43, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [43, 1, 1, "", "TO_PROTECT"], [43, 2, 1, "", "add_gmail_labels"], [43, 2, 1, "", "authorize"], [43, 2, 1, "", "authorize_imap"], [43, 2, 1, "", "authorize_smtp"], [43, 2, 1, "", "convert_eml_file_into_message"], [43, 2, 1, "", "create_folder"], [43, 2, 1, "", "delete_folder"], [43, 2, 1, "", "delete_message"], [43, 2, 1, "", "delete_messages"], [43, 2, 1, "", "do_message_actions"], [43, 2, 1, "", "email_to_document"], [43, 2, 1, "", "flag_messages"], [43, 2, 1, "", "generate_oauth_string"], [43, 2, 1, "", "generate_oauth_url"], [43, 2, 1, "", "get_decoded_email_body"], [43, 2, 1, "", "get_folder_list"], [43, 2, 1, "", "get_oauth_token"], [43, 2, 1, "", "list_messages"], [43, 2, 1, "", "mark_as_read"], [43, 2, 1, "", "mark_as_unread"], [43, 2, 1, "", "move_messages"], [43, 2, 1, "", "move_messages_by_ids"], [43, 2, 1, "", "refresh_oauth_token"], [43, 2, 1, "", "remove_gmail_labels"], [43, 2, 1, "", "rename_folder"], [43, 2, 1, "", "save_attachment"], [43, 2, 1, "", "save_attachments"], [43, 2, 1, "", "save_messages"], [43, 2, 1, "", "select_folder"], [43, 2, 1, "", "send_message"], [43, 2, 1, "", "send_smtp_hello"], [43, 2, 1, "", "set_credentials"], [43, 2, 1, "", "unflag_messages"], [43, 2, 1, "", "wait_for_message"]], "RPA.Excel.Application": [[45, 0, 1, "", "Application"]], "RPA.Excel.Application.Application": [[45, 1, 1, "", "APP_DISPATCH"], [45, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [45, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [45, 2, 1, "", "add_new_sheet"], [45, 2, 1, "", "add_new_workbook"], [45, 3, 1, "", "app"], [45, 2, 1, "", "close_document"], [45, 2, 1, "", "export_as_pdf"], [45, 2, 1, "", "find_first_available_cell"], [45, 2, 1, "", "find_first_available_row"], [45, 2, 1, "", "open_application"], [45, 2, 1, "", "open_workbook"], [45, 2, 1, "", "quit_application"], [45, 2, 1, "", "read_from_cells"], [45, 2, 1, "", "run_macro"], [45, 2, 1, "", "save_excel"], [45, 2, 1, "", "save_excel_as"], [45, 2, 1, "", "set_active_worksheet"], [45, 2, 1, "", "write_to_cells"]], "RPA.Excel.Files": [[47, 0, 1, "", "Files"]], "RPA.Excel.Files.Files": [[47, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [47, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [47, 2, 1, "", "append_rows_to_worksheet"], [47, 2, 1, "", "auto_size_columns"], [47, 2, 1, "", "clear_cell_range"], [47, 2, 1, "", "close_workbook"], [47, 2, 1, "", "copy_cell_values"], [47, 2, 1, "", "create_workbook"], [47, 2, 1, "", "create_worksheet"], [47, 2, 1, "", "delete_columns"], [47, 2, 1, "", "delete_rows"], [47, 2, 1, "", "find_empty_row"], [47, 2, 1, "", "get_active_worksheet"], [47, 2, 1, "", "get_cell_value"], [47, 2, 1, "", "get_worksheet_value"], [47, 2, 1, "", "hide_columns"], [47, 2, 1, "", "insert_columns_after"], [47, 2, 1, "", "insert_columns_before"], [47, 2, 1, "", "insert_image_to_worksheet"], [47, 2, 1, "", "insert_rows_after"], [47, 2, 1, "", "insert_rows_before"], [47, 2, 1, "", "list_worksheets"], [47, 2, 1, "", "move_range"], [47, 2, 1, "", "open_workbook"], [47, 2, 1, "", "read_worksheet"], [47, 2, 1, "", "read_worksheet_as_table"], [47, 2, 1, "", "remove_worksheet"], [47, 2, 1, "", "rename_worksheet"], [47, 2, 1, "", "save_workbook"], [47, 2, 1, "", "set_active_worksheet"], [47, 2, 1, "", "set_cell_format"], [47, 2, 1, "", "set_cell_formula"], [47, 2, 1, "", "set_cell_value"], [47, 2, 1, "", "set_cell_values"], [47, 2, 1, "", "set_styles"], [47, 2, 1, "", "set_worksheet_value"], [47, 2, 1, "", "unhide_columns"], [47, 2, 1, "", "worksheet_exists"]], "RPA.FTP": [[51, 0, 1, "", "FTP"]], "RPA.FTP.FTP": [[51, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [51, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [51, 2, 1, "", "abort"], [51, 2, 1, "", "close"], [51, 2, 1, "", "connect"], [51, 2, 1, "", "cwd"], [51, 2, 1, "", "delete"], [51, 2, 1, "", "download"], [51, 2, 1, "", "file_size"], [51, 2, 1, "", "get_welcome_message"], [51, 2, 1, "", "list_files"], [51, 2, 1, "", "mkd"], [51, 2, 1, "", "pwd"], [51, 2, 1, "", "quit"], [51, 2, 1, "", "rename"], [51, 2, 1, "", "rmd"], [51, 2, 1, "", "send_command"], [51, 2, 1, "", "set_ascii_mode"], [51, 2, 1, "", "set_binary_mode"], [51, 2, 1, "", "set_debug_level"], [51, 2, 1, "", "upload"]], "RPA.FileSystem": [[49, 0, 1, "", "FileSystem"]], "RPA.FileSystem.FileSystem": [[49, 1, 1, "", "PATH_TYPE"], [49, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [49, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [49, 2, 1, "", "absolute_path"], [49, 2, 1, "", "append_to_binary_file"], [49, 2, 1, "", "append_to_file"], [49, 2, 1, "", "change_file_extension"], [49, 2, 1, "", "copy_directory"], [49, 2, 1, "", "copy_file"], [49, 2, 1, "", "copy_files"], [49, 2, 1, "", "create_binary_file"], [49, 2, 1, "", "create_directory"], [49, 2, 1, "", "create_file"], [49, 2, 1, "", "does_directory_exist"], [49, 2, 1, "", "does_directory_not_exist"], [49, 2, 1, "", "does_file_exist"], [49, 2, 1, "", "does_file_not_exist"], [49, 2, 1, "", "empty_directory"], [49, 2, 1, "", "find_files"], [49, 2, 1, "", "get_file_creation_date"], [49, 2, 1, "", "get_file_extension"], [49, 2, 1, "", "get_file_modified_date"], [49, 2, 1, "", "get_file_name"], [49, 2, 1, "", "get_file_owner"], [49, 2, 1, "", "get_file_size"], [49, 2, 1, "", "get_file_stem"], [49, 2, 1, "", "is_directory_empty"], [49, 2, 1, "", "is_directory_not_empty"], [49, 2, 1, "", "is_file_empty"], [49, 2, 1, "", "is_file_not_empty"], [49, 2, 1, "", "join_path"], [49, 2, 1, "", "list_directories_in_directory"], [49, 2, 1, "", "list_files_in_directory"], [49, 2, 1, "", "log_directory_tree"], [49, 2, 1, "", "move_directory"], [49, 2, 1, "", "move_file"], [49, 2, 1, "", "move_files"], [49, 2, 1, "", "normalize_path"], [49, 2, 1, "", "read_binary_file"], [49, 2, 1, "", "read_file"], [49, 2, 1, "", "remove_directory"], [49, 2, 1, "", "remove_file"], [49, 2, 1, "", "remove_files"], [49, 2, 1, "", "run_keyword_if_file_exists"], [49, 2, 1, "", "touch_file"], [49, 2, 1, "", "wait_until_created"], [49, 2, 1, "", "wait_until_modified"], [49, 2, 1, "", "wait_until_removed"]], "RPA.HTTP": [[53, 0, 1, "", "HTTP"]], "RPA.HTTP.HTTP": [[53, 1, 1, "", "DEFAULT_RETRY_METHOD_LIST"], [53, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [53, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [53, 2, 1, "", "check_vulnerabilities"], [53, 2, 1, "", "create_client_cert_session"], [53, 2, 1, "", "create_custom_session"], [53, 2, 1, "", "create_digest_session"], [53, 2, 1, "", "create_ntlm_session"], [53, 2, 1, "", "create_session"], [53, 2, 1, "", "delete_all_sessions"], [53, 2, 1, "", "delete_on_session"], [53, 2, 1, "", "delete_request"], [53, 2, 1, "", "download"], [53, 2, 1, "", "get_current_session_alias"], [53, 2, 1, "", "get_file_for_streaming_upload"], [53, 2, 1, "", "get_on_session"], [53, 2, 1, "", "get_request"], [53, 2, 1, "", "head_on_session"], [53, 2, 1, "", "head_request"], [53, 2, 1, "", "http_get"], [53, 2, 1, "", "options_on_session"], [53, 2, 1, "", "options_request"], [53, 2, 1, "", "patch_on_session"], [53, 2, 1, "", "patch_request"], [53, 2, 1, "", "post_on_session"], [53, 2, 1, "", "post_request"], [53, 2, 1, "", "put_on_session"], [53, 2, 1, "", "put_request"], [53, 2, 1, "", "request_should_be_successful"], [53, 2, 1, "", "session_exists"], [53, 2, 1, "", "session_less_delete"], [53, 2, 1, "", "session_less_get"], [53, 2, 1, "", "session_less_head"], [53, 2, 1, "", "session_less_options"], [53, 2, 1, "", "session_less_patch"], [53, 2, 1, "", "session_less_post"], [53, 2, 1, "", "session_less_put"], [53, 2, 1, "", "status_should_be"], [53, 2, 1, "", "to_json"], [53, 2, 1, "", "update_session"]], "RPA.Hubspot": [[55, 0, 1, "", "Hubspot"]], "RPA.Hubspot.Hubspot": [[55, 1, 1, "", "BUILTIN_PLURAL_MAP"], [55, 1, 1, "", "BUILTIN_SINGULAR_MAP"], [55, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [55, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [55, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [55, 2, 1, "", "add_input_to_batch"], [55, 2, 1, "", "auth_with_api_key"], [55, 2, 1, "", "auth_with_token"], [55, 3, 1, "", "batch_input"], [55, 2, 1, "", "clear_current_batch"], [55, 2, 1, "", "create_new_batch"], [55, 2, 1, "", "create_object"], [55, 2, 1, "", "execute_batch"], [55, 2, 1, "", "extend_batch_with_inputs"], [55, 2, 1, "", "get_current_batch"], [55, 2, 1, "", "get_current_batch_inputs"], [55, 2, 1, "", "get_current_stage_of_object"], [55, 2, 1, "", "get_object"], [55, 2, 1, "", "get_owner_by_id"], [55, 2, 1, "", "get_owner_of_object"], [55, 2, 1, "", "get_pipeline"], [55, 2, 1, "", "get_pipeline_stages"], [55, 2, 1, "", "get_user"], [55, 2, 1, "", "list_associations"], [55, 2, 1, "", "list_pipelines"], [55, 3, 1, "", "pipelines"], [55, 3, 1, "", "schemas"], [55, 2, 1, "", "search_for_objects"], [55, 2, 1, "", "set_association"], [55, 2, 1, "", "set_current_batch_input"], [55, 2, 1, "", "update_object"]], "RPA.Images": [[57, 0, 1, "", "Images"]], "RPA.Images.Images": [[57, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [57, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [57, 2, 1, "", "crop_image"], [57, 2, 1, "", "find_template_in_image"], [57, 2, 1, "", "get_pixel_color_in_image"], [57, 2, 1, "", "show_region_in_image"]], "RPA.JSON": [[61, 0, 1, "", "JSON"]], "RPA.JSON.JSON": [[61, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [61, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [61, 2, 1, "", "add_to_json"], [61, 2, 1, "", "convert_json_to_string"], [61, 2, 1, "", "convert_string_to_json"], [61, 2, 1, "", "delete_from_json"], [61, 2, 1, "", "get_value_from_json"], [61, 2, 1, "", "get_values_from_json"], [61, 2, 1, "", "load_json_from_file"], [61, 2, 1, "", "save_json_to_file"], [61, 2, 1, "", "update_value_to_json"]], "RPA.JavaAccessBridge": [[59, 0, 1, "", "JavaAccessBridge"]], "RPA.JavaAccessBridge.JavaAccessBridge": [[59, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [59, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [59, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [59, 2, 1, "", "application_refresh"], [59, 2, 1, "", "call_element_action"], [59, 2, 1, "", "click_coordinates"], [59, 2, 1, "", "click_element"], [59, 2, 1, "", "click_push_button"], [59, 2, 1, "", "close_java_window"], [59, 2, 1, "", "get_element_actions"], [59, 2, 1, "", "get_element_text"], [59, 2, 1, "", "get_elements"], [59, 2, 1, "", "get_locator_tree"], [59, 2, 1, "", "get_version_info"], [59, 2, 1, "", "highlight_element"], [59, 2, 1, "", "list_java_windows"], [59, 2, 1, "", "press_keys"], [59, 2, 1, "", "print_element_tree"], [59, 2, 1, "", "print_locator_tree"], [59, 2, 1, "", "read_table"], [59, 2, 1, "", "refresh_element"], [59, 2, 1, "", "select_menu"], [59, 2, 1, "", "select_window"], [59, 2, 1, "", "select_window_by_pid"], [59, 2, 1, "", "select_window_by_title"], [59, 2, 1, "", "set_display_scale_factor"], [59, 2, 1, "", "set_mouse_position"], [59, 2, 1, "", "shutdown_jab"], [59, 2, 1, "", "toggle_drop_down"], [59, 2, 1, "", "type_text"], [59, 2, 1, "", "wait_until_element_exists"], [59, 2, 1, "", "wait_until_element_is_focused"], [59, 2, 1, "", "wait_until_element_text_contains"], [59, 2, 1, "", "wait_until_element_text_equals"]], "RPA.MFA": [[63, 0, 1, "", "MFA"]], "RPA.MFA.MFA": [[63, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [63, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [63, 2, 1, "", "generate_oauth_url"], [63, 2, 1, "", "get_counter_based_otp"], [63, 2, 1, "", "get_oauth_token"], [63, 2, 1, "", "get_time_based_otp"], [63, 3, 1, "", "oauth"], [63, 2, 1, "", "refresh_oauth_token"], [63, 2, 1, "", "set_counter_based_otp"], [63, 2, 1, "", "set_time_based_otp"], [63, 2, 1, "", "use_mfa_secret_from_vault"]], "RPA.MSGraph": [[65, 0, 1, "", "MSGraph"]], "RPA.MSGraph.MSGraph": [[65, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [65, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [65, 2, 1, "", "authorize_and_get_token"], [65, 2, 1, "", "configure_msgraph_client"], [65, 2, 1, "", "create_sharepoint_list"], [65, 2, 1, "", "download_file_from_onedrive"], [65, 2, 1, "", "download_file_from_share_link"], [65, 2, 1, "", "download_file_from_sharepoint"], [65, 2, 1, "", "download_folder_from_onedrive"], [65, 2, 1, "", "find_onedrive_file"], [65, 2, 1, "", "generate_oauth_authorization_url"], [65, 2, 1, "", "get_drive_instance"], [65, 2, 1, "", "get_file_instance"], [65, 2, 1, "", "get_folder_instance"], [65, 2, 1, "", "get_items_from_sharepoint_list"], [65, 2, 1, "", "get_me"], [65, 2, 1, "", "get_scopes"], [65, 2, 1, "", "get_sharepoint_site"], [65, 2, 1, "", "list_files_in_onedrive_folder"], [65, 2, 1, "", "list_files_in_sharepoint_site_drive"], [65, 2, 1, "", "list_sharepoint_site_drives"], [65, 2, 1, "", "refresh_oauth_token"], [65, 2, 1, "", "search_for_users"], [65, 2, 1, "", "upload_file_to_onedrive"]], "RPA.Netsuite": [[67, 0, 1, "", "Netsuite"]], "RPA.Netsuite.Netsuite": [[67, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [67, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [67, 2, 1, "", "connect"], [67, 2, 1, "", "get_accounts"], [67, 2, 1, "", "get_classifications"], [67, 2, 1, "", "get_currencies"], [67, 2, 1, "", "get_currency"], [67, 2, 1, "", "get_departments"], [67, 2, 1, "", "get_locations"], [67, 2, 1, "", "get_vendor_bills"], [67, 2, 1, "", "get_vendors"], [67, 2, 1, "", "login"], [67, 2, 1, "", "netsuite_get"], [67, 2, 1, "", "netsuite_get_all"], [67, 2, 1, "", "netsuite_search"], [67, 2, 1, "", "netsuite_search_all"]], "RPA.Notifier": [[69, 0, 1, "", "Notifier"]], "RPA.Notifier.Notifier": [[69, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [69, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [69, 2, 1, "", "generic_notify"], [69, 2, 1, "", "notify_email"], [69, 2, 1, "", "notify_gmail"], [69, 2, 1, "", "notify_pushover"], [69, 2, 1, "", "notify_slack"], [69, 2, 1, "", "notify_telegram"], [69, 2, 1, "", "notify_twilio"]], "RPA.OpenAI": [[71, 0, 1, "", "OpenAI"]], "RPA.OpenAI.OpenAI": [[71, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [71, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [71, 2, 1, "", "authorize_to_azure_openai"], [71, 2, 1, "", "authorize_to_openai"], [71, 2, 1, "", "chat_completion_create"], [71, 2, 1, "", "completion_create"], [71, 2, 1, "", "image_create"], [71, 2, 1, "", "image_create_variation"]], "RPA.Outlook.Application": [[73, 0, 1, "", "Application"]], "RPA.Outlook.Application.Application": [[73, 1, 1, "", "APP_DISPATCH"], [73, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [73, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [73, 3, 1, "", "app"], [73, 2, 1, "", "close_document"], [73, 2, 1, "", "get_emails"], [73, 2, 1, "", "mark_email_as_read"], [73, 2, 1, "", "move_emails"], [73, 2, 1, "", "open_application"], [73, 2, 1, "", "quit_application"], [73, 2, 1, "", "save_email_attachments"], [73, 2, 1, "", "send_email"], [73, 2, 1, "", "wait_for_email"]], "RPA.PDF": [[75, 0, 1, "", "PDF"]], "RPA.PDF.PDF": [[75, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [75, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [75, 2, 1, "", "add_library_components"], [75, 2, 1, "", "get_keyword_arguments"], [75, 2, 1, "", "get_keyword_documentation"], [75, 2, 1, "", "get_keyword_names"], [75, 2, 1, "", "get_keyword_source"], [75, 2, 1, "", "get_keyword_tags"], [75, 2, 1, "", "get_keyword_types"], [75, 2, 1, "", "run_keyword"]], "RPA.Robocorp.Process": [[77, 0, 1, "", "Process"]], "RPA.Robocorp.Process.Process": [[77, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [77, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [77, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [77, 3, 1, "", "base_api"], [77, 2, 1, "", "create_input_work_item"], [77, 2, 1, "", "get_process_id_by_name"], [77, 2, 1, "", "get_process_run_status"], [77, 2, 1, "", "get_robot_run_artifact"], [77, 2, 1, "", "get_work_item"], [77, 3, 1, "", "headers"], [77, 2, 1, "", "list_process_run_work_items"], [77, 2, 1, "", "list_process_runs"], [77, 2, 1, "", "list_process_runs_in_workspace"], [77, 2, 1, "", "list_process_work_items"], [77, 2, 1, "", "list_processes"], [77, 2, 1, "", "list_run_artifacts"], [77, 2, 1, "", "process_api"], [77, 2, 1, "", "register_file_upload"], [77, 2, 1, "", "retry_work_item"], [77, 2, 1, "", "set_apikey"], [77, 2, 1, "", "set_credentials"], [77, 2, 1, "", "set_process_id"], [77, 2, 1, "", "set_workspace_id"], [77, 2, 1, "", "start_configured_process"], [77, 2, 1, "", "start_process"], [77, 2, 1, "", "upload_file_to_s3"], [77, 2, 1, "", "workspace_api"]], "RPA.Robocorp.Vault": [[81, 0, 1, "", "Vault"]], "RPA.Robocorp.Vault.Vault": [[81, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [81, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [81, 3, 1, "", "adapter"], [81, 2, 1, "", "get_secret"], [81, 2, 1, "", "set_secret"]], "RPA.Robocorp.WorkItems": [[83, 0, 1, "", "WorkItems"]], "RPA.Robocorp.WorkItems.WorkItems": [[83, 1, 1, "", "EMAIL_BODY_LOADERS"], [83, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [83, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [83, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [83, 1, 1, "", "ROBOT_LISTENER_API_VERSION"], [83, 3, 1, "", "active_input"], [83, 3, 1, "", "adapter"], [83, 2, 1, "", "add_work_item_file"], [83, 2, 1, "", "add_work_item_files"], [83, 2, 1, "", "clear_work_item"], [83, 2, 1, "", "create_output_work_item"], [83, 3, 1, "", "current"], [83, 2, 1, "", "delete_work_item_variables"], [83, 2, 1, "", "for_each_input_work_item"], [83, 2, 1, "", "get_current_work_item"], [83, 2, 1, "", "get_input_work_item"], [83, 2, 1, "", "get_work_item_file"], [83, 2, 1, "", "get_work_item_files"], [83, 2, 1, "", "get_work_item_payload"], [83, 2, 1, "", "get_work_item_variable"], [83, 2, 1, "", "get_work_item_variables"], [83, 1, 1, "", "inputs"], [83, 2, 1, "", "list_work_item_files"], [83, 2, 1, "", "list_work_item_variables"], [83, 1, 1, "", "outputs"], [83, 2, 1, "", "release_input_work_item"], [83, 2, 1, "", "remove_work_item_file"], [83, 2, 1, "", "remove_work_item_files"], [83, 1, 1, "", "root"], [83, 2, 1, "", "save_work_item"], [83, 2, 1, "", "set_current_work_item"], [83, 2, 1, "", "set_task_variables_from_work_item"], [83, 2, 1, "", "set_work_item_payload"], [83, 2, 1, "", "set_work_item_variable"], [83, 2, 1, "", "set_work_item_variables"]], "RPA.RobotLogListener": [[85, 0, 1, "", "RobotLogListener"]], "RPA.RobotLogListener.RobotLogListener": [[85, 1, 1, "", "INFO_LEVEL_KEYWORDS"], [85, 1, 1, "", "KEYWORDS_TO_MUTE"], [85, 1, 1, "", "KEYWORDS_TO_PROTECT"], [85, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [85, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [85, 1, 1, "", "ROBOT_LISTENER_API_VERSION"], [85, 2, 1, "", "end_keyword"], [85, 2, 1, "", "mute_run_on_failure"], [85, 2, 1, "", "only_info_level"], [85, 2, 1, "", "register_protected_keywords"], [85, 2, 1, "", "start_keyword"]], "RPA.SAP": [[89, 0, 1, "", "SAP"]], "RPA.SAP.SAP": [[89, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [89, 2, 1, "", "click_element"], [89, 2, 1, "", "click_toolbar_button"], [89, 2, 1, "", "connect_to_existing_connection"], [89, 2, 1, "", "connect_to_session"], [89, 2, 1, "", "disable_screenshots_on_error"], [89, 2, 1, "", "doubleclick_element"], [89, 2, 1, "", "element_should_be_present"], [89, 2, 1, "", "element_value_should_be"], [89, 2, 1, "", "element_value_should_contain"], [89, 2, 1, "", "enable_screenshots_on_error"], [89, 2, 1, "", "focus_and_click"], [89, 2, 1, "", "focus_and_input_text"], [89, 2, 1, "", "generic_click_element"], [89, 2, 1, "", "generic_input_password"], [89, 2, 1, "", "generic_input_text"], [89, 2, 1, "", "get_cell_value"], [89, 2, 1, "", "get_element_location"], [89, 2, 1, "", "get_element_type"], [89, 2, 1, "", "get_element_type_of_object"], [89, 2, 1, "", "get_row_count"], [89, 2, 1, "", "get_scroll_position"], [89, 2, 1, "", "get_statusbar_type"], [89, 2, 1, "", "get_value"], [89, 2, 1, "", "get_window_title"], [89, 2, 1, "", "input_password"], [89, 2, 1, "", "input_text"], [89, 2, 1, "", "maximize_window"], [89, 2, 1, "", "open_connection"], [89, 2, 1, "", "run_transaction"], [89, 2, 1, "", "scroll"], [89, 2, 1, "", "select_checkbox"], [89, 2, 1, "", "select_context_menu_item"], [89, 2, 1, "", "select_from_list_by_label"], [89, 2, 1, "", "select_node"], [89, 2, 1, "", "select_node_link"], [89, 2, 1, "", "select_radio_button"], [89, 2, 1, "", "select_table_column"], [89, 2, 1, "", "select_table_row"], [89, 2, 1, "", "send_vkey"], [89, 2, 1, "", "set_cell_value"], [89, 2, 1, "", "set_explicit_wait"], [89, 2, 1, "", "set_focus"], [89, 2, 1, "", "take_screenshot"], [89, 2, 1, "", "unselect_checkbox"]], "RPA.Salesforce": [[87, 0, 1, "", "Salesforce"]], "RPA.Salesforce.Salesforce": [[87, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [87, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [87, 1, 1, "", "account"], [87, 2, 1, "", "add_product_into_opportunity"], [87, 2, 1, "", "auth_with_connected_app"], [87, 2, 1, "", "auth_with_token"], [87, 2, 1, "", "create_new_opportunity"], [87, 2, 1, "", "create_salesforce_object"], [87, 2, 1, "", "delete_salesforce_object"], [87, 2, 1, "", "describe_salesforce_object"], [87, 2, 1, "", "execute_apex"], [87, 2, 1, "", "execute_dataloader_insert"], [87, 2, 1, "", "get_dataloader_error_table"], [87, 2, 1, "", "get_dataloader_success_table"], [87, 2, 1, "", "get_domain"], [87, 2, 1, "", "get_opportunity_id"], [87, 2, 1, "", "get_pricebook_entries"], [87, 2, 1, "", "get_pricebook_id"], [87, 2, 1, "", "get_products_in_pricelist"], [87, 2, 1, "", "get_salesforce_object_by_id"], [87, 2, 1, "", "get_salesforce_object_metadata"], [87, 3, 1, "", "instance"], [87, 2, 1, "", "read_dictionary_from_file"], [87, 2, 1, "", "salesforce_query"], [87, 2, 1, "", "salesforce_query_result_as_table"], [87, 3, 1, "", "session_id"], [87, 2, 1, "", "set_account"], [87, 2, 1, "", "set_domain"], [87, 2, 1, "", "set_pricebook"], [87, 2, 1, "", "update_salesforce_object"], [87, 2, 1, "", "upsert_salesforce_object"]], "RPA.Slack": [[91, 0, 1, "", "Slack"]], "RPA.Slack.Slack": [[91, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [91, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [91, 2, 1, "", "slack_message_using_webhook"], [91, 2, 1, "", "slack_raw_message"]], "RPA.Smartsheet": [[93, 0, 1, "", "Smartsheet"]], "RPA.Smartsheet.Smartsheet": [[93, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [93, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [93, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [93, 1, 1, "", "ROW_EXCLUDES"], [93, 1, 1, "", "ROW_INCLUDES"], [93, 1, 1, "", "SEARCH_INCLUDES"], [93, 1, 1, "", "SEARCH_SCOPES"], [93, 1, 1, "", "SHEET_INCLUDES"], [93, 2, 1, "", "add_column"], [93, 2, 1, "", "add_columns"], [93, 2, 1, "", "add_rows"], [93, 2, 1, "", "convert_row_to_dict"], [93, 2, 1, "", "convert_sheet_to_table"], [93, 2, 1, "", "create_sheet"], [93, 2, 1, "", "download_attachment"], [93, 2, 1, "", "get_application_constants"], [93, 2, 1, "", "get_cell_history"], [93, 2, 1, "", "get_current_user"], [93, 2, 1, "", "get_row"], [93, 2, 1, "", "get_sheet"], [93, 2, 1, "", "get_sheet_owner"], [93, 2, 1, "", "list_attachments"], [93, 2, 1, "", "list_columns"], [93, 2, 1, "", "list_sheet_filters"], [93, 2, 1, "", "list_sheets"], [93, 2, 1, "", "refresh_sheet"], [93, 2, 1, "", "search"], [93, 2, 1, "", "set_access_token"], [93, 2, 1, "", "set_max_retry_time"], [93, 2, 1, "", "set_row"], [93, 2, 1, "", "set_rows"], [93, 3, 1, "", "sheets"], [93, 2, 1, "", "unselect_current_sheet"], [93, 2, 1, "", "update_column"]], "RPA.Tables": [[95, 0, 1, "", "Tables"]], "RPA.Tables.Tables": [[95, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [95, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [95, 2, 1, "", "add_table_column"], [95, 2, 1, "", "add_table_row"], [95, 2, 1, "", "clear_table"], [95, 2, 1, "", "copy_table"], [95, 2, 1, "", "create_table"], [95, 2, 1, "", "export_table"], [95, 2, 1, "", "filter_empty_rows"], [95, 2, 1, "", "filter_table_by_column"], [95, 2, 1, "", "filter_table_with_keyword"], [95, 2, 1, "", "find_table_rows"], [95, 2, 1, "", "get_table_cell"], [95, 2, 1, "", "get_table_column"], [95, 2, 1, "", "get_table_dimensions"], [95, 2, 1, "", "get_table_row"], [95, 2, 1, "", "get_table_slice"], [95, 2, 1, "", "group_table_by_column"], [95, 2, 1, "", "map_column_values"], [95, 2, 1, "", "merge_tables"], [95, 2, 1, "", "pop_table_column"], [95, 2, 1, "", "pop_table_row"], [95, 2, 1, "", "read_table_from_csv"], [95, 2, 1, "", "rename_table_columns"], [95, 2, 1, "", "set_row_as_column_names"], [95, 2, 1, "", "set_table_cell"], [95, 2, 1, "", "set_table_column"], [95, 2, 1, "", "set_table_row"], [95, 2, 1, "", "sort_table_by_column"], [95, 2, 1, "", "table_head"], [95, 2, 1, "", "table_tail"], [95, 2, 1, "", "trim_column_names"], [95, 2, 1, "", "trim_empty_rows"], [95, 2, 1, "", "write_table_to_csv"]], "RPA.Twitter": [[98, 0, 1, "", "Twitter"]], "RPA.Twitter.Twitter": [[98, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [98, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [98, 2, 1, "", "authorize"], [98, 2, 1, "", "follow"], [98, 2, 1, "", "get_me"], [98, 2, 1, "", "get_user_profile"], [98, 2, 1, "", "get_user_tweets"], [98, 2, 1, "", "like"], [98, 2, 1, "", "text_search_tweets"], [98, 2, 1, "", "tweet"], [98, 2, 1, "", "unfollow"], [98, 2, 1, "", "unlike"]], "RPA.Windows": [[100, 0, 1, "", "Windows"]], "RPA.Windows.Windows": [[100, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [100, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [100, 1, 1, "", "SIMULATE_MOVE"], [100, 2, 1, "", "add_library_components"], [100, 2, 1, "", "get_keyword_arguments"], [100, 2, 1, "", "get_keyword_documentation"], [100, 2, 1, "", "get_keyword_names"], [100, 2, 1, "", "get_keyword_source"], [100, 2, 1, "", "get_keyword_tags"], [100, 2, 1, "", "get_keyword_types"], [100, 2, 1, "", "run_keyword"]], "RPA.Word.Application": [[102, 0, 1, "", "Application"]], "RPA.Word.Application.Application": [[102, 1, 1, "", "APP_DISPATCH"], [102, 1, 1, "", "FILEFORMATS"], [102, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [102, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [102, 3, 1, "", "app"], [102, 2, 1, "", "close_document"], [102, 2, 1, "", "create_new_document"], [102, 2, 1, "", "export_to_pdf"], [102, 2, 1, "", "get_all_texts"], [102, 2, 1, "", "open_application"], [102, 2, 1, "", "open_file"], [102, 2, 1, "", "quit_application"], [102, 2, 1, "", "replace_text"], [102, 2, 1, "", "save_document"], [102, 2, 1, "", "save_document_as"], [102, 2, 1, "", "set_footer"], [102, 2, 1, "", "set_header"], [102, 2, 1, "", "write_text"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"]}, "titleterms": {"project": [0, 3], "convent": 0, "name": 0, "version": [0, 104], "control": [0, 55], "avail": 0, "document": [0, 3], "code": 0, "format": 0, "test": 0, "continu": 0, "integr": 0, "chang": 0, "log": 0, "other": 0, "issu": 0, "type": [0, 55], "hint": 0, "contribut": [1, 3], "guid": 1, "report": 1, "bug": 1, "request": 1, "enhanc": 1, "submit": 1, "content": [1, 3], "todo": 2, "rpa": [2, 3, 103, 104], "databas": [2, 22, 23], "desktop": [2, 24, 25, 26, 28, 30], "window": [2, 30, 31, 99, 100], "keyword": [2, 4, 6, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 97, 99, 101], "applic": [2, 44, 45, 72, 73, 101, 102], "finder": 2, "mous": 2, "screen": 2, "email": [2, 40, 42], "exchang": [2, 40, 41], "imapsmtp": [2, 42, 43], "excel": [2, 44, 45, 46, 47, 102], "file": [2, 46, 47], "filesystem": [2, 48, 49], "json": [2, 60, 61], "javaaccessbridg": [2, 58, 59], "msgraph": [2, 64, 65], "robocorp": [2, 76, 78, 80, 82], "process": [2, 76, 77], "smartsheet": [2, 92, 93], "task": [2, 96], "framework": [3, 103, 104], "tabl": [3, 94, 95], "introduct": 3, "link": 3, "packag": [3, 104], "librari": 3, "instal": [3, 9], "browser": [3, 8, 9, 10, 11], "playwright": [3, 9], "exampl": [3, 61], "support": [3, 61], "contact": 3, "develop": 3, "licens": 3, "indic": 3, "archiv": [4, 5], "python": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "api": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "assist": [6, 7], "instruct": 9, "conda": 9, "yaml": 9, "pip": 9, "selenium": [10, 11], "calendar": [12, 13], "cloud": [14, 16, 18], "aw": [14, 15], "azur": [16, 17], "googl": [18, 19, 104], "crypto": [20, 21], "clipboard": [26, 27], "operatingsystem": [28, 29], "dialog": [32, 33], "documentai": [34, 35, 36, 38], "base64ai": [36, 37], "nanonet": [38, 39], "ftp": [50, 51], "http": [52, 53], "hubspot": [54, 55], "us": 55, "date": 55, "time": 55, "when": 55, "search": 55, "batch": 55, "input": 55, "inform": [55, 61], "cach": 55, "custom": 55, "object": [55, 93], "refer": 55, "attribut": 55, "access": 55, "definit": 55, "simplepublicobject": 55, "simplepublicobjectwithassoci": 55, "associatedid": 55, "collectionresponseassociatedid": 55, "pipelin": 55, "pipelinestag": 55, "publicown": 55, "publicteam": 55, "return": 55, "properti": 55, "associ": 55, "text": 55, "base": 55, "queri": 55, "imag": [56, 57], "serial": 61, "about": 61, "jsonpath": 61, "syntax": 61, "express": 61, "function": 61, "addit": 61, "mfa": [62, 63], "netsuit": [66, 67], "notifi": [68, 69], "openai": [70, 71], "outlook": [72, 73], "pdf": [74, 75], "storag": 78, "secret": [79, 81], "vault": 80, "workitem": 82, "robotloglisten": [84, 85], "salesforc": [86, 87], "sap": [88, 89], "slack": [90, 91], "get": 93, "start": 93, "work": 93, "sheet": 93, "nativ": 93, "twitter": [97, 98], "word": 101, "robo": [103, 104], "releas": 104, "note": 104, "latest": 104, "upcom": 104, "27": 104, "5": 104, "0": 104, "24": 104, "oct": 104, "2023": 104, "4": 104, "2": 104, "13": 104, "1": 104, "11": 104, "3": 104, "10": 104, "06": 104, "29": 104, "sep": 104, "26": 104, "15": 104, "14": 104, "07": 104, "04": 104, "aug": 104, "22": 104, "18": 104, "25": 104, "jul": 104, "23": 104, "jun": 104, "28": 104, "09": 104, "02": 104, "01": 104, "19": 104, "mai": 104, "12": 104, "05": 104, "apr": 104, "mar": 104, "08": 104, "03": 104, "feb": 104, "21": 104, "20": 104, "17": 104, "jan": 104, "dec": 104, "2022": 104, "nov": 104, "7": 104, "6": 104, "30": 104, "16": 104, "31": 104, "9": 104, "8": 104, "secur": 104, "all": 104, "2021": 104, "rpaframework": 104}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Project conventions": [[0, "project-conventions"]], "Naming": [[0, "naming"]], "Version Control": [[0, "version-control"]], "Availability": [[0, "availability"]], "Documentation": [[0, "documentation"], [3, "documentation"]], "Code Formatting": [[0, "code-formatting"]], "Testing": [[0, "testing"]], "Continuous Integration": [[0, "continuous-integration"]], "Change Log": [[0, "change-log"]], "Versioning": [[0, "versioning"]], "Other issues": [[0, "other-issues"]], "Type hinting": [[0, "type-hinting"]], "Contribution guide": [[1, "contribution-guide"]], "Reporting bugs": [[1, "reporting-bugs"]], "Requesting enhancements": [[1, "requesting-enhancements"]], "Submitting content": [[1, "submitting-content"]], "TODO": [[2, "todo"]], "RPA.Database:": [[2, "rpa-database"]], "RPA.Desktop.Windows:": [[2, "rpa-desktop-windows"]], "RPA.Desktop.keywords.application:": [[2, "rpa-desktop-keywords-application"]], "RPA.Desktop.keywords.finder:": [[2, "rpa-desktop-keywords-finder"]], "RPA.Desktop.keywords.mouse:": [[2, "rpa-desktop-keywords-mouse"]], "RPA.Desktop.keywords.screen:": [[2, "rpa-desktop-keywords-screen"]], "RPA.Email.Exchange:": [[2, "rpa-email-exchange"]], "RPA.Email.ImapSmtp:": [[2, "rpa-email-imapsmtp"]], "RPA.Excel.Files:": [[2, "rpa-excel-files"]], "RPA.FileSystem:": [[2, "rpa-filesystem"]], "RPA.JSON:": [[2, "rpa-json"]], "RPA.JavaAccessBridge:": [[2, "rpa-javaaccessbridge"]], "RPA.MSGraph:": [[2, "rpa-msgraph"]], "RPA.Robocorp.Process:": [[2, "rpa-robocorp-process"]], "RPA.Smartsheet:": [[2, "rpa-smartsheet"]], "RPA.Tasks:": [[2, "rpa-tasks"]], "RPA.application:": [[2, "rpa-application"]], "RPA Framework": [[3, "rpa-framework"], [103, "id2"], [104, "id2"]], "Table of Contents": [[3, "table-of-contents"]], "Introduction": [[3, "introduction"]], "Links": [[3, "links"]], "Packages": [[3, "packages"]], "Libraries": [[3, "libraries"], [3, null]], "Installation of RPA.Browser.Playwright": [[3, "installation-of-rpa-browser-playwright"]], "Installation": [[3, "installation"]], "Example": [[3, "example"]], "Support and contact": [[3, "support-and-contact"]], "Contributing": [[3, "contributing"]], "Development": [[3, "development"]], "License": [[3, "license"]], "Project": [[3, null]], "Indices and tables": [[3, "indices-and-tables"]], "Archive": [[4, "archive"], [5, "archive"]], "Keywords": [[4, "keywords"], [6, "keywords"], [9, "keywords"], [10, "keywords"], [12, "keywords"], [14, "keywords"], [16, "keywords"], [18, "keywords"], [20, "keywords"], [22, "keywords"], [24, "keywords"], [26, "keywords"], [28, "keywords"], [30, "keywords"], [32, "keywords"], [34, "keywords"], [36, "keywords"], [38, "keywords"], [40, "keywords"], [42, "keywords"], [44, "keywords"], [46, "keywords"], [48, "keywords"], [50, "keywords"], [52, "keywords"], [54, "keywords"], [56, "keywords"], [58, "keywords"], [60, "keywords"], [62, "keywords"], [64, "keywords"], [66, "keywords"], [68, "keywords"], [70, "keywords"], [72, "keywords"], [74, "keywords"], [76, "keywords"], [78, "keywords"], [80, "keywords"], [82, "keywords"], [84, "keywords"], [86, "keywords"], [88, "keywords"], [90, "keywords"], [92, "keywords"], [94, "keywords"], [96, "keywords"], [97, "keywords"], [99, "keywords"], [101, "keywords"]], "Python API": [[5, "python-api"], [7, "python-api"], [11, "python-api"], [13, "python-api"], [15, "python-api"], [17, "python-api"], [19, "python-api"], [21, "python-api"], [23, "python-api"], [25, "python-api"], [27, "python-api"], [29, "python-api"], [31, "python-api"], [33, "python-api"], [35, "python-api"], [37, "python-api"], [39, "python-api"], [41, "python-api"], [43, "python-api"], [45, "python-api"], [47, "python-api"], [49, "python-api"], [51, "python-api"], [53, "python-api"], [55, "python-api"], [57, "python-api"], [59, "python-api"], [61, "python-api"], [63, "python-api"], [65, "python-api"], [67, "python-api"], [69, "python-api"], [71, "python-api"], [73, "python-api"], [75, "python-api"], [77, "python-api"], [79, "python-api"], [81, "python-api"], [83, "python-api"], [85, "python-api"], [87, "python-api"], [89, "python-api"], [91, "python-api"], [93, "python-api"], [95, "python-api"], [98, "python-api"], [100, "python-api"], [102, "python-api"]], "Assistant": [[6, "assistant"], [7, "assistant"]], "Browser": [[8, "browser"]], "Browser.Playwright": [[9, "browser-playwright"]], "Install instructions": [[9, "install-instructions"]], "conda.yaml": [[9, "conda-yaml"]], "pip": [[9, "pip"]], "Browser.Selenium": [[10, "browser-selenium"], [11, "browser-selenium"]], "}": [[11, "id11"]], "Calendar": [[12, "calendar"], [13, "calendar"]], "Cloud.AWS": [[14, "cloud-aws"]], "AWS": [[15, "aws"]], "Cloud.Azure": [[16, "cloud-azure"]], "Azure": [[17, "azure"]], "Cloud.Google": [[18, "cloud-google"]], "Google": [[19, "google"]], "Crypto": [[20, "crypto"], [21, "crypto"]], "Database": [[22, "database"], [23, "database"]], "Desktop": [[24, "desktop"], [25, "desktop"]], "Desktop.Clipboard": [[26, "desktop-clipboard"]], "Clipboard": [[27, "clipboard"]], "Desktop.OperatingSystem": [[28, "desktop-operatingsystem"]], "OperatingSystem": [[29, "operatingsystem"]], "Desktop.Windows": [[30, "desktop-windows"]], "Windows": [[31, "windows"], [99, "windows"], [100, "windows"]], "Dialogs": [[32, "dialogs"], [33, "dialogs"]], "DocumentAI": [[34, "documentai"], [35, "documentai"]], "DocumentAI.Base64AI": [[36, "documentai-base64ai"]], "Base64AI": [[37, "base64ai"]], "DocumentAI.Nanonets": [[38, "documentai-nanonets"]], "Nanonets": [[39, "nanonets"]], "Email.Exchange": [[40, "email-exchange"]], "Exchange": [[41, "exchange"]], "Email.ImapSmtp": [[42, "email-imapsmtp"]], "ImapSmtp": [[43, "imapsmtp"]], "Excel.Application": [[44, "excel-application"], [45, "excel-application"], [102, "excel-application"]], "Excel.Files": [[46, "excel-files"], [47, "excel-files"]], "FileSystem": [[48, "filesystem"], [49, "filesystem"]], "FTP": [[50, "ftp"], [51, "ftp"]], "HTTP": [[52, "http"], [53, "http"]], "HubSpot": [[54, "hubspot"]], "Hubspot": [[55, "hubspot"]], "Using Date Times When Searching": [[55, "using-date-times-when-searching"]], "Batch Inputs": [[55, "batch-inputs"]], "Information Caching": [[55, "information-caching"]], "Custom Object Types": [[55, "custom-object-types"]], "HubSpot Object Reference": [[55, "hubspot-object-reference"]], "Attribute Access": [[55, "attribute-access"]], "Attribute Definitions": [[55, "attribute-definitions"]], "SimplePublicObject": [[55, "simplepublicobject"]], "SimplePublicObjectWithAssociations": [[55, "simplepublicobjectwithassociations"]], "AssociatedId": [[55, "associatedid"]], "CollectionResponseAssociatedId": [[55, "collectionresponseassociatedid"]], "Pipeline": [[55, "pipeline"]], "PipelineStage": [[55, "pipelinestage"]], "PublicOwner": [[55, "publicowner"]], "PublicTeam": [[55, "publicteam"]], "Object Searching": [[55, "object-searching"]], "Controlling Returned Properties": [[55, "controlling-returned-properties"]], "Using Associations": [[55, "using-associations"]], "Text-based Search Query": [[55, "text-based-search-query"]], "Images": [[56, "images"], [57, "images"]], "JavaAccessBridge": [[58, "javaaccessbridge"], [59, "javaaccessbridge"]], "JSON": [[60, "json"], [61, "json"]], "Serialization": [[61, "serialization"]], "About JSONPath": [[61, "about-jsonpath"]], "Syntax example": [[61, "syntax-example"]], "Supported Expressions": [[61, "supported-expressions"]], "Functions": [[61, "functions"]], "Additional Information": [[61, "additional-information"]], "MFA": [[62, "mfa"], [63, "mfa"]], "MSGraph": [[64, "msgraph"], [65, "msgraph"]], "Netsuite": [[66, "netsuite"], [67, "netsuite"]], "Notifier": [[68, "notifier"], [69, "notifier"]], "OpenAI": [[70, "openai"], [71, "openai"]], "Outlook.Application": [[72, "outlook-application"], [73, "outlook-application"]], "PDF": [[74, "pdf"], [75, "pdf"]], "Robocorp.Process": [[76, "robocorp-process"]], "Process": [[77, "process"]], "Robocorp.Storage": [[78, "robocorp-storage"]], "Secrets": [[79, "secrets"], [81, "secrets"]], "Robocorp.Vault": [[80, "robocorp-vault"]], "Robocorp.WorkItems": [[82, "robocorp-workitems"]], "RobotLogListener": [[84, "robotloglistener"], [85, "robotloglistener"]], "Salesforce": [[86, "salesforce"], [87, "salesforce"]], "SAP": [[88, "sap"], [89, "sap"]], "Slack": [[90, "slack"], [91, "slack"]], "Smartsheet": [[92, "smartsheet"], [93, "smartsheet"]], "Getting started": [[93, "getting-started"]], "Working on a sheet": [[93, "working-on-a-sheet"]], "Native Smartsheet objects": [[93, "native-smartsheet-objects"]], "Tables": [[94, "tables"], [95, "tables"]], "Tasks": [[96, "tasks"]], "Twitter": [[97, "twitter"], [98, "twitter"]], "Word.Application": [[101, "word-application"]], "Robo": [[103, "id1"], [104, "id1"]], "Release notes": [[104, "release-notes"]], "Latest versions": [[104, "latest-versions"]], "Upcoming release": [[104, "id3"]], "Released": [[104, "id4"]], "27.5.0 - 24 Oct 2023": [[104, "oct-2023"]], "27.4.2 - 13 Oct 2023": [[104, "id5"]], "27.4.1 - 11 Oct 2023": [[104, "id6"]], "27.4.0 - 11 Oct 2023": [[104, "id7"]], "27.3.1 - 10 Oct 2023": [[104, "id8"]], "06 Oct 2023": [[104, "id9"]], "27.3.0 - 29 Sep 2023": [[104, "sep-2023"]], "27 Sep 2023": [[104, "id10"]], "27.2.0 - 26 Sep 2023": [[104, "id11"]], "27.1.0 - 15 Sep 2023": [[104, "id12"]], "14 Sep 2023": [[104, "id13"]], "27.0.1 - 11 Sep 2023": [[104, "id14"]], "27.0.0 - 07 Sep 2023": [[104, "id15"]], "26.1.1 - 07 Sep 2023": [[104, "id16"]], "04 Sep 2023": [[104, "id17"]], "24 Aug 2023": [[104, "aug-2023"]], "26.1.0 - 24 Aug 2023": [[104, "id18"]], "26.0.3 - 24 Aug 2023": [[104, "id19"]], "26.0.2 - 24 Aug 2023": [[104, "id20"]], "26.0.1 - 22 Aug 2023": [[104, "id21"]], "26.0.0 - 18 Aug 2023": [[104, "id22"]], "25.0.1 - 11 Aug 2023": [[104, "id23"]], "25.0.0 - 10 Aug 2023": [[104, "id24"]], "24.1.2 - 27 Jul 2023": [[104, "jul-2023"]], "24.1.1 - 26 Jul 2023": [[104, "id25"]], "24.1.0 - 25 Jul 2023": [[104, "id26"]], "24.0.0 - 18 Jul 2023": [[104, "id27"]], "23.5.2 - 29 Jun 2023": [[104, "jun-2023"]], "23.5.1 - 28 Jun 2023": [[104, "id28"]], "23.5.0 - 27 Jun 2023": [[104, "id29"]], "23.4.0 - 22 Jun 2023": [[104, "id30"]], "09 Jun 2023": [[104, "id31"]], "23.3.0 - 09 Jun 2023": [[104, "id32"]], "23.2.1 - 02 Jun 2023": [[104, "id33"]], "23.2.0 - 02 Jun 2023": [[104, "id34"]], "01 Jun 2023": [[104, "id35"]], "23.1.0 - 19 May 2023": [[104, "may-2023"]], "12 May 2023": [[104, "id36"]], "23.0.0 - 05 May 2023": [[104, "id37"]], "04 May 2023": [[104, "id38"]], "22.5.3 - 02 May 2023": [[104, "id39"]], "22.5.2 - 13 Apr 2023": [[104, "apr-2023"]], "22.5.1 - 07 Apr 2023": [[104, "id40"]], "22.5.0 - 05 Apr 2023": [[104, "id41"]], "04 Apr 2023": [[104, "id42"]], "22.4.0 - 29 Mar 2023": [[104, "mar-2023"]], "22.3.0 - 22 Mar 2023": [[104, "id43"]], "22.2.3 - 15 Mar 2023": [[104, "id44"]], "14 Mar 2023": [[104, "id45"]], "22.2.2 - 13 Mar 2023": [[104, "id46"]], "22.2.1 - 09 Mar 2023": [[104, "id47"]], "22.2.0 - 09 Mar 2023": [[104, "id48"]], "08 Mar 2023": [[104, "id49"]], "22.1.1 - 06 Mar 2023": [[104, "id50"]], "22.1.0 - 06 Mar 2023": [[104, "id51"]], "22.0.1 - 03 Mar 2023": [[104, "id52"]], "02 Mar 2023": [[104, "id53"]], "28 Feb 2023": [[104, "feb-2023"]], "22 Feb 2023": [[104, "id54"]], "21 Feb 2023": [[104, "id55"]], "22.0.0 - 20 Feb 2023": [[104, "id56"]], "20 Feb 2023": [[104, "id57"]], "17 Feb 2023": [[104, "id58"]], "21.1.1 - 15 Feb 2023": [[104, "id59"]], "21.1.0 - 09 Feb 2023": [[104, "id60"]], "08 Feb 2023": [[104, "id61"]], "21.0.1 - 03 Feb 2023": [[104, "id62"]], "21.0.0 - 01 Feb 2023": [[104, "id63"]], "20.1.2 - 26 Jan 2023": [[104, "jan-2023"]], "20.1.1 - 26 Jan 2023": [[104, "id64"]], "20.1.0 - 19 Jan 2023": [[104, "id65"]], "20.0.2 - 10 Jan 2023": [[104, "id66"]], "20.0.1 - 10 Jan 2023": [[104, "id67"]], "20.0.0 - 09 Jan 2023": [[104, "id68"]], "19.4.2 - 21 Dec 2022": [[104, "dec-2022"]], "19.4.1 - 09 Dec 2022": [[104, "id69"]], "19.4.0 - 08 Dec 2022": [[104, "id70"]], "19.3.1 - 29 Nov 2022": [[104, "nov-2022"]], "19.3.0 - 28 Nov 2022": [[104, "id71"]], "19.2.0 - 17 Nov 2022": [[104, "id72"]], "19.1.2 - 17 Nov 2022": [[104, "id73"]], "19.1.1 - 04 Nov 2022": [[104, "id74"]], "19.1.0 - 03 Nov 2022": [[104, "id75"]], "19.0.0 - 27 Oct 2022": [[104, "oct-2022"]], "18.0.0 - 17 Oct 2022": [[104, "id76"]], "17.7.0 - 14 Oct 2022": [[104, "id77"]], "17.6.0 - 12 Oct 2022": [[104, "id78"]], "17.5.1 - 11 Oct 2022": [[104, "id79"]], "17.5.0 - 07 Oct 2022": [[104, "id80"]], "17.4.0 - 06 Oct 2022": [[104, "id81"]], "17.3.0 - 03 Oct 2022": [[104, "id82"]], "17.2.0 - 30 Sep 2022": [[104, "sep-2022"]], "17.1.1 - 29 Sep 2022": [[104, "id83"]], "17.1.0 - 28 Sep 2022": [[104, "id84"]], "17.0.1 - 21 Sep 2022": [[104, "id85"]], "16.3.0 - 07 Sep 2022": [[104, "id86"]], "16.2.0 - 07 Sep 2022": [[104, "id87"]], "16.1.0 - 01 Sep 2022": [[104, "id88"]], "16.0.0 - 31 Aug 2022": [[104, "aug-2022"]], "15.9.0 - 22 Aug 2022": [[104, "id89"]], "15.8.1 - 19 Aug 2022": [[104, "id90"]], "15.8.0 - 12 Aug 2022": [[104, "id91"]], "15.7.0 - 10 Aug 2022": [[104, "id92"]], "15.6.1 - 09 Aug 2022": [[104, "id93"]], "15.6.0 - 02 Aug 2022": [[104, "id94"]], "15.5.0 - 22 Jul 2022": [[104, "jul-2022"]], "15.4.0 - 13 Jul 2022": [[104, "id95"]], "15.3.0 - 08 Jul 2022": [[104, "id96"]], "15.2.0 - 05 Jul 2022": [[104, "id97"]], "15.1.4 - 23 Jun 2022": [[104, "jun-2022"]], "15.1.3 - 22 Jun 2022": [[104, "id98"]], "15.1.2 - 21 Jun 2022": [[104, "id99"]], "15.1.1 - 17 Jun 2022": [[104, "id100"]], "15.1.0 - 15 Jun 2022": [[104, "id101"]], "security release (all packages) - 27 May 2022": [[104, "security-release-all-packages-27-may-2022"]], "14.2.0 - 25 May 2022": [[104, "may-2022"]], "14.1.1 - 12 May 2022": [[104, "id102"]], "14.1.0 - 05 May 2022": [[104, "id103"]], "14.0.0 - 02 May 2022": [[104, "id104"]], "13.3.1 - 15 Apr 2022": [[104, "apr-2022"]], "13.3.0 - 14 Apr 2022": [[104, "id105"]], "13.2.0 - 08 Apr 2022": [[104, "id106"]], "13.1.0 - 07 Apr 2022": [[104, "id107"]], "13.0.3 - 05 Apr 2022": [[104, "id108"]], "13.0.2 - 04 Apr 2022": [[104, "id109"]], "13.0.1 - 01 Apr 2022": [[104, "id110"]], "13.0.0 - 28 Mar 2022": [[104, "mar-2022"]], "12.10.1 - 25 Mar 2022": [[104, "id111"]], "12.10.0 - 23 Mar 2022": [[104, "id112"]], "12.9.0 - 11 Mar 2022": [[104, "id113"]], "12.8.2 - 25 Feb 2022": [[104, "feb-2022"]], "12.8.1 - 18 Feb 2022": [[104, "id114"]], "12.8.0 - 10 Feb 2022": [[104, "id115"]], "12.7.0 - 10 Feb 2022": [[104, "id116"]], "12.6.1 - 08 Feb 2022": [[104, "id117"]], "12.6.0 - 27 Jan 2022": [[104, "jan-2022"]], "12.5.1 - 18 Jan 2022": [[104, "id118"]], "12.5.0 - 17 Jan 2022": [[104, "id119"]], "12.4.1 - 12 Jan 2022": [[104, "id120"]], "12.3.0 - 10 Jan 2022": [[104, "id125"]], "12.2.0 - 17 Dec 2021": [[104, "dec-2021"]], "12.1.2 - 14 Dec 2021": [[104, "id128"]], "12.1.1 - 7 Dec 2021": [[104, "id129"]], "12.1.0 - 7 Dec 2021": [[104, "id130"]], "Releases on 01 Dec 2021": [[104, "releases-on-01-dec-2021"]], "12.0.0 - 29 Nov 2021": [[104, "nov-2021"]], "11.6.4 - 24 Nov 2021": [[104, "id131"]], "11.6.3 - 15 Nov 2021": [[104, "id132"]], "11.6.2 - 13 Nov 2021": [[104, "id133"]], "11.6.1 - 12 Nov 2021": [[104, "id134"]], "11.6.0 - 4 Nov 2021": [[104, "id135"]], "11.5.2": [[104, "id136"]], "11.5.1": [[104, "id137"]], "11.5.0": [[104, "id138"]], "11.4.0": [[104, "id139"]], "11.3.0": [[104, "id140"]], "11.2.1": [[104, "id141"]], "11.2.0": [[104, "id142"]], "11.1.3": [[104, "id143"]], "11.1.2": [[104, "id144"]], "11.1.1": [[104, "id145"]], "11.1.0": [[104, "id146"]], "11.0.0": [[104, "id147"]], "10.9.3": [[104, "id148"]], "10.9.2": [[104, "id149"]], "10.9.0": [[104, "id150"]], "10.8.0": [[104, "id151"]], "10.7.1": [[104, "id152"]], "10.6.0": [[104, "id153"]], "10.5.0": [[104, "id154"]], "10.4.0": [[104, "id155"]], "10.3.0": [[104, "id156"]], "10.2.0": [[104, "id157"]], "rpaframework-google: 0.2.3": [[104, "rpaframework-google-0-2-3"]], "10.1.0": [[104, "id158"]], "10.0.7": [[104, "id159"]], "10.0.6": [[104, "id160"]], "10.0.5": [[104, "id161"]], "10.0.4": [[104, "id162"]], "10.0.3": [[104, "id163"]], "10.0.2": [[104, "id164"]], "10.0.1": [[104, "id165"]], "10.0.0": [[104, "id166"]], "9.6.0": [[104, "id167"]], "9.5.0": [[104, "id168"]], "9.4.0": [[104, "id169"]], "9.3.4": [[104, "id170"]], "9.3.3": [[104, "id171"]], "9.3.2": [[104, "id172"]], "9.3.1": [[104, "id173"]], "9.3.0": [[104, "id174"]], "9.2.1": [[104, "id175"]], "9.2.0": [[104, "id176"]], "9.1.0": [[104, "id177"]], "9.0.0": [[104, "id178"]], "8.2.0": [[104, "id179"]], "8.1.0": [[104, "id180"]], "8.0.1": [[104, "id181"]], "8.0.0": [[104, "id182"]], "7.6.0": [[104, "id183"]], "7.5.0": [[104, "id184"]], "7.4.2": [[104, "id185"]], "7.4.1": [[104, "id186"]], "7.4.0": [[104, "id187"]], "7.3.0": [[104, "id188"]], "7.2.0": [[104, "id189"]], "7.1.1": [[104, "id190"]], "7.1.0": [[104, "id191"]], "7.0.5": [[104, "id192"]], "7.0.4": [[104, "id193"]], "7.0.3": [[104, "id194"]], "7.0.2": [[104, "id195"]], "7.0.1": [[104, "id196"]], "7.0.0": [[104, "id197"]], "6.7.3": [[104, "id198"]], "6.7.2": [[104, "id199"]], "6.7.1": [[104, "id200"]], "6.7.0": [[104, "id201"]], "6.6.0": [[104, "id202"]], "6.5.0": [[104, "id203"]], "6.4.0": [[104, "id204"]], "6.3.1": [[104, "id205"]], "6.3.0": [[104, "id206"]], "6.2.0": [[104, "id207"]], "6.1.0": [[104, "id208"]], "6.0.2": [[104, "id209"]], "6.0.1": [[104, "id210"]], "6.0.0": [[104, "id211"]], "5.3.3": [[104, "id212"]], "5.3.2": [[104, "id213"]], "5.3.1": [[104, "id214"]], "5.3.0": [[104, "id215"]], "5.2.0": [[104, "id216"]], "5.1.0": [[104, "id217"]], "5.0.0": [[104, "id218"]], "4.2.0": [[104, "id219"]], "4.1.0": [[104, "id220"]], "4.0.0": [[104, "id221"]], "3.0.0": [[104, "id222"]], "2.7.0": [[104, "id223"]], "2.6.0": [[104, "id224"]], "2.5.1": [[104, "id225"]], "2.5.0": [[104, "id226"]], "2.4.0": [[104, "id227"]], "2.3.0": [[104, "id228"]], "2.2.0": [[104, "id229"]], "2.1.0": [[104, "id230"]], "2.0.1": [[104, "id231"]], "2.0.0": [[104, "id232"]], "1.4.0": [[104, "id233"]], "1.3.0": [[104, "id234"]], "1.2.1": [[104, "id235"]], "1.2.0": [[104, "id236"]], "1.1.0": [[104, "id237"]], "1.0.4": [[104, "id238"]], "1.0.3": [[104, "id239"]], "1.0.2": [[104, "id240"]], "1.0.1": [[104, "id241"]], "1.0.0": [[104, "id242"]], "0.11.0": [[104, "id243"]], "0.10.1": [[104, "id244"]], "0.10.0": [[104, "id245"]], "0.9.3": [[104, "id246"]], "0.9.2": [[104, "id247"]], "0.9.1": [[104, "id248"]], "0.9.0": [[104, "id249"]], "0.8.7": [[104, "id250"]], "0.8.6": [[104, "id251"]], "0.8.5": [[104, "id252"]], "0.8.4": [[104, "id253"]], "0.8.3": [[104, "id254"]], "0.8.2": [[104, "id255"]], "0.8.1": [[104, "id256"]], "0.8.0": [[104, "id257"]], "0.7.5": [[104, "id258"]], "0.7.4": [[104, "id259"]], "0.7.3": [[104, "id260"]], "0.7.2": [[104, "id261"]], "0.7.1": [[104, "id262"]]}, "indexentries": {"archive (class in rpa.archive)": [[5, "RPA.Archive.Archive"]], "robot_library_doc_format (rpa.archive.archive attribute)": [[5, "RPA.Archive.Archive.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.archive.archive attribute)": [[5, "RPA.Archive.Archive.ROBOT_LIBRARY_SCOPE"]], "add_to_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.add_to_archive"]], "archive_folder_with_tar() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.archive_folder_with_tar"]], "archive_folder_with_zip() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.archive_folder_with_zip"]], "extract_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.extract_archive"]], "extract_file_from_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.extract_file_from_archive"]], "get_archive_info() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.get_archive_info"]], "list_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.list_archive"]], "assistant (class in rpa.assistant)": [[7, "RPA.Assistant.Assistant"]], "robot_auto_keywords (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_LIBRARY_SCOPE"]], "add_button() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_button"]], "add_checkbox() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_checkbox"]], "add_date_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_date_input"]], "add_drop_down() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_drop_down"]], "add_file() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_file"]], "add_file_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_file_input"]], "add_files() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_files"]], "add_flet_icon() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_flet_icon"]], "add_heading() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_heading"]], "add_hidden_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_hidden_input"]], "add_icon() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_icon"]], "add_image() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_image"]], "add_link() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_link"]], "add_loading_bar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_loading_bar"]], "add_loading_spinner() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_loading_spinner"]], "add_next_ui_button() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_next_ui_button"]], "add_password_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_password_input"]], "add_radio_buttons() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_radio_buttons"]], "add_slider() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_slider"]], "add_submit_buttons() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_submit_buttons"]], "add_text() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_text"]], "add_text_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_text_input"]], "ask_user() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.ask_user"]], "clear_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.clear_dialog"]], "close_column() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_column"]], "close_container() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_container"]], "close_navbar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_navbar"]], "close_row() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_row"]], "close_stack() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_stack"]], "open_column() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_column"]], "open_container() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_container"]], "open_navbar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_navbar"]], "open_row() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_row"]], "open_stack() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_stack"]], "refresh_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.refresh_dialog"]], "run_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.run_dialog"]], "set_title() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.set_title"]], "available_options (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.AVAILABLE_OPTIONS"]], "available_services (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.AVAILABLE_SERVICES"]], "browser_names (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.BROWSER_NAMES"]], "chromium_browsers (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.CHROMIUM_BROWSERS"]], "robot_library_doc_format (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_SCOPE"]], "robot_library_version (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_VERSION"]], "supported_browsers (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.SUPPORTED_BROWSERS"]], "selenium (class in rpa.browser.selenium)": [[11, "RPA.Browser.Selenium.Selenium"]], "add_library_components() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.add_library_components"]], "attach_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.attach_chrome_browser"]], "clear_all_highlights() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.clear_all_highlights"]], "click_button_when_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_button_when_visible"]], "click_element_if_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_if_visible"]], "click_element_when_clickable() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_when_clickable"]], "click_element_when_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_when_visible"]], "does_alert_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_alert_contain"]], "does_alert_not_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_alert_not_contain"]], "does_element_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_element_contain"]], "does_frame_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_frame_contain"]], "does_location_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_location_contain"]], "does_page_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain"]], "does_page_contain_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_button"]], "does_page_contain_checkbox() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_checkbox"]], "does_page_contain_element() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_element"]], "does_page_contain_image() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_image"]], "does_page_contain_link() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_link"]], "does_page_contain_list() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_list"]], "does_page_contain_radio_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_radio_button"]], "does_page_contain_textfield() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_textfield"]], "does_table_cell_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_cell_contain"]], "does_table_column_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_column_contain"]], "does_table_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_contain"]], "does_table_footer_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_footer_contain"]], "does_table_header_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_header_contain"]], "does_table_row_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_row_contain"]], "does_textarea_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_textarea_contain"]], "does_textfield_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_textfield_contain"]], "driver (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.driver"]], "execute_cdp() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.execute_cdp"]], "failure_occurred() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.failure_occurred"]], "find_element() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.find_element"]], "find_elements() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.find_elements"]], "get_browser_capabilities() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_browser_capabilities"]], "get_element_status() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_element_status"]], "get_keyword_arguments() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_arguments"]], "get_keyword_documentation() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_documentation"]], "get_keyword_names() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_names"]], "get_keyword_source() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_source"]], "get_keyword_tags() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_tags"]], "get_keyword_types() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_types"]], "get_testability_status() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_testability_status"]], "get_webelement() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_webelement"]], "highlight_elements() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.highlight_elements"]], "input_text_when_element_is_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.input_text_when_element_is_visible"]], "is_alert_present() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_alert_present"]], "is_checkbox_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_checkbox_selected"]], "is_chromium (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.is_chromium"]], "is_element_attribute_equal_to() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_attribute_equal_to"]], "is_element_disabled() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_disabled"]], "is_element_enabled() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_enabled"]], "is_element_focused() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_focused"]], "is_element_text() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_text"]], "is_element_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_visible"]], "is_list_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_list_selected"]], "is_list_selection() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_list_selection"]], "is_location() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_location"]], "is_radio_button_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_radio_button_selected"]], "is_radio_button_set_to() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_radio_button_set_to"]], "is_textarea_value() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_textarea_value"]], "is_textfield_value() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_textfield_value"]], "is_title() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_title"]], "location (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.location"]], "normalize_options() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.normalize_options"]], "open_available_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_available_browser"]], "open_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_chrome_browser"]], "open_headless_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_headless_chrome_browser"]], "open_user_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_user_browser"]], "print_to_pdf() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.print_to_pdf"]], "register_driver() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.register_driver"]], "run_keyword() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.run_keyword"]], "screenshot() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.screenshot"]], "set_download_directory() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.set_download_directory"]], "set_element_attribute() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.set_element_attribute"]], "wait_and_click_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.wait_and_click_button"]], "calendar (class in rpa.calendar)": [[13, "RPA.Calendar.Calendar"]], "robot_auto_keywords (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_LIBRARY_SCOPE"]], "add_custom_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.add_custom_holidays"]], "compare_times() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.compare_times"]], "create_time() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.create_time"]], "first_business_day_of_the_month() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.first_business_day_of_the_month"]], "get_iso_calendar() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.get_iso_calendar"]], "is_the_date_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.is_the_date_business_day"]], "is_the_date_holiday() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.is_the_date_holiday"]], "last_business_day_of_the_month() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.last_business_day_of_the_month"]], "reset_custom_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.reset_custom_holidays"]], "return_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_holidays"]], "return_next_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_next_business_day"]], "return_previous_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_previous_business_day"]], "set_business_days() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.set_business_days"]], "set_locale() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.set_locale"]], "sort_list_of_dates() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.sort_list_of_dates"]], "time_difference() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference"]], "time_difference_between_timezones() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_between_timezones"]], "time_difference_in_days() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_days"]], "time_difference_in_hours() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_hours"]], "time_difference_in_minutes() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_minutes"]], "time_difference_in_months() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_months"]], "time_now() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_now"]], "aws (class in rpa.cloud.aws)": [[15, "RPA.Cloud.AWS.AWS"]], "robot_library_doc_format (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.ROBOT_LIBRARY_SCOPE"]], "analyze_document() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.analyze_document"]], "assume_role() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.assume_role"]], "clients (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.clients"]], "convert_textract_response_to_model() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.convert_textract_response_to_model"]], "create_bucket() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_bucket"]], "create_queue() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_queue"]], "create_redshift_statement_parameters() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_redshift_statement_parameters"]], "delete_bucket() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_bucket"]], "delete_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_files"]], "delete_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_message"]], "delete_queue() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_queue"]], "describe_redshift_table() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.describe_redshift_table"]], "detect_document_text() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_document_text"]], "detect_entities() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_entities"]], "detect_sentiment() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_sentiment"]], "download_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.download_files"]], "execute_redshift_statement() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.execute_redshift_statement"]], "execute_redshift_statement_asyncronously() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.execute_redshift_statement_asyncronously"]], "generate_presigned_url() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.generate_presigned_url"]], "get_cells() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_cells"]], "get_document_analysis() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_document_analysis"]], "get_document_text_detection() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_document_text_detection"]], "get_pages_and_text() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_pages_and_text"]], "get_redshift_statement_results() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_redshift_statement_results"]], "get_tables() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_tables"]], "get_words() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_words"]], "init_comprehend_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_comprehend_client"]], "init_redshift_data_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_redshift_data_client"]], "init_s3_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_s3_client"]], "init_sqs_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_sqs_client"]], "init_sts_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_sts_client"]], "init_textract_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_textract_client"]], "list_buckets() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_buckets"]], "list_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_files"]], "list_redshift_databases() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_databases"]], "list_redshift_schemas() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_schemas"]], "list_redshift_tables() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_tables"]], "logger (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.logger"]], "receive_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.receive_message"]], "region (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.region"]], "robocorp_vault_name (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.robocorp_vault_name"]], "send_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.send_message"]], "services (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.services"]], "set_robocorp_vault() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.set_robocorp_vault"]], "start_document_analysis() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.start_document_analysis"]], "start_document_text_detection() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.start_document_text_detection"]], "upload_file() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.upload_file"]], "upload_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.upload_files"]], "azure (class in rpa.cloud.azure)": [[17, "RPA.Cloud.Azure.Azure"]], "robot_library_doc_format (rpa.cloud.azure.azure attribute)": [[17, "RPA.Cloud.Azure.Azure.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.azure.azure attribute)": [[17, "RPA.Cloud.Azure.Azure.ROBOT_LIBRARY_SCOPE"]], "google (class in rpa.cloud.google)": [[19, "RPA.Cloud.Google.Google"]], "robot_library_doc_format (rpa.cloud.google.google attribute)": [[19, "RPA.Cloud.Google.Google.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.google.google attribute)": [[19, "RPA.Cloud.Google.Google.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.add_library_components"]], "get_keyword_arguments() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_arguments"]], "get_keyword_documentation() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_documentation"]], "get_keyword_names() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_names"]], "get_keyword_source() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_source"]], "get_keyword_tags() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_tags"]], "get_keyword_types() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_types"]], "run_keyword() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.run_keyword"]], "crypto (class in rpa.crypto)": [[21, "RPA.Crypto.Crypto"]], "robot_library_doc_format (rpa.crypto.crypto attribute)": [[21, "RPA.Crypto.Crypto.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.crypto.crypto attribute)": [[21, "RPA.Crypto.Crypto.ROBOT_LIBRARY_SCOPE"]], "decrypt_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.decrypt_file"]], "decrypt_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.decrypt_string"]], "encrypt_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.encrypt_file"]], "encrypt_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.encrypt_string"]], "generate_key() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.generate_key"]], "hash_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.hash_file"]], "hash_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.hash_string"]], "use_encryption_key() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.use_encryption_key"]], "use_encryption_key_from_vault() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.use_encryption_key_from_vault"]], "database (class in rpa.database)": [[23, "RPA.Database.Database"]], "robot_library_doc_format (rpa.database.database attribute)": [[23, "RPA.Database.Database.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.database.database attribute)": [[23, "RPA.Database.Database.ROBOT_LIBRARY_SCOPE"]], "call_stored_procedure() (rpa.database.database method)": [[23, "RPA.Database.Database.call_stored_procedure"]], "connect_to_database() (rpa.database.database method)": [[23, "RPA.Database.Database.connect_to_database"]], "description() (rpa.database.database method)": [[23, "RPA.Database.Database.description"]], "disconnect_from_database() (rpa.database.database method)": [[23, "RPA.Database.Database.disconnect_from_database"]], "execute_sql_script() (rpa.database.database method)": [[23, "RPA.Database.Database.execute_sql_script"]], "get_number_of_rows() (rpa.database.database method)": [[23, "RPA.Database.Database.get_number_of_rows"]], "get_rows() (rpa.database.database method)": [[23, "RPA.Database.Database.get_rows"]], "query() (rpa.database.database method)": [[23, "RPA.Database.Database.query"]], "set_auto_commit() (rpa.database.database method)": [[23, "RPA.Database.Database.set_auto_commit"]], "desktop (class in rpa.desktop)": [[25, "RPA.Desktop.Desktop"]], "robot_library_doc_format (rpa.desktop.desktop attribute)": [[25, "RPA.Desktop.Desktop.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.desktop attribute)": [[25, "RPA.Desktop.Desktop.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.add_library_components"]], "get_keyword_arguments() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_arguments"]], "get_keyword_documentation() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_documentation"]], "get_keyword_names() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_names"]], "get_keyword_source() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_source"]], "get_keyword_tags() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_tags"]], "get_keyword_types() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_types"]], "run_keyword() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.run_keyword"]], "clipboard (class in rpa.desktop.clipboard)": [[27, "RPA.Desktop.Clipboard.Clipboard"]], "robot_library_doc_format (rpa.desktop.clipboard.clipboard attribute)": [[27, "RPA.Desktop.Clipboard.Clipboard.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.clipboard.clipboard attribute)": [[27, "RPA.Desktop.Clipboard.Clipboard.ROBOT_LIBRARY_SCOPE"]], "clear_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.clear_clipboard"]], "copy_to_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.copy_to_clipboard"]], "paste_from_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.paste_from_clipboard"]], "operatingsystem (class in rpa.desktop.operatingsystem)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem"]], "robot_library_doc_format (rpa.desktop.operatingsystem.operatingsystem attribute)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.operatingsystem.operatingsystem attribute)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.ROBOT_LIBRARY_SCOPE"]], "boot_time_in_seconds_from_epoch() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.boot_time_in_seconds_from_epoch"]], "get_boot_time() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_boot_time"]], "get_machine_name() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_machine_name"]], "get_memory_stats() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_memory_stats"]], "get_username() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_username"]], "kill_process() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.kill_process"]], "kill_process_by_pid() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.kill_process_by_pid"]], "process_exists() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.process_exists"]], "process_id_exists() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.process_id_exists"]], "put_system_to_sleep() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.put_system_to_sleep"]], "robot_library_doc_format (rpa.desktop.windows.windows attribute)": [[31, "RPA.Desktop.Windows.Windows.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.windows.windows attribute)": [[31, "RPA.Desktop.Windows.Windows.ROBOT_LIBRARY_SCOPE"]], "windows (class in rpa.desktop.windows)": [[31, "RPA.Desktop.Windows.Windows"]], "boot_time_in_seconds_from_epoch() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.boot_time_in_seconds_from_epoch"]], "calculate_rectangle_center() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.calculate_rectangle_center"]], "click_type() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.click_type"]], "close_all_applications() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.close_all_applications"]], "connect_by_handle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.connect_by_handle"]], "connect_by_pid() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.connect_by_pid"]], "drag_and_drop() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.drag_and_drop"]], "find_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.find_element"]], "get_app() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_app"]], "get_boot_time() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_boot_time"]], "get_dialog_rectangle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_dialog_rectangle"]], "get_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element"]], "get_element_center() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_center"]], "get_element_rectangle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_rectangle"]], "get_element_rich_text() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_rich_text"]], "get_machine_name() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_machine_name"]], "get_memory_stats() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_memory_stats"]], "get_open_applications() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_open_applications"]], "get_spaced_string() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_spaced_string"]], "get_text() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_text"]], "get_username() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_username"]], "get_window_elements() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_window_elements"]], "get_window_list() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_window_list"]], "is_element_enabled() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_enabled"]], "is_element_matching() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_matching"]], "is_element_visible() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_visible"]], "kill_process() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.kill_process"]], "kill_process_by_pid() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.kill_process_by_pid"]], "lock_screen() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.lock_screen"]], "log_in() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.log_in"]], "menu_select() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.menu_select"]], "minimize_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.minimize_dialog"]], "mouse_click() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click"]], "mouse_click_coords() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click_coords"]], "mouse_click_image() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click_image"]], "open_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_application"]], "open_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_dialog"]], "open_executable() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_executable"]], "open_file() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_file"]], "open_from_search() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_from_search"]], "open_using_run_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_using_run_dialog"]], "process_exists() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.process_exists"]], "process_id_exists() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.process_id_exists"]], "put_system_to_sleep() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.put_system_to_sleep"]], "quit_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.quit_application"]], "refresh_window() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.refresh_window"]], "restore_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.restore_dialog"]], "screenshot() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.screenshot"]], "send_keys() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.send_keys"]], "send_keys_to_input() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.send_keys_to_input"]], "set_automation_speed() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.set_automation_speed"]], "set_windows_backend() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.set_windows_backend"]], "switch_to_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.switch_to_application"]], "type_into() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.type_into"]], "type_keys() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.type_keys"]], "wait_for_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.wait_for_element"]], "dialogs (class in rpa.dialogs)": [[33, "RPA.Dialogs.Dialogs"]], "robot_auto_keywords (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_LIBRARY_SCOPE"]], "add_checkbox() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_checkbox"]], "add_date_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_date_input"]], "add_dialog_next_page_button() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_dialog_next_page_button"]], "add_drop_down() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_drop_down"]], "add_element() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_element"]], "add_file() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_file"]], "add_file_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_file_input"]], "add_files() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_files"]], "add_heading() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_heading"]], "add_hidden_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_hidden_input"]], "add_icon() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_icon"]], "add_image() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_image"]], "add_link() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_link"]], "add_password_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_password_input"]], "add_radio_buttons() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_radio_buttons"]], "add_submit_buttons() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_submit_buttons"]], "add_text() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_text"]], "add_text_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_text_input"]], "clear_elements() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.clear_elements"]], "close_all_dialogs() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.close_all_dialogs"]], "close_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.close_dialog"]], "run_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.run_dialog"]], "show_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.show_dialog"]], "wait_all_dialogs() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_all_dialogs"]], "wait_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_dialog"]], "wait_dialogs_as_completed() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_dialogs_as_completed"]], "documentai (class in rpa.documentai.documentai)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI"]], "robot_auto_keywords (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_LIBRARY_SCOPE"]], "engine (rpa.documentai.documentai.documentai property)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.engine"]], "get_result() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.get_result"]], "init_engine() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.init_engine"]], "predict() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.predict"]], "result (rpa.documentai.documentai.documentai property)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.result"]], "switch_engine() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.switch_engine"]], "base_url (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.BASE_URL"]], "base64ai (class in rpa.documentai.base64ai)": [[37, "RPA.DocumentAI.Base64AI.Base64AI"]], "robot_library_doc_format (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.ROBOT_LIBRARY_SCOPE"]], "filter_matching_signatures() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.filter_matching_signatures"]], "get_fields_from_prediction_result() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_fields_from_prediction_result"]], "get_matching_signatures() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_matching_signatures"]], "get_signature_image() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_signature_image"]], "get_user_data() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_user_data"]], "scan_document_file() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.scan_document_file"]], "scan_document_url() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.scan_document_url"]], "set_authorization() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.set_authorization"]], "nanonets (class in rpa.documentai.nanonets)": [[39, "RPA.DocumentAI.Nanonets.Nanonets"]], "robot_library_doc_format (rpa.documentai.nanonets.nanonets attribute)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.nanonets.nanonets attribute)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ROBOT_LIBRARY_SCOPE"]], "get_all_models() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_all_models"]], "get_fields_from_prediction_result() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_fields_from_prediction_result"]], "get_tables_from_prediction_result() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_tables_from_prediction_result"]], "ocr_fulltext() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ocr_fulltext"]], "predict_file() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.predict_file"]], "set_authorization() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.set_authorization"]], "exchange (class in rpa.email.exchange)": [[41, "RPA.Email.Exchange.Exchange"]], "robot_library_doc_format (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.ROBOT_LIBRARY_SCOPE"]], "to_protect (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.TO_PROTECT"]], "authorize() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.authorize"]], "create_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.create_folder"]], "delete_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.delete_folder"]], "empty_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.empty_folder"]], "generate_oauth_url() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.generate_oauth_url"]], "get_oauth_token() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.get_oauth_token"]], "list_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.list_messages"]], "list_unread_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.list_unread_messages"]], "move_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.move_message"]], "move_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.move_messages"]], "refresh_oauth_token() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.refresh_oauth_token"]], "rename_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.rename_folder"]], "save_attachments() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.save_attachments"]], "save_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.save_message"]], "send_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.send_message"]], "send_reply_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.send_reply_message"]], "wait_for_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.wait_for_message"]], "imapsmtp (class in rpa.email.imapsmtp)": [[43, "RPA.Email.ImapSmtp.ImapSmtp"]], "robot_library_doc_format (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.ROBOT_LIBRARY_SCOPE"]], "to_protect (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.TO_PROTECT"]], "add_gmail_labels() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.add_gmail_labels"]], "authorize() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize"]], "authorize_imap() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize_imap"]], "authorize_smtp() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize_smtp"]], "convert_eml_file_into_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.convert_eml_file_into_message"]], "create_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.create_folder"]], "delete_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_folder"]], "delete_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_message"]], "delete_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_messages"]], "do_message_actions() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.do_message_actions"]], "email_to_document() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.email_to_document"]], "flag_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.flag_messages"]], "generate_oauth_string() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.generate_oauth_string"]], "generate_oauth_url() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.generate_oauth_url"]], "get_decoded_email_body() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_decoded_email_body"]], "get_folder_list() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_folder_list"]], "get_oauth_token() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_oauth_token"]], "list_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.list_messages"]], "mark_as_read() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.mark_as_read"]], "mark_as_unread() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.mark_as_unread"]], "move_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.move_messages"]], "move_messages_by_ids() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.move_messages_by_ids"]], "refresh_oauth_token() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.refresh_oauth_token"]], "remove_gmail_labels() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.remove_gmail_labels"]], "rename_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.rename_folder"]], "save_attachment() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_attachment"]], "save_attachments() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_attachments"]], "save_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_messages"]], "select_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.select_folder"]], "send_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.send_message"]], "send_smtp_hello() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.send_smtp_hello"]], "set_credentials() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.set_credentials"]], "unflag_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.unflag_messages"]], "wait_for_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.wait_for_message"]], "app_dispatch (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.APP_DISPATCH"]], "application (class in rpa.excel.application)": [[45, "RPA.Excel.Application.Application"]], "robot_library_doc_format (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.ROBOT_LIBRARY_SCOPE"]], "add_new_sheet() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.add_new_sheet"]], "add_new_workbook() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.add_new_workbook"]], "app (rpa.excel.application.application property)": [[45, "RPA.Excel.Application.Application.app"]], "close_document() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.close_document"]], "export_as_pdf() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.export_as_pdf"]], "find_first_available_cell() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.find_first_available_cell"]], "find_first_available_row() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.find_first_available_row"]], "open_application() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.open_application"]], "open_workbook() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.open_workbook"]], "quit_application() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.quit_application"]], "read_from_cells() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.read_from_cells"]], "run_macro() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.run_macro"]], "save_excel() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.save_excel"]], "save_excel_as() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.save_excel_as"]], "set_active_worksheet() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.set_active_worksheet"]], "write_to_cells() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.write_to_cells"]], "files (class in rpa.excel.files)": [[47, "RPA.Excel.Files.Files"]], "robot_library_doc_format (rpa.excel.files.files attribute)": [[47, "RPA.Excel.Files.Files.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.excel.files.files attribute)": [[47, "RPA.Excel.Files.Files.ROBOT_LIBRARY_SCOPE"]], "append_rows_to_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.append_rows_to_worksheet"]], "auto_size_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.auto_size_columns"]], "clear_cell_range() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.clear_cell_range"]], "close_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.close_workbook"]], "copy_cell_values() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.copy_cell_values"]], "create_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.create_workbook"]], "create_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.create_worksheet"]], "delete_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.delete_columns"]], "delete_rows() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.delete_rows"]], "find_empty_row() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.find_empty_row"]], "get_active_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_active_worksheet"]], "get_cell_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_cell_value"]], "get_worksheet_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_worksheet_value"]], "hide_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.hide_columns"]], "insert_columns_after() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_columns_after"]], "insert_columns_before() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_columns_before"]], "insert_image_to_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_image_to_worksheet"]], "insert_rows_after() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_rows_after"]], "insert_rows_before() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_rows_before"]], "list_worksheets() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.list_worksheets"]], "move_range() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.move_range"]], "open_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.open_workbook"]], "read_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.read_worksheet"]], "read_worksheet_as_table() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.read_worksheet_as_table"]], "remove_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.remove_worksheet"]], "rename_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.rename_worksheet"]], "save_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.save_workbook"]], "set_active_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_active_worksheet"]], "set_cell_format() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_format"]], "set_cell_formula() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_formula"]], "set_cell_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_value"]], "set_cell_values() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_values"]], "set_styles() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_styles"]], "set_worksheet_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_worksheet_value"]], "unhide_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.unhide_columns"]], "worksheet_exists() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.worksheet_exists"]], "filesystem (class in rpa.filesystem)": [[49, "RPA.FileSystem.FileSystem"]], "path_type (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.PATH_TYPE"]], "robot_library_doc_format (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.ROBOT_LIBRARY_SCOPE"]], "absolute_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.absolute_path"]], "append_to_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.append_to_binary_file"]], "append_to_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.append_to_file"]], "change_file_extension() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.change_file_extension"]], "copy_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_directory"]], "copy_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_file"]], "copy_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_files"]], "create_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_binary_file"]], "create_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_directory"]], "create_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_file"]], "does_directory_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_directory_exist"]], "does_directory_not_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_directory_not_exist"]], "does_file_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_file_exist"]], "does_file_not_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_file_not_exist"]], "empty_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.empty_directory"]], "find_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.find_files"]], "get_file_creation_date() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_creation_date"]], "get_file_extension() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_extension"]], "get_file_modified_date() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_modified_date"]], "get_file_name() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_name"]], "get_file_owner() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_owner"]], "get_file_size() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_size"]], "get_file_stem() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_stem"]], "is_directory_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_directory_empty"]], "is_directory_not_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_directory_not_empty"]], "is_file_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_file_empty"]], "is_file_not_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_file_not_empty"]], "join_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.join_path"]], "list_directories_in_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.list_directories_in_directory"]], "list_files_in_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.list_files_in_directory"]], "log_directory_tree() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.log_directory_tree"]], "move_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_directory"]], "move_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_file"]], "move_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_files"]], "normalize_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.normalize_path"]], "read_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.read_binary_file"]], "read_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.read_file"]], "remove_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_directory"]], "remove_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_file"]], "remove_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_files"]], "run_keyword_if_file_exists() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.run_keyword_if_file_exists"]], "touch_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.touch_file"]], "wait_until_created() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_created"]], "wait_until_modified() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_modified"]], "wait_until_removed() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_removed"]], "ftp (class in rpa.ftp)": [[51, "RPA.FTP.FTP"]], "robot_library_doc_format (rpa.ftp.ftp attribute)": [[51, "RPA.FTP.FTP.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.ftp.ftp attribute)": [[51, "RPA.FTP.FTP.ROBOT_LIBRARY_SCOPE"]], "abort() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.abort"]], "close() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.close"]], "connect() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.connect"]], "cwd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.cwd"]], "delete() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.delete"]], "download() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.download"]], "file_size() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.file_size"]], "get_welcome_message() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.get_welcome_message"]], "list_files() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.list_files"]], "mkd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.mkd"]], "pwd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.pwd"]], "quit() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.quit"]], "rename() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.rename"]], "rmd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.rmd"]], "send_command() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.send_command"]], "set_ascii_mode() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_ascii_mode"]], "set_binary_mode() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_binary_mode"]], "set_debug_level() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_debug_level"]], "upload() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.upload"]], "default_retry_method_list (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.DEFAULT_RETRY_METHOD_LIST"]], "http (class in rpa.http)": [[53, "RPA.HTTP.HTTP"]], "robot_library_doc_format (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.ROBOT_LIBRARY_SCOPE"]], "check_vulnerabilities() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.check_vulnerabilities"]], "create_client_cert_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_client_cert_session"]], "create_custom_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_custom_session"]], "create_digest_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_digest_session"]], "create_ntlm_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_ntlm_session"]], "create_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_session"]], "delete_all_sessions() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_all_sessions"]], "delete_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_on_session"]], "delete_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_request"]], "download() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.download"]], "get_current_session_alias() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_current_session_alias"]], "get_file_for_streaming_upload() (rpa.http.http static method)": [[53, "RPA.HTTP.HTTP.get_file_for_streaming_upload"]], "get_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_on_session"]], "get_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_request"]], "head_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.head_on_session"]], "head_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.head_request"]], "http_get() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.http_get"]], "options_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.options_on_session"]], "options_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.options_request"]], "patch_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.patch_on_session"]], "patch_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.patch_request"]], "post_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.post_on_session"]], "post_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.post_request"]], "put_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.put_on_session"]], "put_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.put_request"]], "request_should_be_successful() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.request_should_be_successful"]], "session_exists() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_exists"]], "session_less_delete() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_delete"]], "session_less_get() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_get"]], "session_less_head() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_head"]], "session_less_options() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_options"]], "session_less_patch() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_patch"]], "session_less_post() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_post"]], "session_less_put() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_put"]], "status_should_be() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.status_should_be"]], "to_json() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.to_json"]], "update_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.update_session"]], "builtin_plural_map (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.BUILTIN_PLURAL_MAP"]], "builtin_singular_map (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.BUILTIN_SINGULAR_MAP"]], "hubspot (class in rpa.hubspot)": [[55, "RPA.Hubspot.Hubspot"]], "robot_auto_keywords (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_LIBRARY_SCOPE"]], "add_input_to_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.add_input_to_batch"]], "auth_with_api_key() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.auth_with_api_key"]], "auth_with_token() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.auth_with_token"]], "batch_input (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.batch_input"]], "clear_current_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.clear_current_batch"]], "create_new_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.create_new_batch"]], "create_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.create_object"]], "execute_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.execute_batch"]], "extend_batch_with_inputs() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.extend_batch_with_inputs"]], "get_current_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_batch"]], "get_current_batch_inputs() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_batch_inputs"]], "get_current_stage_of_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_stage_of_object"]], "get_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_object"]], "get_owner_by_id() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_owner_by_id"]], "get_owner_of_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_owner_of_object"]], "get_pipeline() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_pipeline"]], "get_pipeline_stages() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_pipeline_stages"]], "get_user() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_user"]], "list_associations() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.list_associations"]], "list_pipelines() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.list_pipelines"]], "pipelines (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.pipelines"]], "schemas (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.schemas"]], "search_for_objects() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.search_for_objects"]], "set_association() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.set_association"]], "set_current_batch_input() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.set_current_batch_input"]], "update_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.update_object"]], "images (class in rpa.images)": [[57, "RPA.Images.Images"]], "robot_library_doc_format (rpa.images.images attribute)": [[57, "RPA.Images.Images.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.images.images attribute)": [[57, "RPA.Images.Images.ROBOT_LIBRARY_SCOPE"]], "crop_image() (rpa.images.images method)": [[57, "RPA.Images.Images.crop_image"]], "find_template_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.find_template_in_image"]], "get_pixel_color_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.get_pixel_color_in_image"]], "show_region_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.show_region_in_image"]], "javaaccessbridge (class in rpa.javaaccessbridge)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge"]], "robot_auto_keywords (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_LIBRARY_SCOPE"]], "application_refresh() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.application_refresh"]], "call_element_action() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.call_element_action"]], "click_coordinates() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_coordinates"]], "click_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_element"]], "click_push_button() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_push_button"]], "close_java_window() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.close_java_window"]], "get_element_actions() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_element_actions"]], "get_element_text() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_element_text"]], "get_elements() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_elements"]], "get_locator_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_locator_tree"]], "get_version_info() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_version_info"]], "highlight_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.highlight_element"]], "list_java_windows() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.list_java_windows"]], "press_keys() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.press_keys"]], "print_element_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.print_element_tree"]], "print_locator_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.print_locator_tree"]], "read_table() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.read_table"]], "refresh_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.refresh_element"]], "select_menu() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_menu"]], "select_window() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window"]], "select_window_by_pid() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window_by_pid"]], "select_window_by_title() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window_by_title"]], "set_display_scale_factor() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.set_display_scale_factor"]], "set_mouse_position() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.set_mouse_position"]], "shutdown_jab() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.shutdown_jab"]], "toggle_drop_down() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.toggle_drop_down"]], "type_text() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.type_text"]], "wait_until_element_exists() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_exists"]], "wait_until_element_is_focused() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_is_focused"]], "wait_until_element_text_contains() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_text_contains"]], "wait_until_element_text_equals() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_text_equals"]], "json (class in rpa.json)": [[61, "RPA.JSON.JSON"]], "robot_library_doc_format (rpa.json.json attribute)": [[61, "RPA.JSON.JSON.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.json.json attribute)": [[61, "RPA.JSON.JSON.ROBOT_LIBRARY_SCOPE"]], "add_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.add_to_json"]], "convert_json_to_string() (rpa.json.json method)": [[61, "RPA.JSON.JSON.convert_json_to_string"]], "convert_string_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.convert_string_to_json"]], "delete_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.delete_from_json"]], "get_value_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.get_value_from_json"]], "get_values_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.get_values_from_json"]], "load_json_from_file() (rpa.json.json method)": [[61, "RPA.JSON.JSON.load_json_from_file"]], "save_json_to_file() (rpa.json.json method)": [[61, "RPA.JSON.JSON.save_json_to_file"]], "update_value_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.update_value_to_json"]], "mfa (class in rpa.mfa)": [[63, "RPA.MFA.MFA"]], "robot_library_doc_format (rpa.mfa.mfa attribute)": [[63, "RPA.MFA.MFA.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.mfa.mfa attribute)": [[63, "RPA.MFA.MFA.ROBOT_LIBRARY_SCOPE"]], "generate_oauth_url() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.generate_oauth_url"]], "get_counter_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_counter_based_otp"]], "get_oauth_token() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_oauth_token"]], "get_time_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_time_based_otp"]], "oauth (rpa.mfa.mfa property)": [[63, "RPA.MFA.MFA.oauth"]], "refresh_oauth_token() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.refresh_oauth_token"]], "set_counter_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.set_counter_based_otp"]], "set_time_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.set_time_based_otp"]], "use_mfa_secret_from_vault() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.use_mfa_secret_from_vault"]], "msgraph (class in rpa.msgraph)": [[65, "RPA.MSGraph.MSGraph"]], "robot_library_doc_format (rpa.msgraph.msgraph attribute)": [[65, "RPA.MSGraph.MSGraph.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.msgraph.msgraph attribute)": [[65, "RPA.MSGraph.MSGraph.ROBOT_LIBRARY_SCOPE"]], "authorize_and_get_token() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.authorize_and_get_token"]], "configure_msgraph_client() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.configure_msgraph_client"]], "create_sharepoint_list() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.create_sharepoint_list"]], "download_file_from_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_onedrive"]], "download_file_from_share_link() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_share_link"]], "download_file_from_sharepoint() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_sharepoint"]], "download_folder_from_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_folder_from_onedrive"]], "find_onedrive_file() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.find_onedrive_file"]], "generate_oauth_authorization_url() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.generate_oauth_authorization_url"]], "get_drive_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_drive_instance"]], "get_file_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_file_instance"]], "get_folder_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_folder_instance"]], "get_items_from_sharepoint_list() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_items_from_sharepoint_list"]], "get_me() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_me"]], "get_scopes() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_scopes"]], "get_sharepoint_site() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_sharepoint_site"]], "list_files_in_onedrive_folder() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_files_in_onedrive_folder"]], "list_files_in_sharepoint_site_drive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_files_in_sharepoint_site_drive"]], "list_sharepoint_site_drives() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_sharepoint_site_drives"]], "refresh_oauth_token() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.refresh_oauth_token"]], "search_for_users() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.search_for_users"]], "upload_file_to_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.upload_file_to_onedrive"]], "netsuite (class in rpa.netsuite)": [[67, "RPA.Netsuite.Netsuite"]], "robot_library_doc_format (rpa.netsuite.netsuite attribute)": [[67, "RPA.Netsuite.Netsuite.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.netsuite.netsuite attribute)": [[67, "RPA.Netsuite.Netsuite.ROBOT_LIBRARY_SCOPE"]], "connect() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.connect"]], "get_accounts() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_accounts"]], "get_classifications() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_classifications"]], "get_currencies() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_currencies"]], "get_currency() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_currency"]], "get_departments() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_departments"]], "get_locations() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_locations"]], "get_vendor_bills() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_vendor_bills"]], "get_vendors() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_vendors"]], "login() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.login"]], "netsuite_get() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_get"]], "netsuite_get_all() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_get_all"]], "netsuite_search() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_search"]], "netsuite_search_all() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_search_all"]], "notifier (class in rpa.notifier)": [[69, "RPA.Notifier.Notifier"]], "robot_library_doc_format (rpa.notifier.notifier attribute)": [[69, "RPA.Notifier.Notifier.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.notifier.notifier attribute)": [[69, "RPA.Notifier.Notifier.ROBOT_LIBRARY_SCOPE"]], "generic_notify() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.generic_notify"]], "notify_email() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_email"]], "notify_gmail() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_gmail"]], "notify_pushover() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_pushover"]], "notify_slack() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_slack"]], "notify_telegram() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_telegram"]], "notify_twilio() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_twilio"]], "openai (class in rpa.openai)": [[71, "RPA.OpenAI.OpenAI"]], "robot_library_doc_format (rpa.openai.openai attribute)": [[71, "RPA.OpenAI.OpenAI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.openai.openai attribute)": [[71, "RPA.OpenAI.OpenAI.ROBOT_LIBRARY_SCOPE"]], "authorize_to_azure_openai() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.authorize_to_azure_openai"]], "authorize_to_openai() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.authorize_to_openai"]], "chat_completion_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.chat_completion_create"]], "completion_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.completion_create"]], "image_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.image_create"]], "image_create_variation() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.image_create_variation"]], "app_dispatch (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.APP_DISPATCH"]], "application (class in rpa.outlook.application)": [[73, "RPA.Outlook.Application.Application"]], "robot_library_doc_format (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.ROBOT_LIBRARY_SCOPE"]], "app (rpa.outlook.application.application property)": [[73, "RPA.Outlook.Application.Application.app"]], "close_document() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.close_document"]], "get_emails() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.get_emails"]], "mark_email_as_read() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.mark_email_as_read"]], "move_emails() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.move_emails"]], "open_application() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.open_application"]], "quit_application() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.quit_application"]], "save_email_attachments() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.save_email_attachments"]], "send_email() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.send_email"]], "wait_for_email() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.wait_for_email"]], "pdf (class in rpa.pdf)": [[75, "RPA.PDF.PDF"]], "robot_library_doc_format (rpa.pdf.pdf attribute)": [[75, "RPA.PDF.PDF.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.pdf.pdf attribute)": [[75, "RPA.PDF.PDF.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.add_library_components"]], "get_keyword_arguments() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_arguments"]], "get_keyword_documentation() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_documentation"]], "get_keyword_names() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_names"]], "get_keyword_source() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_source"]], "get_keyword_tags() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_tags"]], "get_keyword_types() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_types"]], "run_keyword() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.run_keyword"]], "process (class in rpa.robocorp.process)": [[77, "RPA.Robocorp.Process.Process"]], "robot_auto_keywords (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_LIBRARY_SCOPE"]], "base_api (rpa.robocorp.process.process property)": [[77, "RPA.Robocorp.Process.Process.base_api"]], "create_input_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.create_input_work_item"]], "get_process_id_by_name() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_process_id_by_name"]], "get_process_run_status() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_process_run_status"]], "get_robot_run_artifact() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_robot_run_artifact"]], "get_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_work_item"]], "headers (rpa.robocorp.process.process property)": [[77, "RPA.Robocorp.Process.Process.headers"]], "list_process_run_work_items() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_run_work_items"]], "list_process_runs() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_runs"]], "list_process_runs_in_workspace() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_runs_in_workspace"]], "list_process_work_items() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_work_items"]], "list_processes() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_processes"]], "list_run_artifacts() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_run_artifacts"]], "process_api() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.process_api"]], "register_file_upload() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.register_file_upload"]], "retry_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.retry_work_item"]], "set_apikey() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_apikey"]], "set_credentials() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_credentials"]], "set_process_id() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_process_id"]], "set_workspace_id() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_workspace_id"]], "start_configured_process() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.start_configured_process"]], "start_process() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.start_process"]], "upload_file_to_s3() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.upload_file_to_s3"]], "workspace_api() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.workspace_api"]], "robot_library_doc_format (rpa.robocorp.vault.vault attribute)": [[79, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_DOC_FORMAT"], [81, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.vault.vault attribute)": [[79, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_SCOPE"], [81, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_SCOPE"]], "vault (class in rpa.robocorp.vault)": [[79, "RPA.Robocorp.Vault.Vault"], [81, "RPA.Robocorp.Vault.Vault"]], "adapter (rpa.robocorp.vault.vault property)": [[79, "RPA.Robocorp.Vault.Vault.adapter"], [81, "RPA.Robocorp.Vault.Vault.adapter"]], "get_secret() (rpa.robocorp.vault.vault method)": [[79, "RPA.Robocorp.Vault.Vault.get_secret"], [81, "RPA.Robocorp.Vault.Vault.get_secret"]], "set_secret() (rpa.robocorp.vault.vault method)": [[79, "RPA.Robocorp.Vault.Vault.set_secret"], [81, "RPA.Robocorp.Vault.Vault.set_secret"]], "email_body_loaders (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.EMAIL_BODY_LOADERS"]], "robot_auto_keywords (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LIBRARY_SCOPE"]], "robot_listener_api_version (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LISTENER_API_VERSION"]], "workitems (class in rpa.robocorp.workitems)": [[83, "RPA.Robocorp.WorkItems.WorkItems"]], "active_input (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.active_input"]], "adapter (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.adapter"]], "add_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.add_work_item_file"]], "add_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.add_work_item_files"]], "clear_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.clear_work_item"]], "create_output_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.create_output_work_item"]], "current (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.current"]], "delete_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.delete_work_item_variables"]], "for_each_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.for_each_input_work_item"]], "get_current_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_current_work_item"]], "get_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_input_work_item"]], "get_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_file"]], "get_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_files"]], "get_work_item_payload() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_payload"]], "get_work_item_variable() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_variable"]], "get_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_variables"]], "inputs (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.inputs"]], "list_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.list_work_item_files"]], "list_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.list_work_item_variables"]], "outputs (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.outputs"]], "release_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.release_input_work_item"]], "remove_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.remove_work_item_file"]], "remove_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.remove_work_item_files"]], "root (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.root"]], "save_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.save_work_item"]], "set_current_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_current_work_item"]], "set_task_variables_from_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_task_variables_from_work_item"]], "set_work_item_payload() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_payload"]], "set_work_item_variable() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_variable"]], "set_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_variables"]], "info_level_keywords (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.INFO_LEVEL_KEYWORDS"]], "keywords_to_mute (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.KEYWORDS_TO_MUTE"]], "keywords_to_protect (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.KEYWORDS_TO_PROTECT"]], "robot_library_doc_format (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LIBRARY_SCOPE"]], "robot_listener_api_version (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LISTENER_API_VERSION"]], "robotloglistener (class in rpa.robotloglistener)": [[85, "RPA.RobotLogListener.RobotLogListener"]], "end_keyword() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.end_keyword"]], "mute_run_on_failure() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.mute_run_on_failure"]], "only_info_level() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.only_info_level"]], "register_protected_keywords() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.register_protected_keywords"]], "start_keyword() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.start_keyword"]], "robot_library_doc_format (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.ROBOT_LIBRARY_SCOPE"]], "salesforce (class in rpa.salesforce)": [[87, "RPA.Salesforce.Salesforce"]], "account (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.account"]], "add_product_into_opportunity() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.add_product_into_opportunity"]], "auth_with_connected_app() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.auth_with_connected_app"]], "auth_with_token() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.auth_with_token"]], "create_new_opportunity() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.create_new_opportunity"]], "create_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.create_salesforce_object"]], "delete_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.delete_salesforce_object"]], "describe_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.describe_salesforce_object"]], "execute_apex() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.execute_apex"]], "execute_dataloader_insert() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.execute_dataloader_insert"]], "get_dataloader_error_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_dataloader_error_table"]], "get_dataloader_success_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_dataloader_success_table"]], "get_domain() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_domain"]], "get_opportunity_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_opportunity_id"]], "get_pricebook_entries() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_pricebook_entries"]], "get_pricebook_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_pricebook_id"]], "get_products_in_pricelist() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_products_in_pricelist"]], "get_salesforce_object_by_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_salesforce_object_by_id"]], "get_salesforce_object_metadata() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_salesforce_object_metadata"]], "instance (rpa.salesforce.salesforce property)": [[87, "RPA.Salesforce.Salesforce.instance"]], "read_dictionary_from_file() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.read_dictionary_from_file"]], "salesforce_query() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.salesforce_query"]], "salesforce_query_result_as_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.salesforce_query_result_as_table"]], "session_id (rpa.salesforce.salesforce property)": [[87, "RPA.Salesforce.Salesforce.session_id"]], "set_account() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_account"]], "set_domain() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_domain"]], "set_pricebook() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_pricebook"]], "update_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.update_salesforce_object"]], "upsert_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.upsert_salesforce_object"]], "robot_library_scope (rpa.sap.sap attribute)": [[89, "RPA.SAP.SAP.ROBOT_LIBRARY_SCOPE"]], "sap (class in rpa.sap)": [[89, "RPA.SAP.SAP"]], "click_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.click_element"]], "click_toolbar_button() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.click_toolbar_button"]], "connect_to_existing_connection() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.connect_to_existing_connection"]], "connect_to_session() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.connect_to_session"]], "disable_screenshots_on_error() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.disable_screenshots_on_error"]], "doubleclick_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.doubleclick_element"]], "element_should_be_present() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_should_be_present"]], "element_value_should_be() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_value_should_be"]], "element_value_should_contain() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_value_should_contain"]], "enable_screenshots_on_error() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.enable_screenshots_on_error"]], "focus_and_click() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.focus_and_click"]], "focus_and_input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.focus_and_input_text"]], "generic_click_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_click_element"]], "generic_input_password() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_input_password"]], "generic_input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_input_text"]], "get_cell_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_cell_value"]], "get_element_location() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_location"]], "get_element_type() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_type"]], "get_element_type_of_object() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_type_of_object"]], "get_row_count() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_row_count"]], "get_scroll_position() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_scroll_position"]], "get_statusbar_type() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_statusbar_type"]], "get_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_value"]], "get_window_title() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_window_title"]], "input_password() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.input_password"]], "input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.input_text"]], "maximize_window() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.maximize_window"]], "open_connection() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.open_connection"]], "run_transaction() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.run_transaction"]], "scroll() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.scroll"]], "select_checkbox() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_checkbox"]], "select_context_menu_item() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_context_menu_item"]], "select_from_list_by_label() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_from_list_by_label"]], "select_node() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_node"]], "select_node_link() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_node_link"]], "select_radio_button() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_radio_button"]], "select_table_column() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_table_column"]], "select_table_row() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_table_row"]], "send_vkey() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.send_vkey"]], "set_cell_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_cell_value"]], "set_explicit_wait() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_explicit_wait"]], "set_focus() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_focus"]], "take_screenshot() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.take_screenshot"]], "unselect_checkbox() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.unselect_checkbox"]], "robot_library_doc_format (rpa.slack.slack attribute)": [[91, "RPA.Slack.Slack.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.slack.slack attribute)": [[91, "RPA.Slack.Slack.ROBOT_LIBRARY_SCOPE"]], "slack (class in rpa.slack)": [[91, "RPA.Slack.Slack"]], "slack_message_using_webhook() (rpa.slack.slack method)": [[91, "RPA.Slack.Slack.slack_message_using_webhook"]], "slack_raw_message() (rpa.slack.slack method)": [[91, "RPA.Slack.Slack.slack_raw_message"]], "robot_auto_keywords (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_LIBRARY_SCOPE"]], "row_excludes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROW_EXCLUDES"]], "row_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROW_INCLUDES"]], "search_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SEARCH_INCLUDES"]], "search_scopes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SEARCH_SCOPES"]], "sheet_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SHEET_INCLUDES"]], "smartsheet (class in rpa.smartsheet)": [[93, "RPA.Smartsheet.Smartsheet"]], "add_column() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_column"]], "add_columns() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_columns"]], "add_rows() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_rows"]], "convert_row_to_dict() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.convert_row_to_dict"]], "convert_sheet_to_table() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.convert_sheet_to_table"]], "create_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.create_sheet"]], "download_attachment() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.download_attachment"]], "get_application_constants() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_application_constants"]], "get_cell_history() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_cell_history"]], "get_current_user() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_current_user"]], "get_row() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_row"]], "get_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_sheet"]], "get_sheet_owner() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_sheet_owner"]], "list_attachments() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_attachments"]], "list_columns() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_columns"]], "list_sheet_filters() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_sheet_filters"]], "list_sheets() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_sheets"]], "refresh_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.refresh_sheet"]], "search() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.search"]], "set_access_token() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_access_token"]], "set_max_retry_time() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_max_retry_time"]], "set_row() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_row"]], "set_rows() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_rows"]], "sheets (rpa.smartsheet.smartsheet property)": [[93, "RPA.Smartsheet.Smartsheet.sheets"]], "unselect_current_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.unselect_current_sheet"]], "update_column() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.update_column"]], "robot_library_doc_format (rpa.tables.tables attribute)": [[95, "RPA.Tables.Tables.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.tables.tables attribute)": [[95, "RPA.Tables.Tables.ROBOT_LIBRARY_SCOPE"]], "tables (class in rpa.tables)": [[95, "RPA.Tables.Tables"]], "add_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.add_table_column"]], "add_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.add_table_row"]], "clear_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.clear_table"]], "copy_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.copy_table"]], "create_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.create_table"]], "export_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.export_table"]], "filter_empty_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_empty_rows"]], "filter_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_table_by_column"]], "filter_table_with_keyword() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_table_with_keyword"]], "find_table_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.find_table_rows"]], "get_table_cell() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_cell"]], "get_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_column"]], "get_table_dimensions() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_dimensions"]], "get_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_row"]], "get_table_slice() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_slice"]], "group_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.group_table_by_column"]], "map_column_values() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.map_column_values"]], "merge_tables() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.merge_tables"]], "pop_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.pop_table_column"]], "pop_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.pop_table_row"]], "read_table_from_csv() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.read_table_from_csv"]], "rename_table_columns() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.rename_table_columns"]], "set_row_as_column_names() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_row_as_column_names"]], "set_table_cell() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_cell"]], "set_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_column"]], "set_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_row"]], "sort_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.sort_table_by_column"]], "table_head() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.table_head"]], "table_tail() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.table_tail"]], "trim_column_names() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.trim_column_names"]], "trim_empty_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.trim_empty_rows"]], "write_table_to_csv() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.write_table_to_csv"]], "robot_library_doc_format (rpa.twitter.twitter attribute)": [[98, "RPA.Twitter.Twitter.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.twitter.twitter attribute)": [[98, "RPA.Twitter.Twitter.ROBOT_LIBRARY_SCOPE"]], "twitter (class in rpa.twitter)": [[98, "RPA.Twitter.Twitter"]], "authorize() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.authorize"]], "follow() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.follow"]], "get_me() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_me"]], "get_user_profile() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_user_profile"]], "get_user_tweets() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_user_tweets"]], "like() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.like"]], "text_search_tweets() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.text_search_tweets"]], "tweet() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.tweet"]], "unfollow() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.unfollow"]], "unlike() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.unlike"]], "robot_library_doc_format (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.ROBOT_LIBRARY_SCOPE"]], "simulate_move (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.SIMULATE_MOVE"]], "windows (class in rpa.windows)": [[100, "RPA.Windows.Windows"]], "add_library_components() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.add_library_components"]], "get_keyword_arguments() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_arguments"]], "get_keyword_documentation() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_documentation"]], "get_keyword_names() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_names"]], "get_keyword_source() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_source"]], "get_keyword_tags() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_tags"]], "get_keyword_types() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_types"]], "run_keyword() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.run_keyword"]], "app_dispatch (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.APP_DISPATCH"]], "application (class in rpa.word.application)": [[102, "RPA.Word.Application.Application"]], "fileformats (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.FILEFORMATS"]], "robot_library_doc_format (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.ROBOT_LIBRARY_SCOPE"]], "app (rpa.word.application.application property)": [[102, "RPA.Word.Application.Application.app"]], "close_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.close_document"]], "create_new_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.create_new_document"]], "export_to_pdf() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.export_to_pdf"]], "get_all_texts() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.get_all_texts"]], "open_application() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.open_application"]], "open_file() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.open_file"]], "quit_application() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.quit_application"]], "replace_text() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.replace_text"]], "save_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.save_document"]], "save_document_as() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.save_document_as"]], "set_footer() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.set_footer"]], "set_header() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.set_header"]], "write_text() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.write_text"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["contributing/conventions", "contributing/guide", "contributing/todos", "index", "libraries/archive/index", "libraries/archive/python", "libraries/assistant/index", "libraries/assistant/python", "libraries/browser/index", "libraries/browser_playwright/index", "libraries/browser_selenium/index", "libraries/browser_selenium/python", "libraries/calendar/index", "libraries/calendar/python", "libraries/cloud_aws/index", "libraries/cloud_aws/python", "libraries/cloud_azure/index", "libraries/cloud_azure/python", "libraries/cloud_google/index", "libraries/cloud_google/python", "libraries/crypto/index", "libraries/crypto/python", "libraries/database/index", "libraries/database/python", "libraries/desktop/index", "libraries/desktop/python", "libraries/desktop_clipboard/index", "libraries/desktop_clipboard/python", "libraries/desktop_operatingsystem/index", "libraries/desktop_operatingsystem/python", "libraries/desktop_windows/index", "libraries/desktop_windows/python", "libraries/dialogs/index", "libraries/dialogs/python", "libraries/documentai/index", "libraries/documentai/python", "libraries/documentai_base64ai/index", "libraries/documentai_base64ai/python", "libraries/documentai_nanonets/index", "libraries/documentai_nanonets/python", "libraries/email_exchange/index", "libraries/email_exchange/python", "libraries/email_imapsmtp/index", "libraries/email_imapsmtp/python", "libraries/excel_application/index", "libraries/excel_application/python", "libraries/excel_files/index", "libraries/excel_files/python", "libraries/filesystem/index", "libraries/filesystem/python", "libraries/ftp/index", "libraries/ftp/python", "libraries/http/index", "libraries/http/python", "libraries/hubspot/index", "libraries/hubspot/python", "libraries/images/index", "libraries/images/python", "libraries/javaaccessbridge/index", "libraries/javaaccessbridge/python", "libraries/json/index", "libraries/json/python", "libraries/mfa/index", "libraries/mfa/python", "libraries/msgraph/index", "libraries/msgraph/python", "libraries/netsuite/index", "libraries/netsuite/python", "libraries/notifier/index", "libraries/notifier/python", "libraries/openai/index", "libraries/openai/python", "libraries/outlook_application/index", "libraries/outlook_application/python", "libraries/pdf/index", "libraries/pdf/python", "libraries/robocorp_process/index", "libraries/robocorp_process/python", "libraries/robocorp_storage/index", "libraries/robocorp_storage/python", "libraries/robocorp_vault/index", "libraries/robocorp_vault/python", "libraries/robocorp_workitems/index", "libraries/robocorp_workitems/python", "libraries/robotloglistener/index", "libraries/robotloglistener/python", "libraries/salesforce/index", "libraries/salesforce/python", "libraries/sap/index", "libraries/sap/python", "libraries/slack/index", "libraries/slack/python", "libraries/smartsheet/index", "libraries/smartsheet/python", "libraries/tables/index", "libraries/tables/python", "libraries/tasks/index", "libraries/twitter/index", "libraries/twitter/python", "libraries/windows/index", "libraries/windows/python", "libraries/word_application/index", "libraries/word_application/python", "packages", "releasenotes"], "filenames": ["contributing\\conventions.rst", "contributing\\guide.rst", "contributing\\todos.rst", "index.rst", "libraries\\archive\\index.rst", "libraries\\archive\\python.rst", "libraries\\assistant\\index.rst", "libraries\\assistant\\python.rst", "libraries\\browser\\index.rst", "libraries\\browser_playwright\\index.rst", "libraries\\browser_selenium\\index.rst", "libraries\\browser_selenium\\python.rst", "libraries\\calendar\\index.rst", "libraries\\calendar\\python.rst", "libraries\\cloud_aws\\index.rst", "libraries\\cloud_aws\\python.rst", "libraries\\cloud_azure\\index.rst", "libraries\\cloud_azure\\python.rst", "libraries\\cloud_google\\index.rst", "libraries\\cloud_google\\python.rst", "libraries\\crypto\\index.rst", "libraries\\crypto\\python.rst", "libraries\\database\\index.rst", "libraries\\database\\python.rst", "libraries\\desktop\\index.rst", "libraries\\desktop\\python.rst", "libraries\\desktop_clipboard\\index.rst", "libraries\\desktop_clipboard\\python.rst", "libraries\\desktop_operatingsystem\\index.rst", "libraries\\desktop_operatingsystem\\python.rst", "libraries\\desktop_windows\\index.rst", "libraries\\desktop_windows\\python.rst", "libraries\\dialogs\\index.rst", "libraries\\dialogs\\python.rst", "libraries\\documentai\\index.rst", "libraries\\documentai\\python.rst", "libraries\\documentai_base64ai\\index.rst", "libraries\\documentai_base64ai\\python.rst", "libraries\\documentai_nanonets\\index.rst", "libraries\\documentai_nanonets\\python.rst", "libraries\\email_exchange\\index.rst", "libraries\\email_exchange\\python.rst", "libraries\\email_imapsmtp\\index.rst", "libraries\\email_imapsmtp\\python.rst", "libraries\\excel_application\\index.rst", "libraries\\excel_application\\python.rst", "libraries\\excel_files\\index.rst", "libraries\\excel_files\\python.rst", "libraries\\filesystem\\index.rst", "libraries\\filesystem\\python.rst", "libraries\\ftp\\index.rst", "libraries\\ftp\\python.rst", "libraries\\http\\index.rst", "libraries\\http\\python.rst", "libraries\\hubspot\\index.rst", "libraries\\hubspot\\python.rst", "libraries\\images\\index.rst", "libraries\\images\\python.rst", "libraries\\javaaccessbridge\\index.rst", "libraries\\javaaccessbridge\\python.rst", "libraries\\json\\index.rst", "libraries\\json\\python.rst", "libraries\\mfa\\index.rst", "libraries\\mfa\\python.rst", "libraries\\msgraph\\index.rst", "libraries\\msgraph\\python.rst", "libraries\\netsuite\\index.rst", "libraries\\netsuite\\python.rst", "libraries\\notifier\\index.rst", "libraries\\notifier\\python.rst", "libraries\\openai\\index.rst", "libraries\\openai\\python.rst", "libraries\\outlook_application\\index.rst", "libraries\\outlook_application\\python.rst", "libraries\\pdf\\index.rst", "libraries\\pdf\\python.rst", "libraries\\robocorp_process\\index.rst", "libraries\\robocorp_process\\python.rst", "libraries\\robocorp_storage\\index.rst", "libraries\\robocorp_storage\\python.rst", "libraries\\robocorp_vault\\index.rst", "libraries\\robocorp_vault\\python.rst", "libraries\\robocorp_workitems\\index.rst", "libraries\\robocorp_workitems\\python.rst", "libraries\\robotloglistener\\index.rst", "libraries\\robotloglistener\\python.rst", "libraries\\salesforce\\index.rst", "libraries\\salesforce\\python.rst", "libraries\\sap\\index.rst", "libraries\\sap\\python.rst", "libraries\\slack\\index.rst", "libraries\\slack\\python.rst", "libraries\\smartsheet\\index.rst", "libraries\\smartsheet\\python.rst", "libraries\\tables\\index.rst", "libraries\\tables\\python.rst", "libraries\\tasks\\index.rst", "libraries\\twitter\\index.rst", "libraries\\twitter\\python.rst", "libraries\\windows\\index.rst", "libraries\\windows\\python.rst", "libraries\\word_application\\index.rst", "libraries\\word_application\\python.rst", "packages.rst", "releasenotes.rst"], "titles": ["Project conventions", "Contribution guide", "TODO", "RPA Framework", "Archive", "Python API", "Assistant", "Python API", "Browser", "Browser.Playwright", "Browser.Selenium", "Python API", "Calendar", "Python API", "Cloud.AWS", "Python API", "Cloud.Azure", "Python API", "Cloud.Google", "Python API", "Crypto", "Python API", "Database", "Python API", "Desktop", "Python API", "Desktop.Clipboard", "Python API", "Desktop.OperatingSystem", "Python API", "Desktop.Windows", "Python API", "Dialogs", "Python API", "DocumentAI", "Python API", "DocumentAI.Base64AI", "Python API", "DocumentAI.Nanonets", "Python API", "Email.Exchange", "Python API", "Email.ImapSmtp", "Python API", "Excel.Application", "Python API", "Excel.Files", "Python API", "FileSystem", "Python API", "FTP", "Python API", "HTTP", "Python API", "HubSpot", "Python API", "Images", "Python API", "JavaAccessBridge", "Python API", "JSON", "Python API", "MFA", "Python API", "MSGraph", "Python API", "Netsuite", "Python API", "Notifier", "Python API", "OpenAI", "Python API", "Outlook.Application", "Python API", "PDF", "Python API", "Robocorp.Process", "Python API", "Robocorp.Storage", "Python API", "Robocorp.Vault", "Python API", "Robocorp.WorkItems", "Python API", "RobotLogListener", "Python API", "Salesforce", "Python API", "SAP", "Python API", "Slack", "Python API", "Smartsheet", "Python API", "Tables", "Python API", "Tasks", "Twitter", "Python API", "Windows", "Python API", "Word.Application", "Python API", "Robo", "Release notes"], "terms": {"thi": [0, 1, 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 73, 75, 77, 83, 85, 89, 93, 95, 100, 102, 104], "describ": [0, 1, 3, 11, 13, 15, 17, 25, 37, 55, 59, 83, 87], "common": [0, 3, 13, 17, 20, 21, 47, 55, 59, 61, 65, 93, 95, 100, 104], "all": [0, 2, 3, 5, 7, 11, 15, 17, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 100, 102], "contain": [0, 1, 3, 5, 7, 11, 13, 15, 19, 25, 31, 33, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 63, 67, 69, 71, 73, 77, 79, 81, 83, 89, 93, 95, 100, 104], "rpa": [0, 1, 5, 7, 8, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "framework": [0, 1, 7, 11, 13, 15, 17, 19, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 67, 69, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 91, 93, 95, 96, 100, 102], "repositori": [0, 3, 15, 59], "librari": [0, 1, 5, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 21, 23, 25, 27, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 58, 59, 61, 63, 64, 65, 67, 69, 70, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 99, 100, 102, 104], "which": [0, 3, 5, 7, 11, 13, 15, 17, 19, 25, 29, 31, 33, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 69, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 100, 102, 104], "ar": [0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 41, 43, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 71, 73, 79, 81, 83, 85, 87, 93, 95, 98, 100, 104], "part": [0, 1, 9, 11, 15, 31, 49, 53, 89, 104], "should": [0, 1, 2, 3, 5, 7, 11, 15, 19, 21, 23, 25, 31, 33, 41, 43, 47, 53, 55, 57, 59, 61, 63, 65, 69, 73, 83, 85, 87, 93, 95, 104], "follow": [0, 1, 3, 5, 7, 11, 13, 15, 19, 21, 25, 31, 33, 34, 35, 37, 41, 43, 45, 53, 55, 59, 61, 65, 77, 83, 87, 93, 95, 98, 100, 104], "make": [0, 1, 3, 7, 11, 15, 33, 43, 45, 53, 73, 89, 95, 98, 100, 102, 104], "mainten": 0, "bootstrap": 0, "easier": [0, 55, 95, 104], "share": [0, 11, 21, 65, 73, 100, 104], "i": [0, 1, 2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "prefix": [0, 11, 15, 25, 41, 43, 104], "rpaframework": [0, 1, 3, 7, 9, 15, 19, 23, 25, 33, 35, 37, 39, 41, 57, 59, 63, 71, 100], "exampl": [0, 1, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "secret": [0, 3, 11, 15, 17, 19, 21, 23, 35, 37, 39, 41, 43, 55, 63, 65, 67, 71, 77, 80, 85, 87, 98, 104], "manag": [0, 3, 15, 25, 27, 29, 31, 53, 75, 78, 83, 87, 104], "us": [0, 1, 2, 3, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 19, 21, 23, 25, 27, 31, 33, 34, 35, 36, 37, 38, 41, 43, 45, 47, 49, 51, 53, 57, 59, 61, 63, 65, 67, 68, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "both": [0, 3, 25, 35, 37, 47, 53, 55, 63, 93, 95, 98, 104], "git": [0, 3], "pypi": [0, 3, 19, 104], "packag": [0, 5, 7, 9, 13, 15, 19, 53, 57, 59, 63, 64, 65, 70, 71, 100], "releas": [0, 3, 31, 33, 83, 100], "under": [0, 3, 11, 45, 63, 73, 83, 100, 102, 104], "python": [0, 1, 3, 9, 104], "namespac": 0, "current": [0, 3, 5, 7, 11, 13, 15, 25, 31, 33, 35, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 65, 73, 75, 83, 87, 93, 95, 100, 104], "sourc": [0, 3, 7, 11, 15, 17, 21, 25, 31, 33, 41, 43, 47, 49, 51, 57, 71, 73, 79, 81, 83, 95, 104], "e": [0, 3, 7, 11, 13, 25, 31, 33, 35, 37, 40, 42, 43, 47, 49, 53, 55, 57, 59, 65, 69, 71, 79, 81, 83, 89, 93, 95, 100, 104], "host": [0, 23, 45, 51, 53, 69, 73, 102, 104], "github": [0, 1, 3, 7, 9, 11, 15, 37, 75, 89, 104], "These": [0, 11, 15, 41, 55, 61, 83, 87, 93], "public": [0, 15, 104], "inspect": [0, 15, 31, 33, 49, 59, 95, 100, 104], "fork": 0, "user": [0, 3, 6, 7, 11, 15, 23, 25, 29, 31, 32, 33, 37, 41, 43, 49, 51, 53, 55, 61, 63, 65, 69, 83, 89, 93, 95, 98, 100, 104], "thei": [0, 3, 5, 7, 11, 21, 25, 33, 37, 43, 49, 53, 55, 57, 59, 65, 71, 93, 95, 100, 104], "robocorp": [0, 3, 7, 11, 15, 17, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 45, 55, 63, 65, 71, 73, 75, 77, 79, 81, 83, 85, 87, 95, 100, 102, 104], "": [0, 1, 5, 7, 11, 15, 25, 27, 29, 31, 33, 35, 41, 43, 47, 51, 53, 55, 57, 59, 61, 63, 65, 66, 71, 77, 83, 89, 93, 95, 98, 100, 104], "organ": 0, "The": [0, 1, 2, 3, 7, 9, 11, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 87, 89, 93, 95, 98, 100, 102, 104], "primari": [0, 7, 23, 33, 55, 93], "index": [0, 3, 11, 37, 45, 47, 55, 59, 61, 63, 89, 93, 95, 100, 104], "reserv": [0, 7, 33, 83, 100], "accord": [0, 3, 7, 33, 43, 47, 49, 73, 95], "polici": [0, 15], "also": [0, 1, 3, 7, 11, 15, 25, 31, 33, 41, 43, 47, 49, 53, 55, 59, 61, 73, 75, 83, 85, 87, 93, 95, 100, 104], "includ": [0, 3, 5, 7, 11, 15, 23, 25, 37, 41, 43, 47, 49, 55, 59, 61, 65, 69, 71, 73, 77, 83, 89, 93, 95, 98, 100, 104], "correct": [0, 3, 7, 13, 33, 47, 59, 83, 104], "trove": 0, "classifi": 0, "find": [0, 2, 7, 11, 25, 31, 33, 45, 47, 49, 57, 59, 61, 75, 89, 95, 100, 102, 104], "them": [0, 7, 11, 15, 25, 31, 33, 35, 43, 49, 53, 55, 93, 95, 98, 104], "have": [0, 3, 7, 11, 15, 23, 25, 33, 37, 41, 43, 47, 51, 53, 55, 59, 61, 65, 71, 75, 83, 85, 87, 89, 93, 95, 100, 104], "technic": 0, "api": [0, 2, 3, 52, 64, 70, 76, 97, 104], "simpl": [0, 11, 47, 55, 87, 104], "usag": [0, 11, 19, 21, 25, 33, 37, 39, 41, 49, 55, 61, 63, 71, 89, 98, 100, 104], "instruct": [0, 104], "page": [0, 3, 7, 11, 15, 25, 31, 33, 39, 55, 67, 75, 85, 89, 100, 104], "handl": [0, 2, 7, 11, 13, 15, 23, 31, 33, 45, 59, 83, 87, 95, 100, 104], "store": [0, 5, 11, 15, 19, 21, 23, 25, 31, 35, 43, 47, 53, 63, 65, 67, 75, 78, 79, 81, 83, 87, 95, 104], "gener": [0, 3, 7, 11, 15, 21, 25, 33, 34, 35, 41, 43, 47, 55, 57, 61, 63, 65, 69, 71, 83, 104], "sphinx": 0, "robot": [0, 1, 3, 5, 7, 11, 13, 15, 17, 19, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 64, 65, 67, 69, 70, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 89, 93, 95, 96, 100, 102, 104], "autogener": 0, "from": [0, 1, 3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31, 33, 34, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "file": [0, 3, 4, 5, 7, 11, 15, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 45, 48, 49, 51, 53, 59, 61, 65, 67, 71, 73, 75, 77, 79, 81, 83, 85, 87, 93, 95, 102, 104], "docstr": [0, 104], "restructuredtext": 0, "In": [0, 3, 9, 11, 13, 15, 21, 23, 29, 31, 33, 41, 43, 53, 55, 61, 63, 65, 77, 83, 85, 87, 89, 93, 100, 104], "depth": [0, 59, 100, 104], "guid": [0, 3, 7, 11, 15, 33, 43, 61, 83, 87, 104], "separ": [0, 3, 11, 15, 25, 33, 39, 43, 49, 61, 63, 77, 83, 93, 100, 104], "portal": [0, 7, 33, 35, 37, 41, 43, 75, 83, 93, 100, 104], "creat": [0, 1, 2, 3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 33, 35, 39, 41, 43, 45, 47, 49, 51, 53, 55, 61, 63, 65, 67, 69, 71, 73, 74, 77, 83, 85, 87, 89, 93, 95, 98, 102, 104], "respons": [0, 7, 15, 17, 19, 37, 41, 43, 53, 55, 63, 71, 77, 98, 104], "develop": [0, 1, 11, 15, 17, 31, 33, 43, 55, 63, 73, 79, 81, 83, 87, 93, 98, 104], "automat": [0, 7, 11, 23, 33, 35, 41, 43, 45, 47, 53, 55, 73, 79, 81, 83, 89, 95, 102, 104], "black": [0, 3], "tool": [0, 3, 11, 17, 33, 59, 100, 104], "For": [0, 3, 7, 11, 12, 15, 23, 25, 31, 33, 37, 39, 41, 43, 53, 55, 57, 61, 65, 71, 73, 75, 76, 83, 85, 90, 93, 95, 100, 104], "strictli": 0, "flake8": [0, 3], "On": [0, 11, 53, 85, 100, 104], "top": [0, 7, 17, 25, 31, 33, 37, 43, 47, 57, 59, 100, 104], "we": [0, 2, 25, 35, 53, 59, 63, 83, 104], "pylint": 0, "even": [0, 11, 25, 41, 53, 85], "isort": 0, "mypi": [0, 2], "valid": [0, 2, 7, 13, 31, 33, 37, 43, 47, 55, 61, 71, 93, 95, 104], "pull": [0, 1, 3, 104], "request": [0, 3, 6, 7, 11, 15, 32, 33, 37, 39, 53, 55, 63, 65, 77, 87, 93, 98, 100, 104], "probabl": [0, 55, 71, 100], "offer": [0, 3, 7, 11, 35, 89, 104], "pre": [0, 7, 33, 35], "commit": [0, 3, 23, 104], "hook": [0, 11, 69], "check": [0, 7, 11, 13, 15, 19, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 53, 59, 65, 73, 75, 85, 89, 100, 102, 104], "reason": [0, 53, 59, 83, 104], "why": [0, 43], "auto": [0, 7, 11, 23, 33, 47, 104], "good": [0, 1, 3, 11], "idea": [0, 11], "similar": [0, 11, 15, 25, 37, 55, 61, 63, 104], "javascript": [0, 11, 61], "prettier": 0, "decent": 0, "coverag": 0, "through": [0, 1, 11, 15, 25, 33, 37, 41, 43, 45, 53, 55, 61, 63, 69, 73, 83, 95, 100, 102, 104], "unittest": [0, 3], "main": [0, 3, 7, 11, 25, 35, 63, 95, 100, 104], "pytest": [0, 3], "track": [0, 1, 100], "can": [0, 1, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 69, 71, 73, 75, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "done": [0, 3, 11, 25, 33, 41, 43, 53, 57, 61, 65, 83, 85, 95, 104], "via": [0, 1, 11, 15, 19, 23, 37, 39, 55, 59, 65, 69, 71, 83, 87, 93, 100, 104], "plug": 0, "each": [0, 3, 5, 7, 11, 15, 33, 35, 37, 43, 47, 53, 55, 59, 61, 77, 83, 89, 93, 95, 104], "task": [0, 3, 5, 7, 11, 15, 17, 19, 21, 23, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 84, 85, 87, 95, 98, 100, 102, 104], "provid": [0, 2, 3, 7, 11, 15, 33, 34, 37, 41, 43, 47, 53, 55, 59, 61, 63, 65, 69, 71, 77, 83, 87, 89, 93, 100, 104], "keyword": [0, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "act": [0, 7, 11, 33, 83, 104], "runnabl": 0, "accept": [0, 3, 7, 11, 15, 33, 37, 47, 53, 55, 59, 63, 95, 100, 104], "addit": [0, 11, 13, 15, 23, 25, 43, 53, 55, 65, 83, 87, 93, 95, 104], "function": [0, 7, 11, 25, 27, 31, 47, 53, 65, 83, 89, 93, 104], "best": [0, 11, 43, 55, 65], "option": [0, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 77, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "action": [0, 3, 7, 11, 23, 25, 29, 43, 59, 89, 100, 104], "step": [0, 1, 3, 7, 9, 19, 35, 43, 45, 55, 59, 61, 73, 77, 83, 102, 104], "least": [0, 1, 2, 7, 41, 93, 104], "ci": [0, 3], "pipelin": 0, "matrix": 0, "platform": [0, 2, 3, 11, 24, 25, 29, 104], "window": [0, 3, 7, 11, 25, 33, 45, 59, 73, 89, 102, 104], "linux": [0, 11, 49, 104], "maco": [0, 104], "3": [0, 3, 9, 11, 13, 15, 19, 31, 47, 53, 59, 71, 85, 89, 95, 100], "8": [0, 3, 13, 15, 21, 23, 31, 37, 43, 49, 53, 61, 89, 95, 100], "9": [0, 3, 7, 9, 33, 41, 89, 95, 100], "10": [0, 13, 31, 41, 43, 47, 49, 59, 67, 71, 73, 77, 89, 95, 100], "keep": [0, 7, 11, 33, 35, 59, 75, 95, 100, 104], "remov": [0, 2, 11, 31, 33, 43, 47, 49, 51, 53, 61, 83, 89, 93, 95, 104], "bug": [0, 3, 47, 104], "fix": [0, 1, 23, 25, 43, 100, 104], "etc": [0, 11, 35, 41, 47, 53, 93, 104], "affect": [0, 2, 15, 45, 47, 85, 100, 104], "entri": [0, 15, 25, 87], "meant": [0, 104], "human": [0, 2, 7, 25, 29, 31, 33, 55, 83, 89, 104], "readabl": [0, 89], "an": [0, 1, 3, 5, 7, 11, 13, 15, 21, 23, 25, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 71, 73, 75, 77, 79, 81, 83, 87, 89, 93, 95, 98, 100, 102, 104], "method": [0, 2, 3, 5, 11, 15, 17, 19, 21, 31, 53, 59, 63, 65, 73, 85, 87, 93, 100, 104], "process": [0, 3, 7, 11, 19, 28, 29, 31, 33, 34, 35, 36, 37, 38, 39, 41, 45, 47, 49, 59, 61, 73, 83, 89, 95, 100, 102, 104], "entir": [0, 15, 41, 59, 65, 83, 89, 104], "manual": [0, 7, 11, 33, 45, 59, 73, 79, 81, 83, 95, 102, 104], "reli": [0, 11, 35, 79, 81], "towncrier": 0, "semant": [0, 3], "when": [0, 1, 2, 7, 11, 13, 15, 19, 23, 25, 31, 33, 35, 41, 43, 47, 53, 59, 61, 63, 65, 71, 73, 79, 81, 83, 85, 87, 89, 93, 95, 100, 104], "gist": 0, "given": [0, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 37, 39, 41, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 67, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "number": [0, 3, 7, 11, 13, 15, 23, 33, 41, 43, 45, 47, 53, 55, 61, 67, 69, 71, 75, 77, 87, 89, 93, 95, 98, 100, 104], "major": [0, 104], "minor": [0, 104], "patch": [0, 9, 53], "increment": [0, 55], "you": [0, 1, 3, 7, 9, 11, 15, 23, 25, 33, 35, 37, 41, 43, 45, 47, 53, 55, 59, 61, 63, 65, 71, 73, 75, 79, 81, 83, 87, 89, 93, 98, 100, 102, 104], "incompat": [0, 11, 104], "add": [0, 2, 5, 7, 9, 11, 13, 21, 31, 33, 43, 45, 53, 55, 61, 63, 71, 75, 83, 87, 93, 95, 100, 104], "backward": [0, 83, 95, 104], "compat": [0, 23, 39, 43, 59, 83, 100, 104], "manner": 0, "support": [0, 2, 5, 7, 11, 17, 23, 25, 31, 33, 34, 35, 37, 39, 41, 43, 47, 51, 55, 59, 62, 63, 69, 71, 75, 93, 95, 100, 104], "sinc": [0, 41, 47, 83, 100, 104], "6": [0, 3, 11, 13, 47, 71, 89, 95, 100], "improv": [0, 1, 53, 104], "maintain": [0, 3, 7, 33, 59, 65, 100], "after": [0, 3, 7, 11, 15, 31, 33, 41, 43, 47, 49, 53, 59, 61, 63, 65, 83, 89, 95, 104], "reach": [0, 33, 49, 53, 100, 104], "certain": [0, 5, 7, 11, 33, 37, 57, 61, 83, 100], "size": [0, 3, 5, 7, 11, 15, 25, 33, 47, 49, 51, 71, 73, 95, 104], "convert": [0, 2, 15, 23, 25, 33, 43, 47, 53, 55, 61, 83, 93, 95, 100, 104], "input": [0, 3, 6, 7, 11, 13, 15, 21, 25, 31, 32, 33, 37, 43, 49, 59, 61, 75, 77, 83, 87, 89, 95, 100, 104], "argument": [0, 5, 7, 11, 15, 21, 23, 25, 33, 35, 43, 45, 47, 49, 53, 55, 61, 63, 69, 71, 75, 77, 83, 85, 87, 93, 95, 100, 104], "strive": 0, "older": [0, 11, 45, 104], "than": [0, 7, 11, 13, 23, 33, 41, 49, 53, 55, 57, 59, 61, 71, 77, 95, 98, 104], "aim": 0, "newer": [0, 3, 8, 9, 11, 104], "requir": [0, 3, 7, 9, 11, 15, 19, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 53, 57, 59, 61, 63, 65, 73, 83, 89, 98, 102, 104], "featur": [0, 1, 3, 7, 11, 17, 21, 25, 33, 37, 55, 59, 61, 83, 104], "backport": 0, "There": [1, 7, 11, 31, 33, 41, 47, 59, 61, 65, 69, 75, 87, 93, 100, 104], "sever": [1, 31, 53, 59, 65, 87, 93, 104], "wai": [1, 2, 3, 7, 11, 15, 17, 19, 25, 31, 33, 41, 49, 61, 65, 69, 87, 93, 95, 100, 104], "section": [1, 11, 17, 55, 83, 100, 104], "variou": [1, 11, 25, 43, 55, 59, 95, 104], "project": [1, 9, 11, 19, 35], "primarili": [1, 65, 104], "issu": [1, 3, 9, 45, 47, 53, 59, 73, 100, 102, 104], "tracker": [1, 9, 89], "try": [1, 7, 11, 25, 47, 55, 83, 85, 93, 100, 104], "explain": [1, 11, 104], "clearli": 1, "what": [1, 2, 7, 11, 33, 55, 67, 71, 104], "expect": [1, 11, 13, 15, 17, 19, 23, 35, 41, 53, 59, 89, 95, 100, 104], "outcom": 1, "wa": [1, 7, 11, 17, 23, 31, 33, 41, 43, 49, 53, 55, 57, 59, 61, 63, 65, 69, 73, 85, 87, 98, 104], "possibli": [1, 59], "reproduc": 1, "attach": [1, 11, 41, 43, 55, 69, 73, 83, 93, 104], "code": [1, 3, 11, 13, 15, 31, 41, 43, 47, 51, 53, 55, 63, 65, 79, 81, 83, 98, 100, 104], "veri": [1, 11, 35, 83], "help": [1, 17, 65, 71, 100, 104], "inform": [1, 2, 3, 5, 6, 7, 11, 13, 15, 17, 23, 25, 28, 29, 31, 32, 33, 41, 43, 53, 59, 67, 69, 73, 75, 77, 87, 93, 95, 100, 104], "version": [1, 3, 7, 9, 15, 19, 35, 37, 39, 43, 53, 55, 59, 63, 71, 73], "interpret": [1, 83, 93], "oper": [1, 3, 5, 7, 11, 13, 15, 17, 19, 20, 21, 23, 25, 31, 33, 40, 41, 42, 43, 45, 55, 57, 61, 67, 73, 83, 86, 87, 91, 93, 95, 98, 100, 102, 104], "system": [1, 3, 7, 11, 15, 26, 29, 31, 45, 55, 71, 73, 95, 100, 102, 104], "error": [1, 2, 3, 7, 11, 15, 31, 33, 43, 45, 47, 49, 51, 53, 55, 59, 73, 77, 83, 85, 87, 89, 104], "messag": [1, 2, 3, 7, 11, 15, 31, 33, 41, 43, 51, 53, 55, 68, 69, 71, 73, 83, 89, 90, 91, 104], "traceback": [1, 104], "applic": [1, 3, 7, 11, 15, 25, 30, 31, 33, 41, 43, 47, 58, 59, 65, 83, 89, 93, 100, 104], "If": [1, 7, 11, 13, 15, 21, 23, 25, 29, 31, 33, 35, 41, 43, 45, 47, 49, 53, 55, 59, 61, 65, 73, 83, 85, 87, 89, 93, 95, 100, 102, 104], "possibl": [1, 3, 7, 9, 11, 15, 31, 33, 39, 41, 43, 45, 47, 53, 59, 65, 69, 73, 83, 85, 89, 95, 102, 104], "suppli": [1, 83, 93], "minim": [1, 31], "replic": 1, "problem": [1, 11, 41, 83, 104], "down": [1, 7, 11, 25, 31, 33, 47, 59, 89, 100], "think": 1, "someth": [1, 41, 57], "miss": [1, 3, 5, 49, 104], "well": [1, 3, 11, 55, 65, 79, 81, 83, 100, 104], "anyth": [1, 7, 11, 53, 59, 83], "new": [1, 3, 7, 9, 11, 19, 25, 31, 33, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 71, 73, 79, 81, 83, 87, 89, 93, 95, 102, 104], "document": [1, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 68, 69, 70, 72, 73, 74, 75, 76, 78, 80, 82, 83, 84, 86, 88, 90, 92, 94, 95, 96, 97, 99, 100, 101, 102, 104], "A": [1, 7, 11, 13, 15, 21, 25, 33, 37, 41, 43, 47, 53, 55, 63, 64, 65, 70, 71, 75, 77, 83, 89, 93, 95, 100], "propos": 1, "solv": 1, "case": [1, 7, 11, 21, 25, 33, 43, 47, 53, 55, 61, 83, 89, 93, 95, 100, 104], "demo": [1, 75, 100], "how": [1, 7, 11, 15, 17, 25, 29, 31, 35, 37, 41, 43, 47, 53, 59, 61, 71, 73, 83, 87, 95, 100, 104], "would": [1, 11, 23, 55, 57, 59, 83, 85, 95, 98, 100, 104], "re": [1, 7, 9, 11, 15, 23, 31, 35, 37, 43, 45, 73, 95, 102, 104], "unsur": 1, "worth": 1, "implement": [1, 2, 7, 83, 85, 104], "first": [1, 3, 7, 11, 13, 25, 33, 35, 43, 45, 47, 55, 61, 73, 75, 83, 89, 93, 95, 98, 100, 102, 104], "ask": [1, 7, 11, 93, 104], "channel": [1, 3, 9, 15, 69, 91, 100], "slack": [1, 3, 69, 104], "instead": [1, 2, 3, 7, 11, 15, 23, 25, 27, 31, 33, 37, 41, 53, 55, 59, 63, 71, 89, 95, 104], "directli": [1, 3, 11, 15, 35, 46, 47, 52, 55, 57, 59, 79, 81, 83, 95, 100], "direct": [1, 4, 6, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 61, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 97, 99, 100, 101, 104], "extern": [1, 3, 7, 15, 33, 47, 49, 75, 104], "welcom": [1, 51], "ani": [1, 2, 3, 7, 11, 15, 23, 25, 29, 31, 33, 34, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 67, 69, 73, 77, 83, 85, 87, 93, 95, 100, 102, 104], "typo": [1, 104], "howev": [1, 33, 55], "befor": [1, 3, 7, 11, 21, 25, 31, 33, 35, 41, 45, 47, 51, 53, 55, 59, 61, 73, 77, 83, 85, 89, 98, 100, 102, 104], "larg": [1, 7, 23, 33, 49, 53, 104], "advis": [1, 23, 89], "discuss": [1, 3, 11, 93, 104], "beforehand": 1, "correspond": [1, 7, 11, 15, 33, 35, 55, 57, 83, 87], "gh": 1, "write": [1, 3, 7, 15, 25, 45, 47, 49, 59, 61, 71, 83, 95, 102, 104], "pleas": [1, 3, 7, 8, 11, 15, 23, 31, 33, 35, 41, 43, 45, 47, 53, 59, 73, 102, 104], "read": [1, 3, 11, 15, 21, 25, 28, 41, 43, 45, 47, 48, 49, 53, 55, 59, 61, 63, 69, 73, 74, 75, 79, 81, 83, 87, 95, 98, 104], "acknowledg": [1, 3], "our": [1, 3, 59, 65, 100, 104], "extens": [1, 3, 5, 7, 33, 45, 47, 49, 53, 65, 79, 81, 83, 104], "dev": [1, 3, 7, 23, 104], "line": [2, 11, 15, 21, 55, 57, 75, 95, 100, 102], "258": 2, "take": [2, 7, 11, 25, 31, 33, 43, 57, 71, 87, 89, 95, 104], "autocommit": [2, 23, 104], "modul": [2, 3, 11, 17, 23, 31, 57, 104], "651": 2, "too": [2, 11, 25, 104], "compl": 2, "1137": 2, "return": [2, 5, 7, 11, 13, 15, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 57, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "more": [2, 3, 7, 11, 13, 15, 21, 23, 25, 31, 33, 41, 43, 45, 49, 53, 55, 57, 59, 61, 67, 69, 71, 73, 75, 83, 87, 93, 95, 100, 102, 104], "valuabl": 2, "about": [2, 3, 5, 7, 11, 15, 23, 31, 33, 41, 43, 53, 55, 59, 69, 73, 77, 85, 89, 93, 95, 100, 104], "1390": 2, "multipl": [2, 3, 7, 11, 15, 21, 23, 33, 35, 37, 39, 49, 53, 55, 59, 61, 65, 75, 77, 83, 95, 104], "search": [2, 3, 11, 15, 29, 31, 37, 41, 43, 45, 49, 57, 59, 65, 67, 93, 95, 98, 100, 104], "criteria": [2, 31, 43, 55, 73, 95, 104], "same": [2, 7, 11, 15, 21, 25, 33, 35, 41, 47, 51, 53, 55, 61, 63, 69, 77, 83, 89, 95, 100, 104], "time": [2, 3, 5, 7, 11, 12, 13, 15, 29, 31, 33, 41, 43, 47, 49, 53, 62, 63, 73, 83, 85, 87, 89, 93, 98, 100, 104], "identifi": [2, 11, 15, 17, 25, 29, 31, 37, 39, 53, 55, 59, 83, 87, 89, 93, 95, 100, 104], "ONE": 2, "element": [2, 7, 11, 15, 25, 31, 33, 57, 59, 61, 85, 89, 100, 104], "1416": 2, "114": [2, 104], "move": [2, 25, 31, 41, 43, 47, 49, 73, 104], "specif": [2, 3, 7, 11, 13, 15, 17, 21, 23, 25, 35, 37, 41, 43, 59, 61, 69, 73, 77, 79, 81, 85, 100, 104], "adapt": [2, 79, 81, 83, 104], "170": [2, 104], "out": [2, 11, 15, 49, 83, 93], "get": [2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 71, 73, 75, 77, 79, 81, 83, 87, 89, 95, 98, 100, 102, 104], "actual": [2, 45, 47], "default": [2, 3, 5, 7, 11, 13, 15, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "307": 2, "run": [2, 3, 7, 11, 15, 19, 23, 29, 31, 33, 35, 41, 45, 47, 49, 73, 77, 79, 81, 83, 85, 89, 95, 100, 102, 104], "mayb": 2, "screenshot": [2, 11, 25, 31, 47, 57, 85, 89, 104], "match": [2, 7, 11, 15, 17, 21, 25, 29, 31, 33, 37, 41, 43, 47, 49, 57, 59, 61, 65, 73, 75, 77, 83, 85, 89, 93, 95, 98, 104], "73": [2, 89], "clamp": 2, "dimens": [2, 7, 17, 33, 95, 104], "106": 2, "enum": [2, 104], "exhaust": 2, "177": 2, "draw": [2, 31, 57], "circl": 2, "526": 2, "exchangelib": [2, 104], "doe": [2, 11, 15, 29, 31, 33, 43, 45, 47, 49, 53, 55, 59, 77, 83, 89, 95, 100, 104], "seem": [2, 104], "straightforward": 2, "958": 2, "2259": 2, "target": [2, 3, 11, 25, 31, 33, 37, 41, 43, 45, 47, 53, 59, 61, 65, 67, 69, 73, 77, 83, 100, 104], "worksheet": [2, 45, 47, 67, 95, 104], "cell": [2, 11, 15, 39, 45, 47, 59, 89, 93, 95, 104], "format": [2, 3, 5, 7, 11, 13, 15, 21, 23, 25, 29, 31, 33, 35, 37, 39, 43, 45, 47, 49, 53, 61, 71, 83, 87, 89, 93, 95, 102, 104], "overwritten": 2, "573": 2, "glob": [2, 7, 33, 49], "611": [2, 104], "subdirectori": [2, 5, 7, 33, 43, 49], "872": [2, 104], "proper": [2, 15, 65, 104], "date": [2, 3, 7, 12, 13, 33, 43, 47, 57, 87, 93, 98, 104], "882": [2, 104], "891": 2, "friendli": [2, 7, 33, 83, 104], "229": 2, "log": [2, 3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 71, 75, 79, 81, 83, 84, 85, 89, 93, 95, 100, 104], "row": [2, 7, 11, 15, 23, 33, 39, 45, 47, 59, 67, 89, 93, 95, 100, 104], "debug": [2, 11, 33, 51, 53, 89, 93, 104], "level": [2, 3, 49, 51, 59, 79, 81, 83, 85, 100, 104], "436": 2, "437": 2, "xpath": [2, 11, 61], "syntax": [2, 11, 25, 43, 100, 104], "122": 2, "tokenbackend": 2, "vault": [2, 3, 7, 15, 17, 19, 21, 23, 33, 35, 37, 39, 41, 43, 55, 63, 65, 71, 77, 79, 81, 85, 87, 104], "297": 2, "fail": [2, 3, 7, 11, 23, 33, 49, 51, 53, 55, 59, 77, 83, 85, 93, 104], "defin": [2, 3, 5, 7, 11, 25, 29, 31, 33, 47, 53, 55, 59, 61, 65, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 104], "path": [2, 3, 5, 7, 11, 15, 19, 21, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 48, 49, 51, 53, 57, 59, 61, 65, 73, 75, 77, 79, 81, 83, 87, 93, 95, 100, 102, 104], "want": [2, 3, 7, 11, 15, 19, 23, 33, 35, 41, 43, 53, 55, 83, 89, 104], "209": 2, "endpoint": [2, 15, 17, 19, 37, 53, 63, 71, 77, 87], "118": 2, "throughout": [2, 104], "218": 2, "consid": [2, 11, 13, 37, 47, 53, 61, 71, 89, 93], "properli": [2, 55, 104], "connect": [2, 11, 15, 23, 31, 41, 43, 45, 51, 53, 65, 67, 73, 87, 89, 102, 104], "676": 2, "result": [2, 3, 7, 13, 15, 17, 19, 21, 23, 31, 33, 35, 37, 39, 41, 43, 49, 53, 55, 57, 61, 65, 67, 71, 75, 77, 83, 87, 93, 95, 98, 100, 104], "object": [2, 3, 7, 11, 13, 15, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 53, 54, 57, 59, 60, 61, 65, 67, 79, 81, 83, 87, 89, 95, 100, 104], "modifi": [2, 5, 11, 15, 25, 43, 49, 53, 55, 79, 80, 81, 83, 93, 95], "here": [2, 7, 33, 37, 41, 47, 53, 61, 93, 100], "36": [2, 89], "cmin764": 2, "16": [2, 3, 7, 9, 13, 47, 63, 75, 89, 100], "aug": 2, "2023": [2, 13, 71], "handles_com_error": 2, "decor": 2, "littl": 2, "collect": [3, 15, 55, 61, 79, 81, 83, 104], "open": [3, 7, 11, 17, 25, 31, 33, 41, 43, 45, 47, 49, 53, 63, 65, 70, 73, 75, 83, 85, 89, 102, 104], "autom": [3, 7, 9, 10, 11, 24, 25, 30, 31, 33, 57, 58, 59, 89, 93, 99, 100, 104], "design": [3, 11, 61, 89, 104], "goal": 3, "activ": [3, 11, 31, 35, 45, 47, 55, 59, 65, 73, 75, 83, 93, 100, 102, 104], "core": [3, 7, 104], "softwar": [3, 43], "learn": [3, 41, 55, 93, 100], "100": [3, 7, 25, 31, 41, 61, 67, 98, 100], "sponsor": 3, "optim": [3, 104], "control": [3, 7, 10, 11, 25, 31, 33, 43, 44, 45, 47, 53, 59, 65, 71, 72, 73, 77, 78, 79, 81, 82, 83, 84, 85, 88, 96, 100, 101, 102, 104], "room": [3, 17, 45, 65, 73, 77, 78, 79, 81, 82, 83, 102, 104], "homepag": 3, "http": [3, 7, 11, 13, 23, 33, 35, 37, 43, 45, 49, 51, 55, 63, 65, 69, 71, 73, 75, 77, 83, 85, 89, 100, 102, 104], "www": [3, 11, 23, 49, 53, 85, 100], "com": [3, 7, 11, 23, 33, 35, 37, 41, 43, 45, 49, 53, 55, 61, 63, 65, 69, 71, 73, 75, 83, 85, 95, 100, 102, 104], "org": [3, 11, 23, 51, 53, 69], "note": [3, 11, 15, 21, 23, 25, 31, 33, 41, 43, 45, 47, 49, 53, 55, 59, 63, 71, 73, 77, 79, 81, 83, 89, 93], "releasenot": 3, "html": [3, 11, 41, 43, 49, 53, 73, 83, 89, 102, 104], "rss": 3, "feed": 3, "xml": [3, 49, 61, 104], "abov": [3, 11, 15, 45, 53, 61, 69, 77, 100, 104], "recognit": [3, 25, 57, 104], "alon": [3, 59], "do": [3, 7, 11, 31, 33, 43, 53, 55, 83, 85, 93, 95, 100, 104], "x": [3, 7, 17, 23, 25, 31, 33, 57, 59, 89, 100, 104], "column": [3, 7, 11, 15, 23, 45, 47, 59, 89, 93, 95, 104], "mean": [3, 5, 7, 9, 11, 13, 15, 23, 29, 31, 33, 41, 71, 100, 104], "dialog": [3, 7, 25, 31, 104], "name": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 104], "descript": [3, 7, 11, 15, 23, 25, 33, 55, 59, 61, 71, 87, 93, 95, 104], "archiv": [3, 49, 55, 59, 104], "tar": [3, 4, 5, 104], "zip": [3, 4, 5, 55, 104], "assist": [3, 33, 37, 55, 59, 71, 79, 81, 104], "displai": [3, 6, 7, 11, 31, 32, 33, 45, 47, 59, 65, 73, 93, 100, 102, 104], "selenium": [3, 8, 85, 104], "web": [3, 10, 11, 15, 19, 41, 52, 57, 61, 65, 67, 104], "special": [3, 7, 11, 15, 25, 31, 33, 41, 75, 100], "below": [3, 11, 15, 25, 45, 55, 63, 65, 69, 73, 85, 87, 95, 100, 102, 104], "calendar": [3, 41, 65, 104], "manipul": [3, 12, 15, 28, 45, 46, 47, 48, 56, 57, 60, 61, 94, 95, 104], "cloud": [3, 11, 15, 17, 19, 35, 83, 104], "aw": [3, 104], "amazon": [3, 14, 15, 104], "servic": [3, 11, 14, 15, 16, 17, 18, 19, 34, 35, 36, 37, 38, 39, 41, 45, 63, 66, 67, 68, 69, 71, 73, 75, 102, 104], "azur": [3, 23, 65, 71, 104], "microsoft": [3, 16, 17, 31, 41, 45, 47, 64, 65, 70, 73, 83, 100, 104], "googl": [3, 11, 34, 35, 43, 53, 55, 59, 63], "crypto": [3, 104], "hash": [3, 20, 21, 104], "encrypt": [3, 20, 21, 75, 104], "databas": [3, 15, 25, 55, 79, 81, 87, 104], "interact": [3, 7, 11, 22, 25, 26, 31, 33, 49, 50, 51, 52, 59, 77, 79, 81, 82, 83, 100, 104], "desktop": [3, 11, 27, 29, 31, 44, 45, 57, 59, 72, 73, 88, 99, 100, 101, 102, 104], "cross": [3, 7, 15, 24, 25, 29, 33, 104], "clipboard": [3, 25], "operatingsystem": [3, 43, 49, 104], "o": [3, 28, 59, 63, 73, 77, 89, 104], "dure": [3, 7, 11, 31, 33, 63, 77, 84, 85, 104], "execut": [3, 7, 9, 11, 15, 21, 23, 31, 33, 45, 49, 51, 55, 59, 73, 83, 85, 87, 96, 100, 102, 104], "documentai": [3, 37, 39, 75, 104], "intellig": [3, 34, 36, 37, 38, 39, 104], "wrapper": [3, 35, 59, 104], "base64ai": [3, 35, 104], "nanonet": [3, 34, 35, 104], "email": [3, 7, 25, 33, 37, 41, 43, 55, 61, 67, 69, 73, 83, 93, 95, 104], "exchang": [3, 43, 63, 65, 104], "mail": [3, 7, 33, 35, 40, 41, 42, 43, 61, 63, 83, 95, 100, 104], "protocol": [3, 11, 40, 43, 53, 104], "imapsmtp": [3, 104], "imap": [3, 42, 43, 104], "smtp": [3, 42, 43, 69, 104], "excel": [3, 7, 31, 33, 53, 67, 73, 95, 104], "filesystem": [3, 15, 51, 104], "ftp": [3, 104], "server": [3, 23, 41, 43, 45, 50, 51, 53, 73, 91, 93, 102, 104], "hubspot": [3, 104], "access": [3, 11, 15, 21, 23, 31, 35, 41, 43, 49, 51, 54, 59, 61, 63, 64, 65, 66, 67, 70, 77, 80, 83, 87, 92, 93, 95, 98, 100, 104], "crm": [3, 54, 55, 104], "data": [3, 7, 11, 15, 21, 23, 33, 35, 37, 45, 47, 49, 53, 54, 55, 59, 61, 63, 65, 67, 75, 77, 83, 87, 93, 94, 95, 104], "imag": [3, 5, 7, 11, 15, 17, 25, 31, 33, 37, 41, 43, 47, 63, 71, 75, 100, 104], "javaaccessbridg": [3, 104], "java": [3, 58, 59, 104], "json": [3, 15, 19, 23, 31, 35, 37, 49, 53, 71, 77, 83, 87, 91, 95, 104], "mfa": [3, 15, 85, 104], "authent": [3, 15, 17, 19, 21, 35, 41, 43, 51, 53, 55, 62, 63, 65, 87, 93, 98, 104], "one": [3, 7, 11, 15, 21, 23, 25, 31, 33, 35, 41, 43, 45, 47, 53, 55, 59, 61, 62, 63, 65, 67, 71, 83, 87, 95, 100, 104], "password": [3, 7, 23, 31, 33, 41, 43, 47, 51, 53, 62, 63, 67, 69, 79, 81, 87, 89, 104], "otp": [3, 62, 63, 104], "oauth2": [3, 19, 41, 43, 63, 65, 104], "notifi": [3, 104], "differ": [3, 7, 11, 13, 15, 17, 19, 23, 25, 33, 35, 37, 39, 41, 53, 59, 61, 65, 68, 69, 77, 83, 87, 89, 93, 95, 100, 104], "openai": [3, 104], "artifici": 3, "outlook": [3, 31, 45, 69, 102, 104], "pdf": [3, 7, 11, 15, 19, 33, 35, 37, 39, 41, 43, 45, 73, 102, 104], "workitem": [3, 43, 77, 83, 104], "work": [3, 5, 7, 11, 13, 21, 23, 25, 31, 35, 41, 43, 45, 49, 51, 59, 61, 73, 75, 77, 79, 81, 82, 83, 89, 100, 102, 104], "item": [3, 7, 11, 13, 15, 17, 21, 31, 37, 41, 43, 49, 55, 59, 61, 65, 67, 73, 75, 77, 82, 83, 89, 93, 100, 104], "storag": [3, 19, 35, 49, 104], "asset": [3, 78, 104], "salesforc": [3, 104], "sap": [3, 104], "gui": [3, 88, 89], "client": [3, 15, 17, 41, 43, 53, 55, 61, 63, 65, 87, 88, 104], "smartsheet": [3, 104], "sheet": [3, 45, 47, 92, 95, 104], "sort": [3, 13, 47, 61, 73, 94, 95, 104], "filter": [3, 15, 23, 37, 41, 43, 47, 55, 61, 73, 83, 93, 94, 95, 104], "tabular": [3, 15, 47, 94, 95], "twitter": [3, 104], "interfac": [3, 25, 41, 43, 76, 97], "altern": [3, 55, 71, 79, 81, 83, 89, 100, 104], "word": [3, 11, 15, 31, 39, 43, 45, 53, 73, 100, 102, 104], "moment": [3, 23, 41, 59, 104], "becaus": [3, 11, 41, 59, 85, 95, 100, 104], "post": [3, 53, 63, 87, 91], "need": [3, 7, 11, 15, 17, 19, 25, 29, 31, 35, 37, 39, 41, 43, 47, 53, 59, 73, 77, 85, 87, 89, 91, 93, 104], "fulli": [3, 11], "minimum": [3, 7, 31, 35, 37, 39, 41, 63, 104], "conda": [3, 7, 15, 25, 71, 100, 104], "yaml": [3, 7, 15, 25, 71, 83, 104], "forg": [3, 9, 15, 100], "depend": [3, 7, 9, 11, 15, 25, 33, 55, 57, 61, 77, 89, 93, 100, 104], "nodej": [3, 9], "14": [3, 9, 89], "2": [3, 7, 9, 11, 13, 15, 17, 19, 23, 31, 37, 43, 47, 51, 53, 55, 61, 65, 71, 77, 83, 85, 89, 93, 95, 100], "pip": [3, 15, 25, 57, 100, 104], "22": [3, 9, 13, 31, 47, 61, 89, 95, 100], "1": [3, 7, 9, 11, 13, 15, 17, 19, 23, 25, 31, 37, 39, 41, 43, 45, 47, 51, 53, 55, 57, 59, 61, 69, 71, 73, 75, 83, 85, 87, 89, 93, 95, 100], "robotframework": [3, 9, 11, 59, 104], "17": [3, 9, 23, 85, 89], "0": [3, 7, 9, 11, 13, 15, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 71, 73, 83, 89, 93, 95, 100], "24": [3, 7, 47, 89], "rccpostinstal": [3, 9], "rfbrowser": [3, 9], "init": [3, 9, 15, 17, 19, 35, 104], "To": [3, 5, 7, 11, 13, 15, 19, 21, 23, 25, 27, 29, 31, 33, 37, 39, 43, 45, 47, 53, 55, 59, 67, 71, 75, 77, 79, 81, 83, 87, 89, 93, 100, 104], "extra": [3, 9, 15, 23, 37, 59, 69, 102, 104], "tesseract": [3, 25], "4": [3, 11, 13, 47, 53, 63, 71, 87, 89, 95, 100], "5": [3, 7, 11, 13, 15, 23, 25, 31, 33, 41, 43, 47, 49, 57, 59, 67, 71, 73, 89, 95, 98, 100], "7": [3, 9, 13, 15, 23, 43, 47, 71, 89, 95, 100], "without": [3, 11, 23, 33, 43, 47, 49, 53, 59, 65, 71, 85, 100, 104], "higher": [3, 51, 71, 83], "import": [3, 5, 7, 11, 15, 19, 23, 25, 27, 29, 31, 35, 37, 39, 41, 43, 45, 47, 49, 51, 55, 57, 59, 61, 63, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 102, 104], "insid": [3, 7, 35, 49, 61, 63, 83, 95, 104], "set": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "login": [3, 7, 11, 25, 33, 51, 65, 67, 83, 87, 89], "avail": [3, 7, 9, 11, 15, 19, 25, 31, 33, 39, 45, 47, 55, 59, 65, 67, 77, 83, 85, 87, 93, 95, 100, 104], "text": [3, 7, 11, 15, 17, 19, 21, 23, 25, 27, 31, 33, 37, 39, 43, 47, 49, 59, 65, 71, 75, 83, 89, 91, 93, 95, 98, 102, 104], "id": [3, 7, 11, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 55, 59, 61, 63, 65, 67, 69, 71, 77, 79, 81, 83, 85, 87, 89, 93, 95, 98, 100, 104], "usernam": [3, 7, 23, 29, 31, 33, 41, 43, 53, 69, 79, 81, 83, 87, 93, 95, 98], "lib": [3, 5, 23, 37, 47, 49, 57, 100], "open_available_brows": [3, 11], "input_text": [3, 89], "tutori": 3, "question": [3, 11], "forum": 3, "commun": 3, "your": [3, 7, 11, 15, 17, 21, 25, 33, 41, 43, 47, 55, 59, 71, 83, 87, 93, 100, 104], "fellow": 3, "expert": 3, "found": [3, 11, 25, 31, 37, 39, 41, 43, 45, 53, 55, 57, 59, 63, 65, 87, 89, 93, 95, 100, 104], "critic": [3, 104], "interest": [3, 100], "head": [3, 7, 11, 33, 43, 47, 53, 95, 104], "over": [3, 31, 37, 43, 47, 49, 61, 83, 95, 104], "see": [3, 7, 9, 11, 13, 15, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 69, 73, 77, 83, 85, 89, 93, 95, 100, 102, 104], "where": [3, 5, 7, 11, 15, 23, 33, 35, 41, 43, 45, 47, 53, 55, 57, 65, 69, 71, 73, 83, 87, 95, 100, 102, 104], "start": [3, 7, 11, 13, 15, 19, 25, 31, 33, 39, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 77, 83, 85, 89, 95, 100, 104], "base": [3, 7, 9, 11, 19, 23, 25, 33, 35, 43, 49, 51, 53, 57, 59, 61, 62, 63, 65, 71, 75, 77, 79, 81, 83, 93, 95, 100, 104], "machin": [3, 7, 29, 31, 33], "templat": [3, 25, 31, 57, 93, 104], "so": [3, 7, 11, 15, 33, 35, 43, 45, 55, 61, 65, 71, 73, 89, 93, 100, 102, 104], "choic": [3, 37], "Not": [3, 11, 49, 55, 104], "recommend": [3, 11, 15, 25, 31, 43, 59, 73, 83, 100, 104], "some": [3, 7, 9, 11, 13, 25, 33, 35, 43, 47, 49, 59, 61, 79, 81, 83, 89, 93, 100, 104], "relat": [3, 11, 37, 39, 61, 63, 77, 104], "At": [3, 23, 31, 41, 59, 100], "11": [3, 31, 89], "might": [3, 11, 15, 43, 47, 59, 61, 100], "caus": [3, 11, 47, 55, 59, 83, 104], "poetri": 3, "invok": 3, "underli": [3, 11, 15, 53, 85, 104], "compil": 3, "build": [3, 7, 33, 104], "script": [3, 19, 23, 25, 61, 89, 100, 104], "purpos": [3, 11, 33, 59, 89], "lint": 3, "test": [3, 11, 53, 59, 71, 73, 87, 89, 100, 104], "publish": 3, "initi": [3, 7, 15, 33, 35, 41, 43, 47, 53, 55, 59, 65, 77, 79, 81, 85, 95, 104], "configur": [3, 11, 23, 35, 41, 43, 45, 55, 63, 65, 73, 77, 79, 81, 83, 91, 93, 102, 104], "config": 3, "virtualenv": 3, "null": [3, 61], "true": [3, 5, 7, 11, 13, 15, 17, 19, 23, 29, 31, 33, 37, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 69, 73, 75, 77, 83, 87, 89, 93, 95, 98, 100, 102, 104], "devpi": 3, "clone": 3, "branch": 3, "switch": [3, 11, 31, 35, 37, 75, 83, 93, 104], "stai": [3, 7, 104], "master": [3, 11, 53], "convent": 3, "hotfix": [3, 104], "its": [3, 7, 9, 11, 13, 15, 25, 29, 31, 37, 43, 45, 49, 51, 53, 55, 65, 67, 83, 93, 95, 100, 104], "venv": [3, 57], "directori": [3, 5, 7, 11, 15, 31, 33, 37, 41, 43, 49, 51, 65, 73, 83, 93, 95, 104], "against": [3, 37, 41, 55, 59, 95], "devdata": [3, 49, 83, 104], "env": [3, 11, 31, 83, 104], "environ": [3, 11, 15, 17, 19, 25, 35, 53, 59, 67, 77, 79, 81, 83, 87, 98, 100, 104], "variabl": [3, 5, 7, 13, 15, 17, 19, 35, 37, 41, 43, 47, 51, 53, 55, 59, 61, 67, 69, 73, 77, 79, 81, 83, 85, 87, 93, 98, 104], "whl": 3, "dist": 3, "push": [3, 59], "raw": [3, 7, 21, 23, 33, 35, 37, 39, 43, 53, 59, 83, 93, 104], "url": [3, 7, 11, 15, 33, 35, 37, 39, 41, 43, 45, 49, 53, 63, 65, 69, 71, 77, 79, 81, 83, 93, 104], "anoth": [3, 7, 15, 21, 25, 39, 55, 75, 89, 102], "intern": [3, 7, 11, 15, 25, 33, 35, 89, 104], "instanc": [3, 7, 11, 13, 23, 29, 31, 33, 49, 57, 65, 75, 83, 87, 95, 100, 104], "point": [3, 7, 25, 31, 33, 35, 57, 100, 104], "m": [3, 5, 29, 31, 41, 47, 57, 65, 89, 100], "robot_arg": 3, "target_robot_fil": 3, "report": [3, 43, 55, 75, 83, 93], "none": [3, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "outputdir": 3, "output": [3, 7, 11, 17, 19, 21, 33, 37, 43, 47, 49, 51, 53, 61, 83, 85, 95, 100, 104], "logtitl": 3, "target_python_fil": 3, "sure": [3, 11, 43, 45, 53, 73, 89, 100, 102, 104], "guidelin": 3, "It": [3, 7, 11, 13, 21, 25, 31, 33, 39, 43, 47, 49, 55, 57, 59, 61, 63, 65, 75, 83, 85, 89, 93, 95, 104], "like": [3, 5, 7, 11, 15, 31, 35, 37, 43, 47, 53, 55, 61, 65, 83, 89, 93, 95, 98, 100, 104], "ha": [3, 7, 11, 13, 15, 21, 31, 33, 41, 43, 47, 49, 53, 55, 59, 61, 65, 83, 87, 89, 93, 95, 104], "chang": [3, 7, 11, 13, 25, 31, 33, 43, 45, 47, 49, 51, 59, 61, 73, 75, 83, 85, 87, 89, 93, 100, 102, 104], "those": [3, 11, 29, 31, 43, 53, 55, 59, 77, 85, 98], "root": [3, 11, 47, 61, 65, 83, 100], "call": [3, 7, 11, 15, 21, 23, 25, 31, 33, 35, 43, 47, 49, 55, 59, 63, 65, 69, 71, 73, 75, 83, 85, 93, 95, 100, 104], "meta": [3, 15, 17], "built": [3, 15, 49, 51, 53, 55, 59, 78, 83, 104], "docgen": 3, "local": [3, 5, 7, 11, 13, 15, 17, 33, 35, 37, 43, 47, 49, 51, 65, 79, 81, 83, 98, 104], "reflect": [3, 83, 93], "doc": [3, 7, 9, 11, 13, 15, 33, 35, 43, 45, 53, 55, 61, 71, 73, 83, 93, 102, 104], "must": [3, 7, 11, 15, 25, 33, 35, 41, 43, 45, 47, 53, 55, 59, 61, 63, 65, 71, 73, 79, 81, 83, 89, 93, 95, 100, 102, 104], "util": [3, 13, 15, 21, 37, 53, 55, 59, 83, 93, 100], "package_nam": 3, "appropri": [3, 93, 104], "g": [3, 11, 31, 37, 43, 47, 49, 53, 55, 59, 65, 69, 71, 79, 81, 89, 93, 95, 100, 104], "reinstal": 3, "edit": [3, 7, 33], "ad": [3, 5, 7, 11, 13, 23, 25, 33, 43, 47, 53, 55, 59, 61, 63, 65, 83, 87, 89, 100, 104], "repeat": 3, "order": [3, 7, 11, 13, 21, 23, 33, 35, 37, 41, 43, 45, 47, 49, 53, 55, 59, 61, 63, 65, 71, 73, 87, 89, 93, 95, 100, 104], "reset": [3, 13, 93], "updat": [3, 7, 25, 31, 33, 41, 43, 49, 53, 55, 61, 63, 75, 87, 93, 95, 98, 104], "view": [3, 7, 33, 55, 59, 104], "navig": [3, 7, 11, 25, 104], "localhost": 3, "8000": [3, 23], "live": [3, 71], "webpag": [3, 11], "cv": [3, 104], "py": [3, 7, 11, 57, 83], "test_funct": 3, "inv": 3, "testrobot": 3, "r": [3, 7, 37, 89], "robot_nam": 3, "t": [3, 7, 11, 21, 33, 35, 41, 43, 47, 49, 55, 59, 63, 75, 83, 85, 89, 95, 100, 104], "task_nam": 3, "remot": [3, 7, 11, 33, 35, 51, 53], "rst": [3, 11], "been": [3, 7, 13, 15, 21, 23, 31, 33, 43, 49, 53, 55, 59, 83, 87, 89, 93, 104], "merg": [3, 53, 75, 95, 104], "within": [3, 5, 11, 15, 21, 31, 41, 55, 59, 67, 79, 81, 89, 98, 100, 104], "latest": [3, 11, 13, 15, 19, 53, 59, 69, 95], "pyproject": 3, "toml": 3, "command": [3, 11, 19, 21, 23, 25, 31, 51, 100, 104], "lock": [3, 25, 31, 93, 100, 104], "y": [3, 5, 25, 29, 31, 41, 57, 59, 89, 100, 104], "z": [3, 61], "green": [3, 7, 33], "visual": [3, 100, 104], "studio": 3, "editor": [3, 104], "languag": [3, 15, 17, 55, 61, 71, 98, 104], "gitlen": 3, "less": [3, 41, 55, 71, 98, 104], "prone": 3, "term": [3, 11, 61, 69, 100], "apach": 3, "msgraph": [3, 104], "netsuit": [3, 104], "robotloglisten": [3, 104], "todo": 3, "link": [4, 6, 7, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 33, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 65, 66, 68, 69, 70, 72, 74, 76, 78, 80, 82, 84, 86, 87, 88, 89, 90, 92, 94, 96, 97, 99, 101], "class": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "folder": [5, 7, 11, 33, 41, 43, 49, 65, 73, 93, 104], "With": [5, 7, 11, 15, 25, 33, 35, 43, 55, 59, 61, 83, 87, 104], "curdir": [5, 11, 15, 23, 37, 39, 41, 43, 57, 59, 73, 77, 95, 102], "recurs": [5, 31, 49, 61, 104], "exclud": [5, 93], "list": [5, 7, 11, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 57, 59, 61, 65, 67, 71, 73, 75, 77, 83, 85, 87, 89, 93, 95, 98, 100, 104], "FOR": [5, 7, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 59, 61, 71, 73, 77, 83, 85, 93, 95, 98, 100], "IN": [5, 7, 13, 15, 17, 19, 23, 31, 33, 35, 37, 39, 41, 43, 47, 49, 51, 53, 55, 59, 61, 71, 73, 77, 83, 85, 93, 95, 98, 100], "end": [5, 7, 11, 13, 15, 17, 19, 23, 25, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 59, 61, 63, 71, 73, 77, 83, 85, 93, 95, 98, 100, 102, 104], "info": [5, 15, 41, 43, 45, 53, 59, 63, 73, 75, 83, 85, 102, 104], "archive_folder_with_tar": 5, "list_arch": 5, "print": [5, 7, 11, 13, 15, 17, 23, 25, 27, 29, 31, 35, 37, 39, 51, 53, 55, 59, 61, 63, 71, 75, 77, 79, 81, 83, 85, 87, 93, 98, 100, 104], "robot_library_doc_format": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 102], "rest": [5, 7, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 91, 93, 95, 98, 100, 102], "robot_library_scop": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "global": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "add_to_arch": 5, "union": [5, 7, 11, 13, 15, 21, 23, 33, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 65, 73, 77, 83, 85, 87, 91, 93, 95], "str": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "archive_nam": 5, "paramet": [5, 7, 11, 13, 15, 17, 19, 21, 23, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102, 104], "filenam": [5, 7, 11, 15, 23, 31, 33, 39, 41, 43, 45, 47, 49, 53, 57, 59, 61, 65, 73, 77, 83, 102, 104], "rel": [5, 7, 11, 25, 49, 104], "exist": [5, 11, 15, 23, 29, 31, 41, 43, 45, 47, 49, 53, 55, 57, 61, 63, 71, 73, 79, 81, 83, 85, 89, 91, 93, 95, 102, 104], "structur": [5, 11, 15, 37, 47, 59, 61, 65, 83, 91, 100, 104], "extrafil": 5, "txt": [5, 7, 15, 31, 33, 49], "myfil": [5, 19, 31], "stat": [5, 29, 31], "png": [5, 7, 11, 15, 19, 25, 31, 33, 35, 37, 41, 43, 47, 49, 57, 69, 71, 73, 104], "gz": 5, "filename1": 5, "filename2": 5, "bool": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 65, 69, 73, 77, 83, 87, 93, 95, 98, 102], "fals": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51, 53, 55, 59, 61, 65, 69, 73, 77, 83, 87, 89, 93, 95, 98, 100, 102, 104], "sub": [5, 37, 41, 43, 61, 93, 104], "pattern": [5, 7, 15, 33, 43, 49, 61, 83], "type": [5, 7, 11, 15, 23, 25, 31, 33, 37, 39, 41, 47, 53, 59, 61, 65, 67, 77, 83, 87, 89, 93, 95, 98, 100, 104], "determin": [5, 7, 55, 87, 95], "By": [5, 7, 11, 15, 29, 31, 33, 37, 45, 47, 53, 55, 59, 85, 87, 95, 104], "onli": [5, 7, 11, 13, 15, 21, 23, 25, 33, 35, 37, 41, 45, 47, 49, 53, 55, 59, 61, 63, 73, 79, 81, 83, 85, 89, 93, 95, 98, 100, 102, 104], "similarli": 5, "dotfil": 5, "archive_folder_with_zip": 5, "compress": 5, "deflat": 5, "bzip2": 5, "lzma": 5, "mydoc": 5, "robottask": 5, "no_dotfil": 5, "packagelzma": 5, "bzip": 5, "extract_arch": 5, "member": [5, 15, 59], "extract": [5, 37, 43, 75], "filepath": [5, 15, 19, 23, 37, 39, 41, 43, 51, 53, 59, 73, 77, 87], "c": [5, 7, 31, 33, 41, 47, 55, 59, 61, 69, 89, 100], "extract_file_from_arch": 5, "background": [5, 7], "get_archive_info": 5, "dict": [5, 7, 11, 13, 15, 23, 29, 31, 33, 35, 37, 39, 41, 43, 47, 53, 55, 61, 63, 65, 77, 83, 87, 91, 93, 95, 98, 104], "dictionari": [5, 7, 11, 13, 15, 29, 31, 37, 39, 41, 43, 47, 53, 55, 61, 63, 65, 69, 73, 75, 77, 79, 81, 83, 87, 91, 93, 95, 98, 102, 104], "kei": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 31, 33, 35, 37, 39, 41, 43, 47, 51, 53, 55, 59, 61, 63, 71, 75, 77, 78, 83, 87, 89, 93, 95, 98, 100, 104], "filemod": 5, "mtime": 5, "attribut": [5, 11, 15, 31, 41, 43, 85, 87, 89, 93, 100, 104], "last": [5, 11, 13, 47, 53, 55, 83, 95, 100], "modif": [5, 49], "d": [5, 23, 29, 31, 41, 47, 57, 89], "h": [5, 29, 31, 41, 47, 55, 57], "archiveinfo": 5, "while": [7, 11, 33, 53, 55, 83, 93, 104], "allow": [7, 15, 31, 33, 47, 49, 53, 55, 59, 61, 63, 79, 81, 83, 85, 93, 95, 104], "capabl": [7, 11, 41, 104], "other": [7, 11, 15, 31, 33, 35, 37, 41, 45, 53, 55, 61, 65, 73, 77, 79, 81, 83, 93, 95, 100, 102, 104], "hi": 7, "previou": [7, 11, 13, 25, 33, 53, 59, 63, 73, 83, 95, 100, 104], "desir": [7, 65, 71, 104], "could": [7, 19, 33, 53, 69, 87, 95], "finish": [7, 33, 41, 43, 63, 89], "dynam": [7, 33, 95, 104], "person": [7, 33, 61, 93], "content": [7, 11, 15, 19, 23, 25, 27, 31, 33, 37, 41, 43, 47, 49, 53, 59, 65, 79, 81, 83, 87, 91, 95, 98, 104], "workflow": [7, 33], "compos": [7, 33], "fly": [7, 33], "state": [7, 25, 33, 53, 59, 61, 77, 83, 100, 104], "relev": [7, 33, 45, 59, 65, 73, 102, 104], "either": [7, 8, 11, 15, 17, 21, 25, 31, 33, 41, 45, 47, 53, 55, 61, 65, 83, 87, 89, 93, 95, 100, 104], "block": [7, 15, 33, 45, 73, 102, 104], "continu": [7, 31, 33, 49, 71, 104], "freeli": [7, 33], "field": [7, 15, 25, 31, 33, 35, 37, 39, 43, 55, 59, 61, 65, 73, 75, 87, 89, 93, 95, 104], "successfulli": [7, 11, 33, 104], "submit": [7, 11, 15, 33, 71, 104], "enter": [7, 25, 31, 33, 59, 89, 100], "abort": [7, 33, 51], "close": [7, 11, 23, 31, 33, 45, 47, 51, 53, 55, 59, 67, 73, 85, 87, 100, 102, 104], "forcefulli": [7, 33], "valu": [7, 11, 13, 15, 19, 21, 23, 31, 33, 35, 37, 41, 43, 45, 47, 51, 53, 55, 57, 59, 61, 63, 65, 67, 71, 75, 77, 78, 79, 81, 83, 87, 89, 93, 95, 100, 104], "uniqu": [7, 11, 15, 31, 33, 55, 57, 87, 93, 95, 104], "button": [7, 11, 25, 31, 33, 59, 89, 100, 104], "dotdict": [7, 33, 104], "string": [7, 11, 13, 15, 21, 23, 29, 31, 33, 35, 41, 43, 47, 49, 51, 53, 55, 59, 61, 63, 65, 71, 75, 77, 83, 87, 89, 91, 93, 95, 98, 100, 102, 104], "checkbox": [7, 11, 33, 89, 93, 104], "boolean": [7, 11, 15, 23, 33, 41, 43, 47, 53, 55, 65, 95, 104], "won": [7, 11, 43, 55, 59, 87, 100, 104], "layout": [7, 104], "bottom": [7, 25, 31, 37, 43, 47, 57, 100, 104], "bit": [7, 21, 25, 43, 59, 100], "margin": [7, 104], "around": [7, 11, 23, 25, 57, 61, 104], "spacious": 7, "overrid": [7, 59, 85, 87, 95, 104], "smaller": [7, 57, 95], "combin": [7, 15, 41, 55, 57, 61, 89, 95, 104], "stack": [7, 104], "posit": [7, 11, 25, 37, 43, 59, 71, 89, 95, 100, 104], "center": [7, 31, 33, 47, 59, 100, 104], "topleft": [7, 31], "bottomright": 7, "coordin": [7, 25, 31, 37, 57, 59, 100, 104], "tupl": [7, 11, 15, 23, 35, 37, 43, 45, 51, 53, 55, 57, 77, 83, 93, 95], "bse": 7, "absolut": [7, 25, 43, 49, 59, 77, 79, 81, 83, 104], "anywher": 7, "color": [7, 11, 33, 47, 57], "pad": [7, 89, 100], "navbar": [7, 104], "bar": [7, 11, 41, 43, 53, 63, 104], "Its": 7, "clear": [7, 27, 33, 47, 55, 59, 83, 95, 100, 104], "success": [7, 11, 23, 33, 41, 43, 51, 57, 69, 73, 87, 89], "icon": [7, 33, 91, 104], "titl": [7, 11, 31, 33, 59, 69, 89, 93, 104], "failur": [7, 11, 33, 51, 53, 55, 83, 85, 104], "enterpris": [7, 33], "label": [7, 15, 25, 33, 39, 43, 55, 89, 104], "troubleshoot": [7, 33, 43, 104], "real": [7, 33, 61, 98], "chonker": [7, 33], "fat": [7, 33], "cat": [7, 33], "jpeg": [7, 15, 33, 37, 39], "height": [7, 17, 25, 33, 59, 100, 104], "1024": [7, 33, 95], "width": [7, 11, 17, 25, 33, 45, 47, 57, 59, 93, 100], "confirm": [7, 11, 33, 43], "warn": [7, 23, 31, 33, 43, 53, 55, 104], "delet": [7, 15, 25, 33, 41, 43, 47, 49, 51, 53, 61, 83, 87, 100, 104], "No": [7, 31, 33, 47, 57, 61], "ye": [7, 33], "IF": [7, 13, 23, 33, 41, 43, 49, 53, 59, 73, 77, 93, 104], "form": [7, 13, 15, 19, 33, 47, 53, 63, 65, 75, 83, 104], "send": [7, 15, 31, 33, 41, 43, 51, 53, 55, 59, 73, 77, 83, 89, 91, 93, 98, 100, 104], "feedback": [7, 11, 33, 55, 104], "address": [7, 11, 15, 23, 33, 35, 37, 41, 43, 51, 55, 59, 61, 63, 73, 83, 95, 104], "placehold": [7, 33, 104], "maximum_row": [7, 104], "def": [7, 23, 25, 29, 31, 43, 47, 49, 57, 63, 73, 75, 77, 79, 81, 83, 85, 100], "success_dialog": 7, "add_icon": [7, 33], "add_head": [7, 33], "add_fil": [7, 33], "run_dialog": [7, 33, 104], "failure_dialog": 7, "add_text": [7, 33], "add_link": [7, 33], "large_dialog": 7, "add_imag": [7, 33], "confirmation_dialog": 7, "add_submit_button": [7, 33], "delete_us": 7, "input_from_dialog": 7, "add_text_input": [7, 33], "send_feedback_messag": 7, "robot_auto_keyword": [7, 13, 33, 35, 55, 59, 77, 83, 93], "add_button": 7, "callabl": [7, 83], "arg": [7, 11, 19, 25, 35, 45, 49, 53, 65, 75, 79, 81, 83, 89, 95, 100], "locat": [7, 11, 15, 23, 25, 31, 33, 35, 43, 47, 57, 59, 65, 67, 89, 93, 98, 100, 104], "verticalloc": 7, "left": [7, 17, 25, 31, 37, 47, 57, 59, 65, 100, 104], "kwarg": [7, 11, 15, 19, 25, 35, 45, 53, 63, 69, 75, 77, 79, 81, 83, 87, 89, 93, 100, 104], "callback": [7, 59, 104], "press": [7, 11, 25, 31, 33, 59, 89, 100, 104], "pass": [7, 15, 23, 25, 35, 37, 41, 43, 45, 49, 51, 53, 55, 59, 61, 63, 65, 69, 75, 85, 87, 93, 95, 100, 104], "app": [7, 11, 19, 31, 41, 43, 45, 55, 59, 63, 65, 73, 87, 98, 100, 102, 104], "second": [7, 11, 13, 15, 29, 31, 33, 41, 43, 47, 49, 51, 53, 55, 59, 61, 73, 89, 95], "let": [7, 61, 69], "infinit": [7, 104], "loop": [7, 11, 33, 59, 85, 104], "first_view": 7, "second_view": 7, "add_checkbox": [7, 33], "indic": [7, 15, 33, 41, 55, 61, 65, 100, 104], "select": [7, 11, 15, 23, 31, 33, 35, 43, 49, 57, 59, 61, 83, 87, 89, 93, 95, 100, 104], "shown": [7, 11, 25, 33, 55, 85, 91, 100], "next": [7, 13, 15, 33, 47, 55, 77, 83, 100, 104], "enabl": [7, 9, 11, 15, 19, 25, 31, 33, 37, 43, 45, 47, 53, 59, 65, 73, 83, 89, 93, 102, 104], "trigger": [7, 33, 77, 83, 104], "select_checkbox": [7, 89], "enable_vault": 7, "add_date_input": [7, 33], "yyyi": [7, 13, 33, 41, 87], "mm": [7, 13, 33, 41, 47, 87], "dd": [7, 13, 33, 41, 47, 87], "otherwis": [7, 11, 13, 15, 23, 29, 31, 33, 41, 43, 47, 83, 100, 104], "birthdat": [7, 33], "1993": [7, 33], "04": [7, 33], "26": [7, 13, 33, 89], "consol": [7, 13, 33, 37, 39, 43, 53, 61, 83, 87, 100], "year": [7, 13, 33, 41, 47], "select_birthd": 7, "add_drop_down": [7, 33], "drop": [7, 23, 31, 33, 104], "menu": [7, 25, 31, 33, 59, 87, 89, 100], "custom": [7, 11, 13, 25, 33, 37, 41, 45, 47, 53, 73, 83, 87, 91, 95, 102, 104], "user_typ": [7, 33], "admin": [7, 33], "select_user_type_from_drop_down": 7, "open_file_button": 7, "generate_order_fil": 7, "add_file_input": [7, 33], "file_typ": [7, 33], "nativ": [7, 33, 55, 104], "up": [7, 11, 15, 19, 25, 33, 35, 49, 53, 55, 57, 89, 95, 100, 104], "home": [7, 25, 33, 43, 95, 100, 104], "restrict": [7, 23, 33, 73, 100, 104], "svg": [7, 69], "limit": [7, 11, 15, 23, 33, 43, 57, 59, 75, 77, 83, 93, 104], "xl": [7, 33, 45, 47, 49, 53, 83, 104], "xlsx": [7, 21, 33, 45, 47, 49, 67, 73, 77, 83, 95, 104], "src": [7, 31, 33, 41, 43], "temp": [7, 33, 49, 65], "everi": [7, 11, 33, 37, 95, 104], "multiple_file_select": 7, "insert": [7, 11, 15, 23, 25, 33, 47, 87, 89, 93, 100, 104], "itself": [7, 11, 33, 37, 55, 100], "unix": [7, 33, 55, 93, 95], "style": [7, 11, 33, 47, 55, 71, 104], "express": [7, 11, 15, 31, 33, 59, 104], "everyth": [7, 33, 49], "singl": [7, 11, 13, 15, 23, 33, 37, 41, 43, 47, 49, 55, 61, 73, 77, 83, 89, 93, 95, 104], "charact": [7, 11, 15, 23, 31, 33, 43, 49, 61, 63, 71, 95, 98, 100, 104], "seq": [7, 33], "escap": [7, 33, 89, 100], "wrap": [7, 33, 35, 63, 64, 65, 70, 75, 89, 104], "squar": [7, 33, 71], "bracket": [7, 33, 89, 100], "between": [7, 13, 15, 31, 33, 35, 41, 53, 55, 57, 61, 71, 95, 100, 104], "order0": [7, 33], "order9": [7, 33], "open_multiple_files_button": 7, "add_flet_icon": 7, "int": [7, 11, 13, 15, 23, 25, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 55, 59, 61, 63, 67, 69, 71, 77, 83, 87, 93, 95, 98, 100, 104], "galleri": [7, 104], "flet": [7, 104], "browser": [7, 33, 49, 85, 100, 104], "lower_cas": 7, "blob": [7, 11], "035b00104f782498d084c2fd7ee96132a542ab7f": 7, "sdk": [7, 31, 93, 100], "flet_cor": 7, "l37": 7, "argb": 7, "rgb": [7, 57], "ffxxyyzz": 7, "xxyyzz": 7, "integ": [7, 13, 15, 23, 51, 53, 55, 59, 77, 93, 95, 104], "icon_nam": 7, "check_circle_round": 7, "ff00ff": 7, "48": [7, 33, 47, 89], "add_custom_icon": 7, "medium": [7, 33], "small": [7, 33], "add_dialog_head": 7, "add_hidden_input": [7, 33], "hidden": [7, 33, 93], "feild": [7, 33], "visibl": [7, 11, 25, 31, 33, 37, 45, 59, 73, 85, 102, 104], "alwai": [7, 31, 33, 47, 53, 59, 83, 95, 104], "static": [7, 33, 37, 53], "togeth": [7, 11, 33, 41, 49, 53, 55, 87, 95, 104], "alreadi": [7, 11, 31, 33, 35, 43, 47, 49, 53, 55, 63, 69, 89, 104], "known": [7, 23, 33, 65, 95, 104], "ensur": [7, 9, 33, 41, 43, 45, 59, 63, 73, 102, 104], "user_id": [7, 33, 55], "get_user_inform": 7, "enter_user_inform": 7, "variant": [7, 33], "short": [7, 61], "statu": [7, 11, 15, 29, 31, 33, 37, 43, 53, 77, 83, 85, 87, 95, 98, 104], "being": [7, 11, 15, 33, 35, 47, 55, 65, 104], "present": [7, 11, 33, 51, 55, 59, 65, 89, 104], "mark": [7, 33, 43, 47, 61, 73, 75, 77, 83, 95, 100, 104], "orang": [7, 33], "triangl": [7, 33], "red": [7, 33, 47, 57], "pixel": [7, 17, 25, 33, 57, 93], "64": [7, 33, 59, 104], "url_or_path": [7, 33], "inlin": [7, 15, 33, 41, 43, 104], "resiz": [7, 33, 47, 104], "fit": [7, 33], "explicitli": [7, 8, 11, 23, 33, 95, 104], "aspect": [7, 33], "ratio": [7, 33], "compani": [7, 11, 31, 33, 55, 83], "logo": [7, 25, 33, 69], "display_imag": 7, "clickabl": [7, 11, 33, 104], "occur": [7, 33], "add_troubleshoot_link": 7, "add_loading_bar": 7, "bar_height": 7, "tooltip": 7, "float": [7, 25, 31, 35, 37, 39, 41, 43, 47, 49, 53, 55, 59, 61, 73, 87, 89], "load": [7, 11, 21, 23, 47, 55, 61, 83, 95, 104], "stroke": 7, "black12": 7, "red500": 7, "mous": [7, 25, 31, 59, 100, 104], "hover": 7, "complet": [7, 11, 15, 33, 35, 47, 49, 51, 53, 55, 63, 65, 71, 75, 100, 104], "indetermin": 7, "progress": [7, 33, 51], "add_loading_spinn": 7, "stroke_width": 7, "spinner": [7, 104], "spin": 7, "endlessi": 7, "add_next_ui_button": 7, "lead": [7, 100, 104], "ui": [7, 25, 45, 55, 57, 58, 59, 73, 93, 100, 102, 104], "retriev": [7, 15, 35, 37, 53, 55, 63, 65, 83, 87, 89, 93, 100, 104], "advanc": [7, 25, 53, 55, 93, 104], "username_1": 7, "show": [7, 33, 41, 45, 57, 59, 61, 73, 77, 102, 104], "detail": [7, 11, 15, 35, 37, 41, 55, 65, 83, 87, 89, 100, 104], "user_data": 7, "phone_numb": 7, "main_form": 7, "customer_detail": 7, "retrieve_user_data": 7, "add_password_input": [7, 33], "hide": [7, 33, 47, 104], "look": [7, 33, 37, 43, 47, 53, 55, 95, 100], "plachold": [7, 33], "change_password": 7, "change_user_password": 7, "add_radio_button": [7, 33], "radio": [7, 11, 33, 89], "select_user_type_from_radio_button": 7, "add_slid": 7, "slider_min": 7, "slider_max": 7, "thumb_text": 7, "decim": [7, 47, 100, 104], "slider": [7, 104], "maximum": [7, 11, 15, 43, 53, 55, 57, 59, 61, 71, 93, 98, 104], "thumb_label": 7, "slide": 7, "thumb": [7, 69], "amount": [7, 11, 33, 47, 51, 83, 95, 104], "specifi": [7, 11, 15, 35, 43, 47, 53, 55, 65, 67, 73, 83, 89, 93, 95, 100, 104], "round": [7, 55, 104], "min": [7, 11, 89], "max": [7, 15, 93, 104], "mani": [7, 11, 15, 29, 31, 33, 41, 53, 55, 61, 79, 81, 93, 95, 104], "percentag": [7, 47], "create_percentage_slid": 7, "prefer": [7, 11, 25, 33, 55, 83, 98, 104], "highlight": [7, 11, 31, 33, 59, 104], "accent": [7, 33], "delete_user_warn": 7, "user_01": 7, "f": [7, 13, 17, 25, 27, 29, 31, 37, 39, 51, 55, 63, 75, 77, 79, 81, 87, 89, 93], "paragraph": [7, 33], "larger": [7, 33, 49, 57, 95, 104], "bodi": [7, 15, 33, 41, 43, 53, 55, 73, 83, 104], "show_error_dialog": 7, "minimum_row": [7, 104], "wasn": [7, 104], "longer": [7, 33, 53, 59, 104], "scrollbar": [7, 89], "appear": [7, 11, 31, 71, 89, 104], "fill": [7, 33, 47, 75], "assign": [7, 95], "doesn": [7, 11, 33, 41, 43, 49, 55, 63, 83, 104], "complic": [7, 61], "sign": [7, 37], "dot": [7, 11, 15, 55, 65], "regex": [7, 61, 100, 104], "And": [7, 31, 41, 43, 53, 85, 100, 104], "regexp": [7, 31, 75], "invalid": [7, 104], "validate_email": 7, "open_dialog": [7, 31], "ask_us": [7, 104], "timeout": [7, 11, 15, 31, 33, 41, 43, 49, 51, 53, 59, 73, 104], "180": [7, 33], "until": [7, 11, 15, 25, 31, 33, 35, 49, 59, 83, 98, 100, 104], "wait": [7, 11, 15, 25, 31, 33, 41, 43, 49, 53, 59, 73, 89, 104], "ask_user_dialog": 7, "clear_dialog": 7, "close_column": 7, "previous": [7, 15, 21, 33, 35, 41, 43, 47, 53, 63, 83, 87, 100, 104], "rais": [7, 11, 31, 33, 41, 45, 47, 49, 51, 53, 57, 59, 61, 63, 67, 83, 87, 95, 104], "layouterror": 7, "recent": [7, 13, 98, 104], "close_contain": 7, "close_navbar": 7, "close_row": 7, "close_stack": 7, "open_column": 7, "doubl": [7, 25, 31, 43, 89, 100, 104], "double_column_layout": 7, "open_row": 7, "open_contain": 7, "background_color": 7, "much": [7, 37, 59, 104], "bgcolor": 7, "place": [7, 21, 55, 59, 95, 104], "center___": 7, "___center": 7, "20": [7, 15, 25, 47, 61, 67, 85, 89, 95], "blue500": 7, "sampl": [7, 49, 71, 95], "padded_element_with_background": 7, "open_navbar": 7, "go": [7, 11, 31, 41, 43, 83, 85, 104], "go_to_start_menu": 7, "assistant_navbar": 7, "side": [7, 11, 25, 59, 100, 104], "side_by_side_el": 7, "open_stack": 7, "overlap": [7, 47], "360": 7, "topright": 7, "right": [7, 25, 31, 37, 47, 57, 59, 63, 89, 100, 104], "absolutely_positioned_el": 7, "refresh_dialog": 7, "typing_extens": 7, "liter": [7, 104], "480": [7, 33], "on_top": [7, 33], "windowloc": [7, 104], "set_titl": 7, "deprec": [8, 11, 27, 31, 33, 41, 53, 55, 83, 104], "alia": [8, 11, 25, 47, 49, 53, 104], "playwright": [8, 104], "upstream": [9, 89], "bundl": [9, 53], "avoid": [9, 37, 65, 83, 100], "conflict": 9, "maxim": [9, 11, 89, 104], "practic": 9, "13": [9, 13, 15, 55, 100], "seleniumlibrari": [10, 11, 85, 104], "instal": [11, 15, 19, 25, 53, 57, 100, 104], "visit": 11, "webdriv": [11, 104], "seleniumhq": 11, "readm": 11, "driver": [11, 104], "chapter": 11, "binari": [11, 49, 51, 53, 104], "toc": 11, "typic": [11, 15, 47, 63], "most": [11, 47, 59, 83, 85, 93, 98, 100], "often": [11, 25, 31], "webel": [11, 104], "strategi": [11, 100, 104], "css": 11, "selector": [11, 25, 104], "implicit": [11, 23, 53, 104], "sens": [11, 104], "context": [11, 13, 15, 89, 93], "click": [11, 25, 31, 59, 89, 100, 104], "href": 11, "normal": [11, 15, 31, 49, 61, 79, 81, 83, 85, 100, 104], "accident": [11, 104], "recogn": [11, 37], "explicit": [11, 37, 63, 89], "foo": [11, 53], "former": 11, "latter": [11, 104], "ident": [11, 15], "robotframeworkuserguid": 11, "space": [11, 25, 31, 41, 63, 100, 104], "ignor": [11, 49, 55, 83, 89, 93, 104], "equival": [11, 25], "tabl": [11, 15, 23, 39, 41, 47, 59, 65, 67, 77, 87, 89, 93, 104], "regist": [11, 41, 55, 65, 85], "tag": [11, 15, 37, 43, 104], "div": 11, "dom": [11, 104], "exact": [11, 15, 29, 31], "partial": [11, 31, 55, 85], "he": [11, 25], "ex": [11, 25, 31, 41, 100], "sizzl": 11, "my_id": 11, "jqueri": 11, "behavior": [11, 53, 65, 71, 104], "necessari": [11, 23, 43, 63, 93], "pro": 11, "con": 11, "simpli": [11, 35], "fast": [11, 31], "stabl": [11, 37], "solut": 11, "h1": [11, 43], "easi": [11, 59], "complex": 11, "approach": [11, 100], "power": [11, 61], "downsid": 11, "prior": [11, 35, 65, 83, 100], "conveni": [11, 104], "construct": [11, 13], "parenthesi": [11, 61, 100, 104], "front": [11, 89], "chain": [11, 15, 25, 35, 100, 104], "two": [11, 15, 17, 33, 41, 47, 55, 77, 79, 81, 87, 95, 104], "greater": [11, 53, 55, 98, 104], "mix": [11, 98], "Or": [11, 87, 93], "although": [11, 104], "abei": 11, "whole": [11, 41, 100, 104], "locator_list": 11, "div_id": 11, "elem": 11, "lookup": [11, 55, 104], "constraint": 11, "getelementbyid": 11, "reimplement": 11, "basic": [11, 25, 41, 53, 59, 61, 65, 104], "refer": [11, 17, 23, 25, 37, 49, 53, 57, 59, 61, 65, 75, 95, 100, 104], "conceptu": 11, "talk": 11, "03_webdriv": 11, "jsp": 11, "independ": 11, "usual": [11, 31, 35, 41, 43, 63, 83], "cooki": [11, 25, 53], "session": [11, 15, 45, 53, 63, 65, 73, 89, 102, 104], "profil": [11, 98, 104], "site": [11, 35, 57, 65, 98], "children": [11, 59, 104], "synonym": 11, "One": [11, 33, 55, 95], "mai": [11, 13, 15, 25, 55, 65, 79, 81, 83, 87, 93], "tab": [11, 25, 89, 95, 100], "pop": [11, 43, 95], "belong": [11, 15, 35, 37, 77], "blank": [11, 47, 55], "demonstr": [11, 89], "browsera": 11, "robocon": 11, "io": [11, 13, 53, 69, 89], "browserb": 11, "third": [11, 47, 95], "goe": [11, 69, 83], "currectli": 11, "delai": [11, 31, 53, 59, 89], "slow": [11, 31], "speed": [11, 31, 57, 59, 89, 93, 104], "long": [11, 23, 31, 41, 43, 55, 63], "event": [11, 15, 25], "alert": [11, 45, 73, 102, 104], "addition": [11, 37], "async": 11, "asynchron": [11, 15, 75, 104], "implicit_wait": 11, "04_webdriver_advanc": 11, "page_load_timeout": 11, "42": [11, 89], "30": [11, 13, 25, 31, 59, 89, 93], "handi": 11, "own": [11, 17, 43, 49], "captur": [11, 57, 85, 104], "run_on_failur": [11, 85, 104], "resourc": [11, 15, 23, 53, 65, 78, 85], "disabl": [11, 33, 41, 53, 83, 85, 89, 104], "noth": [11, 85, 89], "perform": [11, 23, 43, 53, 55, 59, 61, 87, 89, 93, 104], "convers": [11, 71, 104], "hint": [11, 104], "did": 11, "covert": 11, "eventfiringwebdriv": 11, "webdriver_support": 11, "event_firing_webdriv": 11, "extend": [11, 35, 53, 55, 61, 67, 85, 87, 93, 98, 104], "further": [11, 25, 31, 33, 35, 61, 63, 100, 104], "thread": 11, "safe": [11, 23], "mainli": [11, 63, 104], "due": [11, 15, 85, 104], "wiki": [11, 23, 51], "frequent": 11, "q": 11, "plugin": [11, 104], "hack": 11, "prevent": [11, 83, 104], "auto_clos": [11, 104], "evalu": [11, 15, 39, 41, 47, 55, 59, 104], "available_opt": 11, "chrome": [11, 104], "chromiumedg": 11, "edg": [11, 104], "firefox": [11, 104], "firefoxopt": 11, "ie": [11, 43, 73, 85, 100, 104], "safari": 11, "available_servic": 11, "chromedriv": [11, 104], "msedgedriv": 11, "geckodriv": [11, 104], "iedriverserv": 11, "safaridriv": 11, "browser_nam": 11, "ff": 11, "gc": 11, "googlechrom": 11, "headlesschrom": 11, "headless_chrom": 11, "headlessfirefox": 11, "headless_firefox": 11, "internetexplor": 11, "chromium_brows": 11, "msedg": 11, "robot_library_vers": 11, "supported_brows": 11, "add_library_compon": [11, 19, 25, 75, 100], "library_compon": [11, 19, 25, 75, 100], "attach_chrome_brows": 11, "port": [11, 23, 43, 51, 69, 104], "digit": [11, 55], "effect": [11, 41, 63], "That": [11, 53], "9222": 11, "clear_all_highlight": 11, "made": [11, 29, 31, 55, 83], "click_button_when_vis": 11, "shadowroot": 11, "onc": [11, 31, 35, 47, 55, 93, 95, 104], "becom": [11, 49, 95], "ctrl": [11, 25, 31, 89, 100], "mybutton": 11, "click_element_if_vis": 11, "click_element_when_click": 11, "timedelta": 11, "readi": [11, 104], "orient": [11, 49, 104], "workaround": [11, 23, 59], "tri": [11, 13, 15, 33, 85, 104], "fallback": [11, 69, 100, 104], "mechan": [11, 53, 104], "durat": [11, 15], "give": [11, 13, 15, 41, 43, 47, 53, 59, 64, 65, 70, 85, 87, 104], "click_element_when_vis": 11, "action_chain": 11, "actionchain": 11, "queue": [11, 15, 83], "alt": [11, 25, 31, 43, 89, 100], "does_alert_contain": 11, "valueerror": [11, 31, 45, 57, 61, 67, 95, 104], "does_alert_not_contain": 11, "unexpect": [11, 104], "does_element_contain": 11, "ignore_cas": [11, 104], "insensit": [11, 25, 104], "spec": 11, "does_frame_contain": 11, "frame": [11, 59], "myfram": 11, "does_location_contain": 11, "does_page_contain": 11, "gmail": [11, 43, 69, 73, 104], "does_page_contain_button": 11, "does_page_contain_checkbox": 11, "random": 11, "does_page_contain_el": 11, "count": [11, 23, 41, 43, 47, 59, 67, 95, 98, 104], "textarea": [11, 59], "does_page_contain_imag": 11, "does_page_contain_link": 11, "does_page_contain_list": 11, "does_page_contain_radio_button": 11, "male": 11, "does_page_contain_textfield": 11, "textfield": [11, 89], "does_table_cell_contain": 11, "begin": [11, 15, 47, 93, 100, 104], "does_table_column_contain": 11, "nokia": [11, 15, 55, 87], "does_table_contain": 11, "februari": 11, "does_table_footer_contain": 11, "footer": [11, 102], "sum": 11, "does_table_header_contain": 11, "header": [11, 37, 39, 43, 47, 53, 77, 95, 102, 104], "month": [11, 13, 47], "does_table_row_contain": 11, "does_textarea_contain": 11, "sincer": 11, "does_textfield_contain": 11, "lname": [11, 77], "properti": [11, 13, 25, 29, 35, 45, 59, 63, 65, 73, 77, 79, 81, 83, 87, 93, 100, 102, 104], "noopenbrows": 11, "execute_cdp": 11, "chromium": [11, 104], "devtool": [11, 104], "chromedevtool": 11, "headless": [11, 104], "param": [11, 15, 23, 53, 55, 104], "userag": 11, "83": [11, 89], "4103": 11, "53": 11, "cdp": [11, 104], "network": 11, "setuseragentoverrid": 11, "failure_occur": 11, "overwrit": [11, 31, 41, 43, 47, 49, 53, 73, 77, 79, 81, 95, 104], "find_el": [11, 31], "parent": [11, 41, 49, 59, 61, 100, 104], "webelememt": 11, "child": [11, 55, 61, 83, 100], "elementnotfound": [11, 59], "mpty": 11, "get_browser_cap": 11, "cap": [11, 25, 100], "get_element_statu": 11, "focus": [11, 59, 100], "get_keyword_argu": [11, 19, 25, 75, 100], "get_keyword_document": [11, 19, 25, 75, 100], "get_keyword_nam": [11, 19, 25, 75, 100], "get_keyword_sourc": [11, 19, 25, 75, 100], "keyword_nam": [11, 19, 25, 75, 100], "get_keyword_tag": [11, 19, 25, 75, 100], "get_keyword_typ": [11, 19, 25, 75, 100], "get_testability_statu": 11, "seleniumtest": [11, 104], "get_webel": 11, "shadow": [11, 49, 104], "mozilla": 11, "en": [11, 13, 15, 43, 45, 51, 53, 69, 73], "u": [11, 15, 33, 45, 73, 100], "highlight_el": [11, 59], "2px": 11, "blue": 11, "outlin": [11, 31], "h2": 11, "input_text_when_element_is_vis": 11, "freetext": 11, "my": [11, 23, 31, 41, 45, 49, 59, 69, 79, 81, 87, 93], "is_alert_pres": 11, "box": [11, 37, 59, 75, 104], "dismiss": [11, 45, 73, 102], "leav": [11, 71, 83], "is_checkbox_select": 11, "tax": 11, "paid": 11, "is_chromium": 11, "is_element_attribute_equal_to": 11, "equal": [11, 21, 31, 41, 53, 55, 59, 61, 95, 104], "is_element_dis": 11, "missing_ok": [11, 49, 83, 104], "is_element_en": [11, 31], "field1": 11, "is_element_focus": 11, "is_element_text": 11, "john": [11, 47, 61, 77, 95], "is_element_vis": [11, 31], "is_list_select": 11, "car": 11, "ford": 11, "is_loc": 11, "is_radio_button_select": 11, "group_nam": 11, "group": [11, 55, 83, 95, 100], "gender": [11, 17], "is_radio_button_set_to": 11, "femal": 11, "is_textarea_valu": 11, "is_textfield_valu": 11, "lastnam": [11, 23, 43, 55], "is_titl": 11, "normalize_opt": 11, "argopt": 11, "use_profil": [11, 104], "browser_select": 11, "profile_nam": 11, "profile_path": 11, "proxi": [11, 53, 104], "user_ag": [11, 104], "download": [11, 15, 41, 51, 53, 65, 77, 83, 93, 104], "attempt": [11, 49, 51, 53, 57, 65, 93, 95, 104], "devic": [11, 15, 63], "forc": [11, 55, 59, 83, 93, 104], "agent": [11, 77, 79, 81], "overridden": [11, 15, 47], "creation": [11, 49, 104], "chromeopt": 11, "add_argu": 11, "incognito": 11, "set_cap": 11, "acceptinsecurecert": 11, "randomli": 11, "pick": [11, 35, 59], "plan": [11, 43], "parallel": 11, "internet": 11, "explor": [11, 31, 59, 100], "mode": [11, 21, 23, 29, 31, 33, 49, 51, 53, 55, 63, 100, 104], "opera": 11, "headlessbrows": 11, "dir": [11, 49, 53], "8888": 11, "darwin": 11, "comma": [11, 43, 61, 83, 93], "pars": [11, 15, 21, 31, 55, 75, 83, 93, 104], "launch": [11, 31, 104], "stop": [11, 25, 95, 100, 104], "except": [11, 33, 43, 49, 53, 59, 83, 85, 95, 104], "were": [11, 17, 31, 33, 41, 47, 61, 65, 73, 100], "slightli": 11, "faster": [11, 57, 104], "benefit": [11, 61, 104], "drawback": 11, "unless": [11, 47, 55, 83, 93], "detect": [11, 15, 17, 23, 35, 37, 43, 104], "rpa_headless_mod": [11, 104], "var": [11, 27, 83, 104], "somewher": 11, "outsid": [11, 53], "respect": [11, 13, 43], "mind": [11, 35, 59, 75, 104], "observ": [11, 100], "user_data_dir": 11, "pair": [11, 15, 47, 53, 57, 83, 104], "open_chrome_brows": 11, "full": [11, 39, 41, 43, 49, 65, 83, 85, 89, 93, 104], "open_headless_chrome_brows": 11, "idx": [11, 85], "open_user_brows": 11, "te": [11, 89], "print_to_pdf": 11, "output_path": [11, 43, 75], "attent": 11, "tot": 11, "printtopdf": 11, "save": [11, 15, 31, 37, 41, 43, 45, 47, 53, 57, 59, 61, 65, 67, 73, 75, 83, 93, 102, 104], "landscap": 11, "displayheaderfoot": 11, "printbackground": 11, "prefercsspages": 11, "register_driv": 11, "webdrivercach": 11, "run_keyword": [11, 19, 25, 75, 100], "timestamp": [11, 55, 57, 93], "img": [11, 41, 43], "NO": [11, 15, 17, 19], "subdir": [11, 31, 49], "loc": 11, "set_download_directori": 11, "download_pdf": 11, "disk": [11, 37, 43, 83, 104], "non": [11, 47, 49, 59, 83, 95, 100, 104], "preview": [11, 37, 104], "viewer": 11, "output_dir": [11, 43, 47, 57, 75, 93, 95], "cdn": 11, "legal": 11, "eula": 11, "v1": 11, "set_element_attribut": 11, "wait_and_click_button": 11, "especi": [13, 41, 100, 104], "busi": [13, 83, 104], "dai": [13, 47, 61, 93, 104], "holidai": [13, 104], "pendulum": 13, "mondai": 13, "fridai": 13, "weekdai": 13, "sundai": 13, "saturdai": 13, "countri": [13, 55, 100], "consider": 13, "english": [13, 104], "add_custom_holidai": 13, "datetim": [13, 29, 31, 55], "calcul": [13, 15, 21, 31, 37, 61, 100, 104], "custom_holidai": 13, "03": 13, "08": 13, "09": 13, "more_holidai": 13, "compare_tim": 13, "time1": 13, "time2": 13, "compar": [13, 47, 61, 95, 104], "comparison": [13, 33, 95, 104], "02": [13, 41, 53], "47": [13, 89], "create_tim": 13, "date_str": 13, "date_format_in": 13, "timezon": 13, "date_format_out": 13, "eustac": 13, "token": [13, 15, 19, 21, 35, 41, 43, 55, 61, 63, 65, 69, 71, 79, 81, 87, 93, 98, 104], "19": [13, 35, 37, 39, 63, 89], "mmm": [13, 47], "yy": [13, 47], "utc": [13, 41], "first_business_day_of_the_month": 13, "first_dai": 13, "2024": 13, "06": [13, 61], "01": [13, 15, 41, 61], "get_iso_calendar": 13, "iso": [13, 104], "week": 13, "iso_c": 13, "iso_year": 13, "iso_week": 13, "iso_weekdai": 13, "is_the_date_business_dai": 13, "rang": [13, 15, 47, 55, 85, 95, 104], "32": [13, 43, 59, 61, 63, 89, 100], "is_business_dai": 13, "fi": [13, 53, 69], "els": [13, 21, 31, 41, 53, 59, 73, 87, 104], "relax": 13, "is_the_date_holidai": 13, "date_in": 13, "is_holidai": 13, "2022": [13, 41, 55, 59], "12": [13, 41, 59, 61, 73, 89, 95], "last_business_day_of_the_month": 13, "last_dai": 13, "29": [13, 89], "reset_custom_holidai": 13, "empti": [13, 31, 41, 43, 47, 49, 59, 65, 71, 73, 77, 83, 89, 95, 104], "return_holidai": 13, "holiday_nam": 13, "return_next_business_dai": 13, "return_format": [13, 41], "origin": [13, 15, 21, 31, 33, 37, 43, 47, 59, 61, 83, 104], "next_busi": 13, "05": [13, 71], "return_previous_business_dai": 13, "prev_busi": 13, "prev": 13, "previous_busi": 13, "set_business_dai": 13, "denot": [13, 55, 100], "4dai": 13, "set_local": 13, "locale_nam": 13, "now": [13, 33, 41, 83, 85, 93, 104], "time_now": 13, "dddd": 13, "mmmm": 13, "juev": 13, "marzo": 13, "thursdai": 13, "march": [13, 55], "sort_list_of_d": 13, "revers": [13, 104], "oldest": 13, "datelist": 13, "07": 13, "31": [13, 41, 89], "35": [13, 89], "Of": [13, 23], "time_differ": 13, "start_dat": 13, "end_dat": 13, "start_timezon": 13, "end_timezon": 13, "end_date_is_lat": 13, "hour": [13, 15, 41, 63, 104], "minut": [13, 15, 41, 89], "diff": [13, 41], "1975": 13, "22t18": 13, "00": [13, 41, 47, 61], "22t22": 13, "45": [13, 89], "time_difference_between_timezon": 13, "america": 13, "new_york": 13, "europ": 13, "helsinki": 13, "time_difference_in_dai": 13, "21": [13, 47, 51, 89], "time_difference_in_hour": 13, "21t22": 13, "22t04": 13, "time_difference_in_minut": 13, "245": [13, 104], "time_difference_in_month": 13, "15": [13, 15, 71, 89, 95], "boston": 13, "region": [15, 17, 25, 35, 57, 100, 104], "eu": [15, 35], "west": 15, "robocorp_vault_nam": [15, 17, 104], "s3": [15, 104], "sq": [15, 104], "textract": [15, 104], "comprehend": [15, 104], "three": [15, 19, 31, 33, 55, 95, 100], "aws_key_id": 15, "aws_kei": 15, "aws_region": [15, 104], "redshift": [15, 104], "author": [15, 35, 37, 39, 41, 43, 55, 63, 65, 67, 71, 87, 98, 104], "cluster": 15, "arn": 15, "serverless": 15, "temporari": [15, 104], "credenti": [15, 19, 43, 55, 67, 77, 98, 104], "permiss": [15, 63, 65, 87], "getclustercredenti": 15, "role": [15, 59, 67, 104], "assumpt": 15, "st": [15, 104], "abl": [15, 35, 59, 104], "assum": [15, 21, 47, 55, 65, 83, 104], "east": 15, "use_robocorp_vault": [15, 17, 19, 104], "vault_nam": [15, 17, 19, 41, 63, 104], "boto3": [15, 104], "plu": [15, 41, 43], "rememb": 15, "bucket_nam": [15, 19], "testbucket12213123123": [15, 19], "upload": [15, 19, 51, 53, 65, 69, 83, 104], "bucket": [15, 19], "setup": [15, 19, 35, 41, 43, 45, 47, 55, 61, 67, 73, 77, 83, 85, 87, 98, 100, 102, 104], "analyze_docu": 15, "image_fil": [15, 17], "json_fil": 15, "model": [15, 35, 37, 39, 71, 93, 104], "analyz": [15, 17, 35, 104], "relationship": [15, 25], "analysi": [15, 104], "textractdocu": 15, "assume_rol": 15, "role_arn": 15, "role_session_nam": 15, "policy_arn": 15, "900": 15, "transitive_tag_kei": 15, "external_id": [15, 67], "serial_numb": 15, "token_cod": 15, "source_ident": 15, "secur": [15, 21, 23, 43, 65, 87], "consist": [15, 104], "account": [15, 19, 25, 41, 43, 55, 63, 65, 67, 69, 71, 73, 87, 93, 104], "accesskeyid": 15, "secretaccesskei": 15, "sessiontoken": 15, "expir": [15, 41, 43, 63], "2015": 15, "assumedroleus": 15, "assumedroleid": 15, "packedpolicys": 15, "123": [15, 61, 93, 100], "sourceident": 15, "iam": 15, "associ": [15, 31, 77], "transit": 15, "subsequ": [15, 93, 100], "administr": 15, "identif": 15, "who": [15, 43, 49], "trust": 15, "princip": 15, "convert_textract_response_to_model": 15, "create_bucket": 15, "acl": 15, "create_queu": 15, "queue_nam": 15, "create_redshift_statement_paramet": 15, "sql": [15, 23, 87, 104], "statement": [15, 23, 47, 104], "produc": [15, 23], "delete_bucket": 15, "delete_fil": 15, "delete_messag": [15, 43], "receipt_handl": 15, "delete_queu": 15, "describe_redshift_t": 15, "schema": [15, 55, 104], "metadata": [15, 17, 25, 41, 43, 49, 55, 63, 65, 87, 93, 104], "notat": [15, 55, 65], "columnlist": 15, "columndefault": 15, "iscasesensit": 15, "iscurr": 15, "issign": 15, "length": [15, 47, 61, 71, 83, 93, 95], "nullabl": 15, "precis": [15, 47], "scale": [15, 47, 59, 100, 104], "schemanam": 15, "tablenam": [15, 23], "typenam": 15, "ommit": 15, "detect_document_text": 15, "detect_ent": 15, "lang": [15, 98], "entiti": [15, 100], "utf": [15, 21, 23, 43, 49, 61, 75, 104], "fewer": 15, "000": [15, 55], "byte": [15, 21, 29, 31, 43, 49, 51, 53, 73, 104], "encod": [15, 21, 23, 37, 43, 49, 53, 61, 75, 95, 104], "detect_senti": 15, "infer": [15, 55], "prevail": 15, "sentiment": 15, "download_fil": 15, "target_directori": 15, "execute_redshift_stat": 15, "statement_nam": 15, "with_ev": 15, "40": [15, 47, 89, 104], "dml": 15, "definit": [15, 59, 65, 93, 104], "ddl": 15, "parameter": [15, 23, 104], "referenc": [15, 104], "implicitli": [15, 83], "simplic": 15, "helper": [15, 35, 37, 39, 53, 65, 104], "natur": [15, 55, 71, 100, 104], "scope": [15, 19, 41, 63, 65, 83, 93, 104], "mytabl": [15, 23], "seattl": 15, "queri": [15, 23, 37, 41, 53, 87, 93, 98, 104], "whether": [15, 31, 47, 53, 55, 71, 89, 93], "eventbridg": 15, "bu": 15, "becuas": 15, "waiter": 15, "execute_redshift_statement_asyncron": 15, "asyncron": 15, "later": [15, 25, 33, 35, 47, 83], "generate_presigned_url": 15, "object_nam": 15, "expires_in": 15, "extra_param": 15, "presign": [15, 104], "3600": 15, "get_cel": 15, "get_document_analysi": 15, "job_id": 15, "max_result": [15, 55], "1000": [15, 55, 71], "next_token": 15, "collect_all_result": 15, "job": 15, "pagin": [15, 67], "jobstatu": 15, "succeed": [15, 43], "aws_key_secret": 15, "jobid": 15, "s3bucket_nam": 15, "invoic": [15, 35, 37, 39, 41, 43, 73, 75, 104], "get_document_text_detect": 15, "get_pages_and_text": 15, "textract_respons": 15, "get_redshift_statement_result": 15, "statement_id": 15, "yet": [15, 31, 69, 100, 104], "retreiv": [15, 55], "get_tabl": 15, "get_word": 15, "init_comprehend_cli": 15, "session_token": 15, "init_redshift_data_cli": 15, "cluster_identifi": 15, "database_us": 15, "secret_arn": 15, "init_s3_cli": 15, "init_sqs_cli": 15, "queue_url": 15, "init_sts_cli": 15, "init_textract_cli": 15, "list_bucket": 15, "list_fil": [15, 51], "jmespath": 15, "list_objects_v2": 15, "awslibrari": 15, "list_redshift_databas": 15, "list_redshift_schema": 15, "schema_pattern": 15, "substr": [15, 104], "_": [15, 93, 100], "list_redshift_t": 15, "table_pattern": 15, "neither": 15, "nor": [15, 100], "logger": 15, "receive_messag": 15, "receiv": [15, 33, 41, 43, 63, 73, 83, 98, 104], "send_messag": [15, 41, 43, 73, 104], "message_attribut": 15, "set_robocorp_vault": 15, "start_document_analysi": 15, "bucket_name_in": 15, "object_name_in": 15, "object_version_in": 15, "bucket_name_out": 15, "prefix_object_out": 15, "textract_output": 15, "start_document_text_detect": 15, "upload_fil": 15, "basenam": 15, "contenttyp": 15, "mybucket": 15, "extraarg": 15, "file1": [15, 83], "file2": 15, "northeurop": 17, "computervis": 17, "comput": [17, 25, 29, 31, 49, 100, 104], "vision": [17, 19, 25, 104], "face": [17, 104], "speech": [17, 19, 104], "textanalyt": 17, "analyt": [17, 104], "subscript": [17, 55], "azure_textanalytics_kei": 17, "azure_subscription_kei": 17, "googlecloud": [17, 19], "image_url": [17, 69], "imagetyp": 17, "visual_featur": 17, "ag": [17, 47, 95], "rectangl": [17, 31, 57, 100, 104], "facerectangl": 17, "init_text_analytics_servic": 17, "init_face_servic": 17, "init_computer_vision_servic": 17, "init_speech_servic": 17, "westeurop": 17, "sentiment_analyz": 17, "wonder": 17, "staff": 17, "detect_fac": 17, "path_to_fil": 17, "face_attribut": 17, "smile": 17, "hair": 17, "facialhair": 17, "emot": 17, "faceattribut": 17, "vision_analyz": 17, "url_to_imag": 17, "text_to_speech": 17, "leverag": 17, "ecosystem": 17, "neural_voice_styl": 17, "cheer": 17, "target_fil": [17, 19, 53, 65, 77], "mp3": [17, 19], "service_account": 19, "vault_secret_kei": 19, "cloud_auth_typ": 19, "serviceaccount": [19, 35], "gcp": 19, "approri": 19, "oauth": [19, 41, 43, 63, 65, 104], "google_application_credenti": 19, "servicecr": 19, "token_fil": 19, "drive": [19, 37, 55, 65, 104], "script_scop": 19, "spreadsheet": [19, 104], "oauth_token": 19, "appdata": 19, "ganfd123321aabeedysc": 19, "init_vis": 19, "init_text_to_speech": 19, "detect_text": 19, "imagefil": 19, "synthesize_speech": 19, "said": 19, "aloud": 19, "fernet": 21, "ae": 21, "cbc": 21, "128": 21, "hmac": 21, "sha256": 21, "decrypt": [21, 75, 104], "cli": [21, 104], "rgx1eda07yz7ud08chipsunn8vaaurxw0pabsal9zjm": 21, "encryptionkei": 21, "decrypt_fil": 21, "enc": 21, "decrypt_str": 21, "base64": [21, 34, 35, 36, 37, 43, 104], "encrypt_fil": 21, "encrypt_str": 21, "don": [21, 35, 41, 47, 83, 95, 104], "generate_kei": 21, "lost": [21, 55], "recov": 21, "anyon": 21, "gain": [21, 59], "hash_fil": 21, "sha1": 21, "digest": [21, 53], "md5": 21, "uslyrhlbu8nzy29ymzhdupderp4": 21, "hash_str": 21, "use_encryption_kei": 21, "use_encryption_key_from_vault": 21, "cryptokei": 21, "procedur": [23, 104], "random_data": 23, "quot": [23, 41, 43, 55, 104], "exec": 23, "insertjsondatatosamplet": 23, "pep": 23, "0249": 23, "db": 23, "moin": 23, "databaseinterfac": 23, "program": [23, 49, 61], "databaseprogram": 23, "pymysql": [23, 104], "tester": 23, "127": [23, 51], "incoming_ord": [23, 87], "filesecret": [23, 79, 81, 87, 104], "get_secret": [23, 35, 37, 39, 41, 55, 63, 71, 77, 79, 81, 87], "databasesecret": 23, "connect_to_databas": [23, 104], "call_stored_procedur": 23, "sanstran": [23, 104], "as_tabl": [23, 87, 104], "transact": [23, 89], "rollback": [23, 104], "turn": 23, "off": [23, 37, 41, 55, 104], "firstparam": 23, "secondparam": 23, "thirdparam": 23, "mystpr": 23, "module_nam": 23, "charset": 23, "config_fil": 23, "cfg": 23, "ssl": [23, 53, 104], "had": [23, 27, 104], "mysql": [23, 104], "ssl_ca": 23, "ssl_cert": 23, "ssl_kei": 23, "client_flag": 23, "hostnam": 23, "3306": 23, "databasenam": 23, "found_row": 23, "digicertglobalrootg2": 23, "crt": 23, "pem": [23, 53], "dbconfig": 23, "azuredb": 23, "connector": [23, 104], "descripton": 23, "mydb": 23, "db_descript": 23, "disconnect_from_databas": 23, "firstnam": [23, 55], "disconnect": 23, "execute_sql_script": 23, "get_number_of_row": 23, "condit": [23, 47, 57, 61, 95], "claus": [23, 87], "column1": [23, 47, 93], "column2": [23, 47, 93], "get_row": [23, 93], "arguement": 23, "arvo": 23, "newvalu": 23, "updatedvalu": 23, "assert": [23, 53, 104], "untrust": 23, "bobbi": 23, "row_count": 23, "ones": [23, 33, 37, 100, 104], "heurist": 23, "fetch": [23, 104], "decid": 23, "stored_procedur": 23, "insert_and_return_nam": 23, "sqlite3": 23, "sqlite": 23, "data1": [23, 95], "1st": 23, "data2": [23, 95], "2nd": [23, 100], "INTO": 23, "set_auto_commit": 23, "locators_path": [25, 100, 104], "keyboard": [25, 31, 100, 104], "emul": [25, 104], "scrape": 25, "ocr": [25, 31, 37, 39, 104], "graphic": 25, "screen": [25, 31, 57, 63, 89, 98, 100], "offset": [25, 31, 100, 104], "bound": [25, 37], "rectangular": 25, "confid": [25, 37, 104], "divid": [25, 100], "colon": 25, "omit": [25, 53, 75, 93, 100, 104], "50": [25, 41], "robot_root": [25, 33, 73, 83], "200": [25, 53, 57, 95], "sparebin": 25, "enough": [25, 37, 100], "area": [25, 33, 47, 57, 104], "600": 25, "400": [25, 57], "300": [25, 31, 33, 43, 73], "disappear": 25, "truth": 25, "websit": [25, 85], "vscode": [25, 79, 81, 83, 100, 104], "craft": 25, "shortcut": 25, "underscor": 25, "page_down": 25, "shift": [25, 89, 100], "shift_l": 25, "shift_r": 25, "ctrl_l": 25, "ctrl_r": 25, "alt_l": 25, "alt_r": 25, "alt_gr": 25, "altgr": 25, "cmd": 25, "super": 25, "cmd_l": 25, "cmd_r": 25, "arrow": [25, 100], "backspac": [25, 89, 100], "esc": [25, 89, 100], "page_up": 25, "caps_lock": 25, "f1": [25, 89, 100], "f20": [25, 100], "undefin": 25, "num_lock": 25, "num": [25, 47, 100], "paus": [25, 100], "break": [25, 100, 104], "print_screen": 25, "scroll_lock": 25, "scroll": [25, 89, 100], "rule": 25, "appli": [25, 41, 55, 61, 83, 93, 95, 104], "left_click": 25, "double_click": 25, "triple_click": 25, "tripl": 25, "right_click": 25, "middl": [25, 31, 100, 104], "erp_client": 25, "write_entry_in_account": 25, "open_appl": [25, 31, 45, 73, 102], "type_text": [25, 59, 104], "press_kei": [25, 59], "input_label": 25, "write_to_field": 25, "move_mous": 25, "click_new": 25, "wait_for_el": [25, 31], "anchor": [25, 100, 104], "500": [25, 89, 98, 104], "type_not": 25, "click_with_offset": 25, "copi": [27, 31, 33, 47, 49, 59, 95, 100, 104], "past": [27, 59, 100], "clip": 27, "copy_to_clipboard": 27, "paste_from_clipboard": 27, "clear_clipboard": 27, "boot_tim": 29, "boot": [29, 31], "as_datetim": [29, 31], "memori": [29, 31, 47, 53, 55, 61, 93, 104], "get_computer_inform": 29, "op": 29, "get_boot_tim": [29, 31], "get_machine_nam": [29, 31], "get_usernam": [29, 31], "get_memory_stat": [29, 31], "__name__": [29, 31, 77], "__main__": [29, 31, 77], "boot_time_in_seconds_from_epoch": [29, 31], "epoch": [29, 31, 55], "datetime_format": [29, 31], "boottim": [29, 31], "mem": [29, 31], "kill_process": [29, 31], "process_nam": [29, 31, 77], "kill": [29, 31, 104], "succe": [29, 31], "calc": [29, 31, 47, 100], "strict": [29, 31, 59, 95, 104], "kill_process_by_pid": [29, 31], "pid": [29, 31, 59, 104], "process_exist": [29, 31], "inclus": [29, 31, 95], "process_id_exist": [29, 31], "4567": [29, 31], "put_system_to_sleep": [29, 31], "put": [29, 31, 53, 95], "sleep": [29, 31, 53, 85, 100], "backend": [31, 65, 104], "uia": [31, 59], "dispatch": 31, "offic": [31, 45, 73, 104], "pywinauto": 31, "investig": 31, "get_windows_el": 31, "class_nam": [31, 100, 104], "control_typ": [31, 100, 104], "automation_id": [31, 100, 104], "send_kei": [31, 100], "type_kei": 31, "faq": [31, 45, 73, 102, 104], "attributeerror": [31, 41], "win32com": 31, "gen_pi": 31, "00020813": 31, "0000": 31, "c000": 31, "000000000046x0x1x9": 31, "clsidtoclassmap": 31, "powershel": 31, "localappdatatempgen_pi": 31, "suit": [31, 61, 73, 83, 102], "teardown": [31, 33, 45, 47, 73, 85, 100, 102, 104], "rich": 31, "calculatorresult": [31, 100], "Be": [31, 53, 85, 89], "As": [31, 43, 47, 53, 73, 87, 93, 104], "win": [31, 100], "open_calcul": 31, "open_from_search": 31, "get_window_el": 31, "make_calcul": 31, "get_element_rich_text": 31, "strip": [31, 104], "exp": 31, "close_all_appl": 31, "calculate_rectangle_cent": 31, "rect": 31, "click_typ": [31, 59, 89], "horizont": [31, 47, 59, 100], "vertic": [31, 47, 59, 100], "450": 31, "notepad": [31, 104], "untitl": 31, "connect_by_handl": 31, "windowtitl": [31, 104], "existing_app": 31, "parse_el": 31, "appid": [31, 67], "88112": 31, "connect_by_pid": 31, "app_pid": 31, "3231": 31, "drag_and_drop": [31, 104], "src_locat": 31, "target_loc": 31, "handle_ctrl_kei": 31, "drop_delai": 31, "drag": [31, 104], "notif": [31, 33, 69, 104], "app1": 31, "vk_space": 31, "workfil": 31, "movethes": 31, "app2": 31, "wordpad": 31, "testfile_": 31, "search_criteria": 31, "get_app": 31, "app_id": 31, "active_appl": 31, "appdetail": 31, "get_dialog_rectangl": 31, "as_dict": 31, "coord": [31, 37], "get_el": [31, 59, 100], "reopen": 31, "get_element_cent": 31, "get_element_rectangl": 31, "rich_text": 31, "get_open_appl": 31, "app3": 31, "get_spaced_str": 31, "replac": [31, 33, 43, 49, 53, 61, 79, 81, 83, 95, 102, 104], "bond": 31, "get_text": 31, "Into": [31, 104], "55": 31, "val": [31, 37], "element_json": 31, "descend": [31, 41, 61, 95], "get_window_list": 31, "control_id": 31, "is_act": [31, 104], "keyboard_focu": [31, 104], "is_element_match": 31, "itemdict": 31, "wildcard": [31, 61, 83, 104], "reg": 31, "lock_screen": 31, "log_in": 31, "domain": [31, 41, 43, 53, 61, 73, 87, 104], "mynam": 31, "mypassword": 31, "menu_select": 31, "menuitem": [31, 59], "minimize_dialog": 31, "mouse_click": 31, "off_x": 31, "off_i": 31, "ctype": 31, "focu": [31, 55, 59, 89, 104], "toler": [31, 57], "corner": [31, 37, 57, 95], "myimag": [31, 41], "trickycheckbox": 31, "mouse_click_coord": 31, "delay_tim": 31, "mouse_click_imag": 31, "powerpoint": 31, "open_execut": 31, "work_dir": 31, "open_fil": [31, 102], "open_using_run_dialog": 31, "quit_appl": [31, 45, 73, 102], "quit": [31, 45, 51, 73, 100, 102, 104], "application_id": 31, "f4": [31, 89, 100], "refresh_window": 31, "restore_dialog": 31, "restor": [31, 85, 104], "send_keys_to_input": 31, "keys_to_typ": 31, "with_ent": 31, "send_delai": 31, "enter_delai": 31, "jame": 31, "THE": 31, "set_automation_spe": 31, "set_windows_backend": 31, "supported_backend": 31, "win32": 31, "switch_to_appl": 31, "type_into": 31, "empty_field": [31, 104], "use_refresh": 31, "interv": [31, 41, 43, 73], "elementnotfounderror": 31, "listbox": 31, "popup": [31, 45, 73, 102], "poll": [31, 49], "notic": 33, "migrat": [33, 104], "gfko5": 33, "2200": 33, "widget": 33, "add_dialog_next_page_button": 33, "delimit": [33, 95, 104], "wizard": [33, 104], "experi": [33, 104], "contact": [33, 55], "add_el": 33, "destin": [33, 49, 65, 83], "ext1": 33, "ext2": 33, "anyt": 33, "dest": 33, "sai": [33, 61], "choos": [33, 35], "clear_el": 33, "clean": 33, "close_all_dialog": 33, "implic": 33, "dialog1": 33, "dialog2": 33, "know": 33, "close_dialog": 33, "correctli": [33, 104], "throw": [33, 104], "shorthand": [33, 87], "show_dialog": 33, "immedi": [33, 53, 104], "agument": 33, "still": [33, 37, 45, 53, 59, 73, 83, 102, 104], "wait_all_dialog": 33, "wait_dialog": 33, "wait_dialogs_as_complet": 33, "yield": 33, "idp": [34, 36, 37, 38, 39, 104], "ai": [34, 35, 36, 37, 70, 104], "scan": [35, 37, 75], "facad": 35, "engin": [35, 89, 93, 104], "predict": [35, 37, 39, 104], "matter": [35, 104], "particular": 35, "jump": 35, "document_ai": 35, "858e4b37": 35, "6679": 35, "4552": 35, "9481": 35, "d5497dfc0b4a": 35, "enginenam": 35, "lib_docai": 35, "init_engin": 35, "df1d166771005ff4": 35, "project_id": 35, "agenc": 35, "347912": 35, "get_result": 35, "hashabl": [35, 37, 39, 61], "obtain": [35, 41, 43, 55, 59, 63, 65, 71, 93, 104], "again": [35, 83, 93], "final": [35, 41, 43, 47, 55, 63, 83, 100, 104], "split": [35, 61, 75, 104], "just": [35, 71, 104], "privat": [35, 51, 55, 104], "resolut": [35, 104], "isn": [35, 63, 104], "hold": [35, 83, 100], "ll": [35, 55], "absenc": [35, 61, 100, 104], "mail_apikei": 35, "mandatori": [35, 104], "guess": 35, "financ": [35, 37], "switch_engin": 35, "auth": [37, 39, 41, 53, 55, 61, 63, 87, 104], "apikei": [37, 39, 77], "model_typ": [37, 39], "usa": [37, 55], "join": [37, 39, 49, 55, 69, 73, 77], "baselib": [37, 71], "set_author": [37, 39], "scan_document_fil": 37, "prop": 37, "base_url": 37, "filter_matching_signatur": 37, "match_respons": 37, "confidence_threshold": 37, "similarity_threshold": 37, "signatur": [37, 104], "threshold": 37, "simplifi": [37, 61, 104], "enclos": [37, 41, 104], "portion": [37, 49, 65], "score": 37, "crop": [37, 57, 104], "candid": 37, "alik": [37, 104], "discard": [37, 83, 95], "fraudul": 37, "sig": 37, "get_fields_from_prediction_result": [37, 39], "get_matching_signatur": 37, "reference_imag": 37, "query_imag": 37, "geometri": 37, "simpler": 37, "jpg": [37, 39, 49], "licens": 37, "card": 37, "contract": 37, "bank": 37, "reveal": 37, "resembl": 37, "ref_imag": 37, "get_signature_imag": 37, "cut": 37, "decod": [37, 43, 49, 104], "numer": [37, 55, 61, 100, 104], "along": 37, "ref_sig": 37, "qry_sig": 37, "get_user_data": 37, "credit": 37, "remain": [37, 55, 63, 95], "givennam": 37, "familynam": 37, "hasworkemail": 37, "companynam": 37, "numberofcredit": 37, "numberofpag": 37, "numberofupload": 37, "numberofcreditsspentondocu": 37, "numberofcreditsspentonfacedetect": 37, "numberofcreditsspentonfacerecognit": 37, "hasactiveawscontract": 37, "subscriptiontyp": 37, "subscriptionperiod": 37, "ccemail": 37, "remainingcredit": 37, "userdata": 37, "file_path": [37, 65], "mock": 37, "img_8277": [37, 39], "1120": 37, "scan_document_url": 37, "api_email": 37, "api_kei": [37, 55, 71], "eckero": 39, "receipt": 39, "ocr_text": 39, "nanolib": 39, "predict_fil": 39, "file_to_scan": 39, "get_tables_from_prediction_result": 39, "rpatabl": 39, "create_t": [39, 95], "get_all_model": 39, "model_id": 39, "ocr_fulltext": 39, "fulltext": 39, "pagenum": 39, "enumer": [39, 65], "pagedata": 39, "raw_text": 39, "page_data": 39, "categor": 39, "docu": 39, "vault_token_kei": [41, 104], "tenant": [41, 43, 65, 104], "ew": 41, "articl": [41, 61, 104], "email_oauth_microsoft": 41, "ztzvn": 41, "onmicrosoft": 41, "account_nam": [41, 43, 73, 87], "recipient_address": [41, 43], "recipi": [41, 43, 73, 104], "mydocu": 41, "is_oauth": [41, 43, 104], "flow": [41, 43, 63, 65, 104], "client_id": [41, 43, 63, 65], "client_secret": [41, 43, 63, 65], "refresh": [41, 43, 55, 59, 63, 65, 93, 100, 104], "subject": [41, 43, 69, 73], "p": [41, 43, 89], "br": 41, "cc": [41, 43, 73, 104], "email_address": 41, "bcc": [41, 43, 73, 104], "msg": [41, 53], "save_dir": [41, 104], "savedir": 41, "inbox": [41, 43, 73], "sub1": 41, "criterion": [41, 43, 73, 104], "savedir2": 41, "purchas": [41, 59], "sub2": 41, "ex_account": 41, "forget": [41, 47, 104], "subject_contain": 41, "body_contain": 41, "sender": [41, 43, 73, 91, 104], "sender_contain": [41, 104], "categori": 41, "category_contain": 41, "timeformat": 41, "25": [41, 47, 89], "2021": 41, "23": [41, 61, 89], "to_protect": [41, 43], "get_oauth_token": [41, 43, 63, 85], "refresh_oauth_token": [41, 43, 63, 65, 85], "autodiscov": [41, 104], "access_typ": [41, 63, 104], "accesstyp": 41, "deleg": [41, 104], "primary_smtp_address": 41, "skip": [41, 89, 104], "imperson": [41, 93, 104], "expiri": 41, "create_fold": [41, 43], "folder_nam": [41, 43, 73, 104], "parent_fold": 41, "delete_fold": [41, 43], "empty_fold": 41, "delete_sub_fold": 41, "generate_oauth_url": [41, 43, 63], "sensit": [41, 43, 55, 63, 104], "auth_url": [41, 43, 63], "810482312368": [41, 43, 63], "19htmcgcj": [41, 43, 63], "googleusercont": [41, 43, 63], "response_url": [41, 43, 63], "gocspx": [41, 43, 63], "mqzaw89": [41, 43, 63], "resp_url": [41, 43, 63], "redirect": [41, 43, 53, 63, 65], "list_messag": [41, 43, 104], "items_onli": [41, 104], "list_unread_messag": 41, "unread": [41, 43, 73, 104], "move_messag": [41, 43], "changekei": 41, "priority_account": 41, "prioriti": [41, 73], "1h": [41, 43, 63], "never": [41, 43, 63], "revok": [41, 43, 63], "rename_fold": [41, 43], "oldnam": [41, 43], "newnam": [41, 43], "renam": [41, 43, 47, 49, 51, 95, 104], "save_attach": [41, 43, 73], "attachments_from_eml": 41, "eml": [41, 43, 104], "robot_artifact": [41, 77], "save_messag": [41, 43], "reply_to": [41, 43, 104], "sent": [41, 53, 55, 77, 83, 87, 104], "repli": [41, 43, 104], "send_reply_messag": 41, "reply_al": 41, "verifi": [41, 53, 55, 57, 100, 104], "hh": 41, "datetime_receiv": 41, "came": 41, "mika": 41, "total": [41, 43, 73, 85, 104], "agre": 41, "wait_for_messag": [41, 43], "arriv": [41, 43, 73], "AS": [41, 83, 102], "OF": 41, "smtp_server": 43, "smtp_port": [43, 104], "587": [43, 69, 104], "imap_serv": 43, "imap_port": [43, 104], "993": 43, "oauthprovid": 43, "answer": 43, "185833": 43, "hl": 43, "xoauth2": [43, 104], "highli": [43, 104], "care": 43, "mistak": 43, "gmail_account": 43, "gmail_password": 43, "app_password": 43, "body_img1": 43, "imagedir": 43, "approv": [43, 73, 93], "body_img2": 43, "email_bodi": 43, "authorize_imap": 43, "authorize_smtp": 43, "set_credenti": [43, 77], "generate_oauth_str": 43, "add_gmail_label": 43, "source_fold": [43, 73], "customer1": 43, "wip": 43, "customerfold": 43, "Will": [43, 47, 61, 89, 104], "convert_eml_file_into_messag": 43, "eml_filepath": 43, "save_attachments_directori": 43, "body_text": 43, "body_html": 43, "aboutth": 43, "exactli": [43, 59], "greet": 43, "do_message_act": 43, "target_fold": [43, 65, 73], "msg_copi": 43, "msg_delet": 43, "msg_flag": 43, "msg_unflag": 43, "msg_read": 43, "msg_unread": 43, "msg_save": 43, "msg_attachment_sav": 43, "glabel_add": 43, "glabel_remov": 43, "actions_don": 43, "message_count": 43, "uid": [43, 104], "xxx": 43, "email_to_docu": 43, "input_sourc": 43, "binaryio": 43, "docx": [43, 102, 104], "mail_fil": 43, "pathlib": 43, "lib_work": 43, "lib_mail": 43, "convert_email_to_docx": 43, "get_input_work_item": [43, 83], "get_work_item_fil": [43, 83], "flag_messag": 43, "unflag": [43, 104], "flag": [43, 47, 104], "oftot": 43, "access_token": [43, 55, 93, 98], "pack": 43, "legaci": [43, 45, 47, 104], "get_decoded_email_bodi": 43, "html_first": 43, "imaplib": 43, "printabl": 43, "latin": 43, "priorit": 43, "unicod": [43, 100, 104], "tell": 43, "get_folder_list": 43, "readonli": [43, 104], "deliv": 43, "mark_as_read": 43, "mark_as_unread": 43, "yyi": 43, "move_messages_by_id": 43, "message_id": 43, "use_gmail_search": 43, "rfc822msgid": 43, "remove_gmail_label": 43, "unlabel": [43, 55], "suppress_error": 43, "silenc": 43, "subfold": [43, 65], "userdir": 43, "select_fold": 43, "attachment_posit": [43, 104], "attachmentposit": 43, "in_reply_to": [43, 104], "return_path": [43, 104], "message_id_for_reply_to": 43, "bounc": 43, "tend": 43, "need_to_know": 43, "hidden_copi": 43, "send_smtp_hello": 43, "hello": [43, 69, 73, 83, 100], "unflag_messag": 43, "mailbox": [43, 65, 73], "workbook": [45, 47, 67, 83, 104], "sheetnam": [45, 93, 104], "stuff": [45, 87], "macro": [45, 47, 104], "orders_with_macro": 45, "xlsm": 45, "sheet1": 45, "commandbutton1_click": 45, "export": [45, 95, 102, 104], "open_workbook": [45, 47], "set_active_worksheet": [45, 47], "write_to_cel": 45, "save_excel": 45, "caveat": [45, 73, 100, 102], "autoexit": [45, 73, 102, 104], "self": [45, 73, 85, 102], "worker": [45, 73, 102, 104], "rdp": [45, 73, 102], "tick": [45, 73, 102, 104], "encount": [45, 73, 83, 100, 102], "potenti": [45, 57, 73, 102], "unattend": [45, 63, 73, 77, 83, 102, 104], "2016": [45, 73, 102], "app_dispatch": [45, 73, 102], "add_new_sheet": 45, "create_workbook": [45, 47], "add_new_workbook": 45, "close_docu": [45, 73, 102], "save_chang": [45, 73, 102], "export_as_pdf": 45, "pdf_filenam": 45, "excel_filenam": 45, "find_first_available_cel": 45, "free": [45, 55, 104], "find_first_available_row": 45, "display_alert": [45, 73, 102], "read_from_cel": 45, "run_macro": 45, "macro_nam": 45, "save_excel_a": 45, "autofit": 45, "file_format": 45, "vba": [45, 73], "xlfileformat": 45, "modern": [45, 47, 61, 104], "97": [45, 89, 104], "56": 45, "sheetnumb": 45, "number_format": [45, 47], "formula": [45, 47, 93, 104], "protect": [47, 85, 104], "iter": [47, 49, 77, 95, 104], "orders_fil": 47, "excel_fil": 47, "sheet_nam": [47, 93, 104], "my_new_excel": 47, "append": [47, 49, 53, 61, 67, 93, 95, 104], "read_excel_worksheet": 47, "read_worksheet": 47, "close_workbook": 47, "append_rows_to_worksheet": 47, "formatting_as_empti": [47, 104], "repres": [47, 55, 57, 59, 61, 65, 77, 87, 93, 95, 100], "table_nam": 47, "sara": 47, "beth": 47, "ami": [47, 95], "table_ag": 47, "57": 47, "save_workbook": 47, "auto_size_column": 47, "start_column": 47, "end_column": 47, "font": [47, 104], "auto_s": 47, "b": [47, 61, 87, 89, 100], "clear_cell_rang": 47, "range_str": 47, "a9": 47, "a100": 47, "a2": 47, "a1": 47, "b2": 47, "b50": 47, "copy_cell_valu": 47, "source_rang": 47, "d4": 47, "g10": 47, "fmt": 47, "xlsworkbook": 47, "xlsxworkbook": 47, "newli": [47, 55, 65, 83, 104], "upon": 47, "mycustomsheetnam": 47, "create_worksheet": 47, "exist_ok": [47, 49, 104], "dictonari": 47, "employees_row1": 47, "58": [47, 95], "employees_row2": 47, "employees_row3": 47, "adam": [47, 95], "67": [47, 95], "worksheet_data": 47, "worksheet_data_row1": 47, "worksheet_data_row2": 47, "worksheet_data_row3": 47, "employe": [47, 95], "workseet": 47, "employees_nam": 47, "employees_ag": 47, "worksheet_data_nam": 47, "worksheet_data_ag": 47, "delete_column": 47, "aa": 47, "delete_row": 47, "jj": 47, "find_empty_row": 47, "get_active_worksheet": 47, "active_worksheet": 47, "get_cell_valu": [47, 89], "column3": 47, "get_worksheet_valu": 47, "hide_column": 47, "insert_columns_aft": 47, "insert_columns_befor": 47, "insert_image_to_worksheet": 47, "factor": [47, 59, 62, 104], "last_row": 47, "insert_rows_aft": 47, "insert_rows_befor": 47, "list_worksheet": 47, "declar": [47, 87], "workset": 47, "move_rang": 47, "translat": [47, 104], "openpyxl": 47, "neg": [47, 95], "e2": 47, "e10": 47, "data_onli": [47, 104], "read_onli": [47, 102, 104], "letter": [47, 104], "read_worksheet_as_t": 47, "trim": [47, 95, 104], "remove_worksheet": 47, "rename_worksheet": 47, "src_name": 47, "dst_name": 47, "futur": [47, 55, 65, 83, 100], "cannot": [47, 55, 61, 83, 89, 93, 104], "vice": 47, "versa": 47, "per": [47, 55, 93, 95], "basi": [47, 71], "bege": 47, "set_cell_format": 47, "themselv": [47, 100], "libreoffic": 47, "aforement": [47, 61], "explan": 47, "set_cell_formula": 47, "transpos": 47, "e3": 47, "b3": 47, "set_cell_valu": [47, 89], "start_cel": 47, "table_head": [47, 95], "all_row": 47, "fourth": 47, "2000": 47, "g1": 47, "uncom": 47, "m1": 47, "simplest": [47, 61], "set_styl": 47, "font_nam": 47, "famili": 47, "bold": 47, "ital": 47, "underlin": 47, "strikethrough": 47, "cell_fil": 47, "align_horizont": 47, "align_vert": 47, "justifi": 47, "centercontinu": 47, "distribut": 47, "0_": 47, "00e": 47, "am": [47, 77], "pm": 47, "ss": [47, 93], "hex": 47, "align": [47, 104], "lightblu": 47, "ff0000": 47, "arial": 47, "set_worksheet_valu": 47, "unhide_column": 47, "unhid": 47, "worksheet_exist": 47, "does_worksheet_exist": 47, "move_to_arch": 49, "find_fil": 49, "create_directori": 49, "move_fil": 49, "path_typ": 49, "absolute_path": 49, "resolv": [49, 100, 104], "symlink": 49, "append_to_binary_fil": 49, "append_to_fil": 49, "change_file_extens": 49, "copy_directori": 49, "copy_fil": 49, "create_binary_fil": 49, "fe88505b6162b2538a045c": 49, "2017": [49, 53], "file_example_jpg_100kb": 49, "create_fil": 49, "written": [49, 61, 85], "newfil": 49, "does_directory_exist": 49, "does_directory_not_exist": 49, "directory_exist": 49, "does_file_exist": 49, "log_exist": 49, "does_file_not_exist": 49, "empty_directori": 49, "include_dir": 49, "include_fil": 49, "get_file_creation_d": 49, "whenev": [49, 83], "get_file_extens": 49, "suffix": 49, "get_file_modified_d": 49, "get_file_nam": 49, "get_file_own": 49, "owner": [49, 55, 93, 104], "get_file_s": 49, "get_file_stem": 49, "is_directory_empti": 49, "directory_empti": 49, "new_fil": 49, "is_directory_not_empti": 49, "is_file_empti": 49, "zero": [49, 93, 95], "is_file_not_empti": 49, "file_empti": 49, "alt_dir": 49, "join_path": 49, "compon": [49, 104], "ext": [49, 83, 104], "nest": [49, 53, 61], "list_directories_in_directori": 49, "list_files_in_directori": 49, "log_directory_tre": 49, "tree": [49, 59, 100, 104], "move_directori": 49, "normalize_path": 49, "redund": 49, "normalized_path": 49, "read_binary_fil": 49, "pictur": [49, 71], "read_fil": 49, "remove_directori": 49, "remove_fil": 49, "run_keyword_if_file_exist": 49, "touch_fil": 49, "touch": 49, "wait_until_cr": 49, "wait_until_modifi": 49, "wait_until_remov": 49, "ftplib": 51, "27345": 51, "12345": 51, "transfer": 51, "unilater": 51, "tl": [51, 53, 69, 104], "passiv": 51, "keyfil": 51, "certfil": 51, "source_address": 51, "certif": [51, 53, 104], "socket": [51, 104], "bind": [51, 104], "authenticationexcept": 51, "connnect": 51, "cwd": [51, 59], "dirnam": [51, 83], "remotefil": 51, "localfil": 51, "file_s": 51, "get_welcome_messag": 51, "mkd": 51, "pwd": 51, "fromnam": 51, "tonam": 51, "rmd": 51, "send_command": 51, "wikipedia": [51, 69], "list_of_ftp_command": 51, "set_ascii_mod": 51, "ascii": [51, 104], "set_binary_mod": 51, "set_debug_level": 51, "moder": 51, "requestslibrari": [53, 104], "default_retry_method_list": 53, "trace": 53, "check_vulner": 53, "vulner": [53, 104], "runtim": [53, 104], "openssl": [53, 104], "discov": [53, 61], "create_client_cert_sess": 53, "client_cert": 53, "max_retri": 53, "backoff_factor": 53, "disable_warn": 53, "retry_status_list": 53, "retry_method_list": 53, "map": [53, 61, 83, 87, 95, 100, 104], "3128": 53, "4012": 53, "cert": 53, "ca_bundl": [53, 104], "verbos": [53, 104], "httplib": 53, "httpconnect": 53, "set_debuglevel": 53, "retri": [53, 77, 83, 93, 104], "kind": [53, 104], "regardless": 53, "testcas": 53, "introduc": [53, 63], "eg": 53, "attemp": 53, "urllib3": 53, "readthedoc": [53, 69], "uppercas": 53, "verb": 53, "idempot": 53, "502": [53, 104], "503": 53, "create_custom_sess": 53, "create_digest_sess": 53, "ntlm": 53, "create_ntlm_sess": 53, "create_sess": 53, "delete_all_sess": 53, "delete_on_sess": 53, "expected_statu": 53, "delete_request": 53, "uri": [53, 65], "allow_redirect": 53, "cach": [53, 93, 104], "force_new_sess": 53, "stream": [53, 77, 104], "download_path": [53, 93], "word_exampl": 53, "wp": 53, "sample_100kb": 53, "excel_exampl": 53, "file_example_xls_10": 53, "reus": [53, 104], "verif": [53, 104], "get_current_session_alia": 53, "get_file_for_streaming_upload": 53, "descriptor": [53, 93], "caller": 53, "get_on_sess": 53, "get_request": 53, "urlencod": 53, "head_on_sess": 53, "oppos": 53, "head_request": 53, "http_get": 53, "old": [53, 71, 102, 104], "scheme": [53, 104], "options_on_sess": 53, "options_request": 53, "patch_on_sess": 53, "patch_request": 53, "post_on_sess": 53, "post_request": 53, "multipart": 53, "put_on_sess": 53, "put_request": 53, "request_should_be_success": 53, "4xx": 53, "5xx": 53, "httperror": 53, "versatil": 53, "session_exist": 53, "session_less_delet": 53, "session_less_get": 53, "serializ": [53, 61, 83], "cookiejar": 53, "fileobj": 53, "content_typ": 53, "custom_head": 53, "ca": 53, "offici": [53, 85, 104], "session_less_head": 53, "session_less_opt": 53, "session_less_patch": 53, "session_less_post": 53, "session_less_put": 53, "status_should_b": 53, "But": [53, 59, 61], "ok": 53, "bad": 53, "404": 53, "resp": 53, "notfound": 53, "NOT": [53, 59, 89, 100], "to_json": 53, "pretty_print": 53, "pretti": 53, "update_sess": 53, "hubspot_apikei": 55, "hubspot_access_token": 55, "understand": 55, "millisecond": [55, 89], "result_format": [55, 57, 71], "multipli": [55, 100], "nearest": 55, "integar": [55, 93], "18": [55, 89], "yesterdai": 55, "24h": 55, "yesterday_hs_t": 55, "deal": [55, 59], "hs_lastmodifiedd": 55, "gte": 55, "get_current_d": 55, "subtract_time_from_d": 55, "search_for_object": 55, "wish": 55, "finland": [55, 87], "new_compani": 55, "batchinputfactori": 55, "batchmod": 55, "robocorpvault": 55, "extend_input": 55, "citi": 55, "espoo": [55, 87], "alphabet": 55, "mountain": 55, "1001": 55, "1002": 55, "batch_input": 55, "updated_compani": 55, "execute_batch": 55, "n": [55, 61, 67, 89], "recal": 55, "use_cach": [55, 93], "object_typ": [55, 87], "singular": 55, "plural": 55, "rather": 55, "account_nokia": [55, 87], "6818764598": 55, "nokia_account_id": [55, 87], "get_object": 55, "whose": [55, 98], "standard": [55, 61, 95, 100], "created_at": 55, "updated_at": 55, "archived_at": 55, "deals_to_compani": 55, "multi": [55, 62, 65, 104], "travel": 55, "readabel": 55, "stage": [55, 87], "display_ord": 55, "th": 55, "sale": 55, "first_nam": 55, "last_nam": 55, "team": 55, "membership": 55, "secondari": 55, "builtin_plural_map": 55, "submiss": 55, "feadback": 55, "product": [55, 87, 95], "ticket": 55, "builtin_singular_map": 55, "add_input_to_batch": 55, "object_id": [55, 87], "auth_with_api_kei": 55, "wide": 55, "auth_with_token": [55, 87], "clear_current_batch": 55, "create_new_batch": 55, "create_object": 55, "nonexist": 55, "paremet": 55, "extend_batch_with_input": 55, "get_current_batch": 55, "get_current_batch_input": 55, "get_current_stage_of_object": 55, "id_properti": 55, "label_as_kei": 55, "hupspot": 55, "recach": 55, "get_owner_by_id": 55, "owner_id": 55, "owner_email": 55, "provis": 55, "get_owner_of_object": 55, "hs_object": 55, "owner_properti": 55, "hubspot_owner_id": 55, "get_pipelin": 55, "pipeline_id": 55, "discreet": 55, "accessess": 55, "comprehens": 55, "concept": 55, "step_on": 55, "visib": 55, "get_pipeline_stag": 55, "isclos": 55, "closed_won_stage_id": 55, "dealstag": 55, "eq": 55, "get_us": 55, "user_email": 55, "list_associ": 55, "to_object_typ": 55, "contact_to_compani": 55, "list_pipelin": 55, "unarchiv": 55, "objectschema": 55, "natural_search": 55, "string_queri": 55, "record": [55, 67, 75, 89, 100, 104], "property_nam": 55, "AND": [55, 100], "OR": [55, 61, 79, 81, 83, 100], "lt": 55, "lte": 55, "gt": 55, "neq": 55, "not_in": 55, "has_properti": 55, "opposit": 55, "not_has_properti": 55, "contains_token": 55, "not_contains_token": 55, "alic": 55, "smith": 55, "enum1": 55, "caten": [55, 83], "proeprti": 55, "filtergroup": 55, "logic": 55, "combination_search": 55, "propertynam": 55, "pseudo": 55, "seach": 55, "search_object": 55, "searchabl": 55, "set_associ": 55, "to_object_id": 55, "association_typ": 55, "company_to_contact": 55, "set_current_batch_input": 55, "update_object": 55, "upper": 57, "increas": [57, 93, 104], "toward": 57, "pillow": [57, 104], "robust": 57, "numpi": [57, 104], "opencv": [57, 104], "opt": [57, 59], "imagenotfounderror": 57, "desktop_": 57, "draw_matches_on_imag": 57, "find_template_in_imag": 57, "show_region_in_imag": 57, "crop_imag": 57, "significantli": 57, "get_pixel_color_in_imag": 57, "pil": 57, "onto": 57, "ignore_callback": [59, 104], "access_bridge_path": [59, 104], "max_depth": [59, 104], "disable_refresh": [59, 104], "bridg": [59, 104], "technologi": 59, "juli": [59, 104], "27": [59, 89], "insight": [59, 100], "Then": 59, "rc_java_access_bridge_dl": 59, "windowsaccessbridg": 59, "dll": [59, 104], "bin": 59, "jabswitch": 59, "situat": [59, 100], "regular": [59, 104], "bring": 59, "numberfield": 59, "startswith": 59, "type1": 59, "javael": [59, 104], "contextnod": 59, "java_el": [59, 104], "node": [59, 61, 89], "javaobject": 59, "ancestri": 59, "states_str": 59, "col": 59, "column_count": 59, "visible_children": 59, "visible_children_count": 59, "index_in_par": 59, "swing": [59, 104], "jar": 59, "basicsw": 59, "shell": [59, 89, 104], "chat": [59, 69, 71, 104], "subprocess": [59, 104], "jab": [59, 104], "popen": 59, "close_fd": 59, "select_window": 59, "click_el": [59, 89], "application_refresh": 59, "call_element_act": 59, "click_coordin": 59, "click_push_button": 59, "button_nam": 59, "close_java_window": 59, "get_element_act": 59, "get_element_text": 59, "butto": 59, "moretext": 59, "get_locator_tre": 59, "mostli": 59, "indexinpar": [59, 104], "get_version_info": 59, "list_java_window": 59, "javawindow": 59, "hwnd": 59, "window_list": 59, "select_window_by_pid": 59, "len": [59, 61, 83, 93], "simultan": 59, "print_element_tre": 59, "print_locator_tre": 59, "read_tabl": 59, "visible_onli": [59, 104], "locator_t": 59, "refresh_el": 59, "thu": [59, 104], "big": [59, 65, 104], "select_menu": 59, "bring_foreground": 59, "brought": 59, "foreground": 59, "select_window_by_titl": 59, "set_display_scale_factor": 59, "set_mouse_posit": 59, "shutdown_jab": 59, "shutdown": 59, "toggle_drop_down": 59, "toggl": 59, "dropdown": [59, 89], "wait_until_element_exist": 59, "wait_until_element_is_focus": 59, "wait_until_element_text_contain": 59, "wait_until_element_text_equ": 59, "interchang": 61, "inspir": 61, "subset": 61, "de": 61, "facto": 61, "agnost": 61, "easili": [61, 95, 104], "arrai": [61, 87, 93], "quickli": 61, "flavor": 61, "ng": 61, "analog": 61, "johnni": 61, "streetroad": 61, "price": [61, 87, 95], "103": 61, "98": 61, "99": [61, 95], "jane": 61, "waypath": 61, "321": 61, "2330": 61, "come": [61, 69, 104], "deliveri": 61, "cost": 61, "expens": 61, "wilcard": 61, "slice": [61, 95, 104], "ascend": [61, 73, 95], "substitut": 61, "arithmet": 61, "encapsul": [61, 104], "backtick": 61, "book": 61, "genr": 61, "horror": 61, "young": 61, "adult": 61, "repl": [61, 104], "char": [61, 104], "segment": 61, "max_split": 61, "concaten": 61, "multitud": 61, "seen": [61, 104], "individu": [61, 83, 95], "add_to_json": 61, "expr": 61, "peopl": 61, "j": 61, "convert_string_to_json": 61, "convert_json_to_str": 61, "obj": 61, "builtin": [61, 85, 95], "should_be_equ": 61, "delete_from_json": 61, "get_value_from_json": 61, "ingest": 61, "json_str": 61, "tx": 61, "001": [61, 71], "002": 61, "003": [61, 71], "004": 61, "152": 61, "005": 61, "json_doc": 61, "noutput": 61, "get_values_from_json": 61, "simplist": 61, "za": 61, "texa": 61, "load_json_from_fil": 61, "scalar": 61, "save_json_to_fil": 61, "indent": [61, 87, 104], "update_value_to_json": 61, "johnmalkovich": 61, "updated_doc": 61, "nnew": 61, "new_email": 61, "charg": 61, "id_pric": 61, "order_id": 61, "one_pric": 61, "counter": [62, 63, 104], "vault_kei": 63, "otpmod": 63, "intend": 63, "late": 63, "pyotp": 63, "requests_oauthlib": 63, "passcod": 63, "otpsecret": 63, "qr": 63, "mobil": 63, "phone": 63, "duplic": [63, 104], "get_time_based_otp": 63, "redirect_uri": [63, 65], "arbitrari": [63, 104], "oauthlib": [63, 104], "consent": 63, "offlin": 63, "oauthplayground": 63, "prompt": [63, 71, 104], "grant": [63, 65, 104], "lib_mfa": 63, "get_counter_based_otp": 63, "otp_passcod": 63, "token_url": 63, "oauth2sess": 63, "refresh_token": [63, 65], "guarante": 63, "constant": [63, 93, 104], "set_counter_based_otp": 63, "set_time_based_otp": 63, "use_mfa_secret_from_vault": 63, "o365": [64, 65, 104], "abil": [64, 65, 70, 104], "graph": [64, 65, 104], "programmat": [64, 65, 70, 100, 104], "vault_backend": 65, "vault_secret": 65, "file_backend_path": 65, "windowspath": 65, "openid": 65, "expos": [65, 83, 104], "behalf": 65, "bot": 65, "microsoftonlin": 65, "nativecli": 65, "organiz": 65, "authorize_and_get_token": 65, "authorization_url": 65, "configure_msgraph_cli": 65, "create_sharepoint_list": 65, "list_data": 65, "sharepointlist": 65, "sharepoint": [65, 104], "download_file_from_onedr": 65, "to_path": 65, "onedr": 65, "driveitem": 65, "download_file_from_share_link": 65, "share_url": 65, "download_file_from_sharepoint": 65, "download_folder_from_onedr": 65, "caution": 65, "find_onedrive_fil": 65, "search_str": 65, "include_fold": 65, "across": 65, "generate_oauth_authorization_url": 65, "get_drive_inst": 65, "drive_id": [65, 104], "get_file_inst": 65, "reobtain": 65, "get_folder_inst": 65, "get_items_from_sharepoint_list": 65, "list_nam": 65, "get_m": [65, 98], "get_scop": 65, "mailbox_shar": 65, "message_send": 65, "message_send_shar": 65, "message_al": 65, "message_all_shar": 65, "address_book": 65, "address_book_shar": 65, "address_book_al": 65, "address_book_all_shar": 65, "calendar_shar": 65, "calendar_al": 65, "calendar_shared_al": 65, "onedrive_al": 65, "sharepoint_dl": 65, "settings_al": 65, "tasks_al": 65, "presenc": 65, "get_sharepoint_sit": 65, "list_files_in_onedrive_fold": 65, "list_files_in_sharepoint_site_dr": 65, "list_sharepoint_site_dr": 65, "retain": 65, "search_for_us": 65, "search_field": 65, "displaynam": 65, "me": [65, 98], "upload_file_to_onedr": 65, "suitetalk": [66, 67], "soap": 67, "netsuitesdk": 67, "webservic": 67, "account_typ": 67, "_expens": 67, "netsuite_account": 67, "bill": 67, "vendor": 67, "netsuite_bil": 67, "consumer_kei": [67, 87, 98], "consumer_secret": [67, 87, 98], "token_kei": 67, "token_secret": 67, "get_account": 67, "currenc": 67, "get_curr": 67, "ns_account": 67, "ns_consumer_kei": 67, "ns_consumer_secret": 67, "ns_token_kei": 67, "ns_token_secret": 67, "get_classif": 67, "classif": 67, "currency_id": 67, "get_depart": 67, "depart": 67, "get_loc": 67, "get_vendor_bil": 67, "get_vendor": 67, "ns_email": 67, "ns_password": 67, "ns_role": 67, "ns_appid": 67, "netsuite_get": 67, "record_typ": 67, "internal_id": 67, "internalid": 67, "externalid": 67, "netsuite_get_al": 67, "netsuite_search": 67, "type_nam": 67, "search_valu": 67, "page_s": 67, "paginatedsearch": 67, "netsuite_search_al": 67, "interfact": 69, "pushov": [69, 104], "telegram": 69, "twilio": 69, "gitter": 69, "mailgun": 69, "pagerduti": 69, "popcornnotifi": 69, "pushbullet": 69, "simplepush": 69, "statuspag": 69, "zulip": 69, "provider_nam": 69, "room_id": 69, "id_of_the_gitter_room": 69, "office365": 69, "account_usernam": 69, "account_password": 69, "recipient_email": 69, "from_": 69, "sender_address": 69, "email_usernam": 69, "email_password": 69, "email_notifi": 69, "sender_email": 69, "slack_webhook": 69, "webhookdetail": 69, "webhook_url": [69, 91], "slack_attach": 69, "liverpool": 69, "wikimedia": 69, "cd": 69, "liverpool_fc": 69, "n_logo": 69, "1200px": 69, "notify_slack": 69, "slack_webhook_url": 69, "generic_notifi": 69, "notify_email": 69, "recipient_email_address": 69, "outlook_usernam": 69, "outlook_password": 69, "notify_gmail": 69, "notify_pushov": 69, "webhook": [69, 77, 91], "notify_telegram": 69, "chat_id": 69, "notify_twilio": 69, "number_from": 69, "number_to": 69, "account_sid": 69, "sid": 69, "secret_nam": [71, 79, 81], "taglin": 71, "ic": 71, "cream": 71, "shop": 71, "temperatur": 71, "authorize_to_openai": 71, "completion_cr": 71, "icecream": 71, "authorize_to_azure_openai": 71, "api_bas": 71, "api_typ": 71, "api_vers": 71, "azureopenai": 71, "chat_completion_cr": 71, "user_cont": 71, "gpt": [71, 104], "turbo": 71, "system_cont": 71, "top_prob": 71, "frequency_penalti": 71, "presence_penalti": 71, "chatgpt": [71, 104], "histori": [71, 93], "deployment_nam": 71, "deploy": 71, "mygpt4deploy": 71, "risk": 71, "nucleu": 71, "top_p": 71, "mass": 71, "penal": 71, "frequenc": 71, "far": 71, "chatgpt_convers": 71, "biggest": 71, "mammal": 71, "davinci": 71, "max_token": 71, "256": [71, 104], "mydavinci3deploy": 71, "divers": 71, "half": [71, 83], "likelihood": 71, "weight": 71, "image_cr": 71, "512x512": 71, "num_imag": 71, "256x256": 71, "1024x1024": 71, "cartoon": 71, "cute": 71, "monkei": [71, 77], "skateboard": 71, "image_create_vari": 71, "src_imag": 71, "variat": [71, 104], "4mb": 71, "source_imag": 71, "coupl": 73, "email_filt": 73, "senderemailaddress": 73, "emailaddress_1": 73, "emailaddress_2": 73, "csv": [73, 77, 83, 95, 104], "2007": [73, 104], "bb219950": 73, "v": [73, 89, 100, 104], "get_email": 73, "attachment_fold": 73, "sort_kei": 73, "sort_descend": 73, "email_fold": 73, "incom": 73, "mark_email_as_read": 73, "move_email": 73, "save_email_attach": 73, "100000": 73, "send_email": 73, "html_bodi": 73, "save_as_draft": [73, 104], "cc_recipi": 73, "bcc_recipi": 73, "draft": 73, "recipient3": 73, "recipient4": 73, "recipient1": 73, "xslx": 73, "cc_repient": 73, "bcc_repient": 73, "recipient5": 73, "recipient6": 73, "wait_for_email": 73, "watermark": [75, 104], "therefor": [75, 83, 89], "accur": 75, "video": [75, 100, 104], "pain": 75, "use_appearances_writ": 75, "extract_data_from_first_pag": 75, "get_text_from_pdf": 75, "get_lines_matching_regexp": 75, "get_invoice_numb": 75, "open_pdf": 75, "find_text": 75, "fill_form_field": 75, "switch_to_pdf": 75, "get_input_field": 75, "set_field_valu": 75, "save_field_valu": 75, "workspace_id": 77, "process_id": 77, "workspace_api_kei": 77, "cr": 77, "rc_api_process_host": [77, 104], "workforc": 77, "processapi": 77, "item1": 77, "fname": 77, "item2": 77, "work_item": 77, "batch": [77, 104], "workdata": 77, "item_id": [77, 83, 89], "payload": [77, 83, 104], "config_typ": 77, "extra_info": 77, "artifact": [77, 104], "filematch": 77, "process_run_id": 77, "processrunid": 77, "step_run_id": [77, 104], "activityrunid": 77, "download_link": 77, "artifact_id": 77, "retry_failed_item": 77, "list_process_work_item": 77, "retry_work_item": 77, "download_artifacts_match": 77, "list_run_artifact": 77, "get_robot_run_artifact": 77, "target_filepath": 77, "getenv": 77, "base_api": 77, "create_input_work_item": 77, "get_process_id_by_nam": 77, "workspac": [77, 79, 81, 93], "get_process_run_statu": 77, "get_work_item": 77, "workitem_id": 77, "include_data": 77, "list_process_run_work_item": 77, "item_st": 77, "list_process_run": 77, "run_stat": 77, "list_process_runs_in_workspac": 77, "list_process": 77, "process_api": 77, "register_file_upload": 77, "workitem_filenam": 77, "work_item_id": 77, "set_apikei": 77, "set_process_id": 77, "set_workspace_id": 77, "start_configured_process": 77, "configurationtyp": 77, "start_process": 77, "upload_file_to_s3": 77, "workspace_api": 77, "taken": [79, 81], "rcc": [79, 81], "fashion": [79, 81], "rc_api_secret_host": [79, 81], "rc_api_secret_token": [79, 81], "rc_workspace_id": [79, 81], "rpa_secret_manag": [79, 81], "rpa_secret_fil": [79, 81], "swaglab": [79, 81], "standard_us": [79, 81], "secret_sauc": [79, 81], "nobodi": [79, 81], "reading_secret": [79, 81], "modifying_secret": [79, 81], "set_secret": [79, 81], "autoload": [83, 104], "default_adapt": 83, "baseadapt": 83, "robocorpadapt": 83, "auto_parse_email": 83, "__mail": 83, "parsedemail": [83, 104], "rawemail": 83, "treat": 83, "truthi": 83, "transform": 83, "attend": [83, 104], "world": 83, "behaviour": [83, 85, 87, 100, 104], "alter": [83, 100], "back": [83, 85, 100], "defer": 83, "rpa_workitems_adapt": 83, "fileadapt": [83, 104], "variable1": 83, "variable2": 83, "adjac": [83, 104], "rpa_output_workitem_path": [83, 104], "simul": [83, 104], "dude": 83, "list_vari": 83, "get_work_item_vari": 83, "email_body_load": 83, "full_load": 83, "robot_listener_api_vers": [83, 85], "active_input": 83, "add_work_item_fil": 83, "clear_work_item": 83, "wi": 83, "save_work_item": 83, "create_output_work_item": 83, "customer_var": 83, "delete_work_item_vari": 83, "for_each_input_work_item": 83, "keyword_or_func": 83, "items_limit": [83, 104], "return_result": [83, 104], "rf": [83, 85, 95], "deplet": 83, "log_payload": 83, "get_work_item_payload": 83, "get_current_work_item": 83, "_internal_cal": 83, "customer_": 83, "keyerror": 83, "guest": 83, "input_wi": 83, "list_work_item_fil": 83, "list_work_item_vari": 83, "release_input_work_item": 83, "exception_typ": 83, "_internal_releas": 83, "lastli": 83, "unspecifi": 83, "regard": [83, 104], "login_portal_down": 83, "unabl": [83, 95], "err": 83, "doc_format_error": 83, "process_and_set_st": 83, "remove_work_item_fil": 83, "set_current_work_item": 83, "parent_wi": 83, "child_wi": 83, "set_task_variables_from_work_item": 83, "input_url": 83, "set_work_item_payload": 83, "set_work_item_vari": 83, "markymark": 83, "appl": 83, "listen": 85, "mute": [85, 100, 104], "cours": [85, 104], "optional_keyword_to_run": 85, "xyz": 85, "exit": [85, 104], "robotnotrunningerror": 85, "import_librari": 85, "customlibrari": 85, "__init__": 85, "register_protected_keyword": 85, "special_keyword": 85, "info_level_keyword": 85, "keywords_to_mut": 85, "keywords_to_protect": 85, "robocloud": [85, 104], "end_keyword": 85, "mute_run_on_failur": 85, "only_info_level": 85, "start_keyword": 85, "temporarili": 85, "sandbox": 87, "dataload": 87, "execute_dataloader_import": 87, "mimic": 87, "input_object": 87, "mapping_dict": 87, "tilaus__c": 87, "workdir": 87, "asiaka": 87, "0015i000002jbliqa2": 87, "0015i000002jbldqa2": 87, "mapping_object": 87, "tilaaja__c": 87, "upsert": 87, "salseforc": 87, "update_obj": 87, "ltd": 87, "billingstreet": 87, "bulevard": 87, "api_token": 87, "pprint": 87, "pp": 87, "prettyprint": 87, "sf": 87, "get_salesforce_object_by_id": 87, "billing_inform": 87, "billingc": 87, "billingpostalcod": 87, "01210": 87, "billingcountri": 87, "update_salesforce_object": 87, "add_product_into_opportun": 87, "product_nam": 87, "quantiti": 87, "opportunity_id": 87, "pricebook_nam": 87, "custom_total_pric": 87, "opportun": 87, "pricelist": 87, "auth_with_connected_app": 87, "embed_api_token": 87, "emb": [87, 104], "robocop": 87, "create_new_opportun": 87, "close_d": 87, "opportunity_nam": 87, "stage_nam": 87, "create_salesforce_object": 87, "object_data": 87, "salesforcedatanotandictionari": 87, "delete_salesforce_object": 87, "salesfoc": 87, "describe_salesforce_object": 87, "execute_apex": 87, "apex": [87, 104], "apex_data": 87, "apex_method": 87, "myclass": 87, "getaccount": 87, "0017r00002xmxb1qam": 87, "execute_dataloader_insert": 87, "datahandl": 87, "dataloader_success": 87, "dataloader_error": 87, "get_dataloader_success_t": 87, "get_dataloader_error_t": 87, "get_domain": 87, "get_opportunity_id": 87, "get_pricebook_entri": 87, "pricebook": 87, "get_pricebook_id": 87, "get_products_in_pricelist": 87, "get_salesforce_object_metadata": 87, "read_dictionary_from_fil": 87, "mapping_fil": 87, "salesforce_queri": 87, "sql_string": 87, "salesforce_query_result_as_t": 87, "session_id": 87, "set_account": 87, "account_id": 87, "set_domain": 87, "salsesforc": 87, "set_pricebook": 87, "upsert_salesforce_object": 87, "frankvanderkuur": 89, "sapguilibrari": [89, 104], "logon": 89, "autoit": 89, "wnd": 89, "tbar": 89, "btn": 89, "backslash": [89, 100], "element_id": 89, "click_toolbar_button": 89, "table_id": 89, "button_id": 89, "toolbar": 89, "gridview": 89, "connect_to_existing_connect": 89, "connection_nam": 89, "connect_to_sess": 89, "explicit_wait": 89, "500m": 89, "disable_screenshots_on_error": 89, "doubleclick_el": 89, "column_id": [89, 93], "element_should_be_pres": 89, "element_value_should_b": 89, "expected_valu": 89, "uncheck": [89, 104], "radiobutton": 89, "combobox": 89, "element_value_should_contain": 89, "enable_screenshots_on_error": 89, "focus_and_click": 89, "wait_tim": 89, "adjust": [89, 104], "focus_and_input_text": 89, "generic_click_el": 89, "generic_input_password": 89, "generic_input_text": 89, "row_num": 89, "col_id": 89, "get_element_loc": 89, "get_element_typ": 89, "get_element_type_of_object": 89, "get_row_count": 89, "get_scroll_posit": 89, "get_statusbar_typ": 89, "messagetyp": 89, "statusbar": 89, "sbar": 89, "get_valu": 89, "guibutton": 89, "guititlebar": 89, "guistatusbar": 89, "guitab": 89, "get_window_titl": 89, "input_password": 89, "maximize_window": 89, "sapgui": 89, "open_connect": 89, "run_transact": 89, "unknown": [89, 95, 104], "select_context_menu_item": 89, "menu_or_button_id": 89, "select_from_list_by_label": 89, "select_nod": 89, "tree_id": 89, "node_id": 89, "expand": [89, 104], "tabletreecontrol": 89, "select_node_link": 89, "link_id1": 89, "link_id2": 89, "select_radio_button": 89, "select_table_column": 89, "select_table_row": 89, "tablecontrol": 89, "send_vkei": 89, "vkey_id": 89, "virtual": [89, 100], "vkei": 89, "f2": [89, 100], "72": 89, "f3": [89, 100], "28": 89, "74": 89, "f5": [89, 100], "75": 89, "f6": [89, 100], "76": 89, "del": [89, 100], "f7": [89, 100], "77": 89, "Ins": 89, "f8": [89, 100], "78": [89, 104], "33": 89, "f9": [89, 100], "79": 89, "34": 89, "f10": [89, 100], "80": 89, "f11": [89, 100], "81": 89, "f12": [89, 100], "82": 89, "37": 89, "38": [89, 104], "84": 89, "39": [89, 104], "85": 89, "86": 89, "41": [89, 104], "87": 89, "88": 89, "k": 89, "43": 89, "89": 89, "44": 89, "90": 89, "91": 89, "46": 89, "92": 89, "93": 89, "94": [89, 104], "70": [89, 104], "71": 89, "set_explicit_wait": 89, "700": 89, "milisecond": 89, "milli": 89, "sec": 89, "set_focu": 89, "take_screenshot": 89, "screenshot_nam": 89, "unselect_checkbox": 89, "slack_message_using_webhook": 91, "icon_emoji": 91, "slack_raw_messag": 91, "max_retry_tim": 93, "necessarili": 93, "unavail": [93, 104], "permalink": 93, "row_exclud": 93, "filteredoutrow": 93, "linkinfromcelldetail": 93, "linksouttocellsdetail": 93, "nonexistentcel": 93, "row_includ": 93, "attachmentfil": 93, "filteredout": 93, "rowid": 93, "rowpermalink": 93, "search_includ": 93, "favoriteflag": 93, "search_scop": 93, "celldata": 93, "comment": 93, "foldernam": 93, "reportnam": 93, "sightnam": 93, "summaryfield": 93, "templatenam": 93, "workspacenam": 93, "sheet_includ": 93, "add_column": 93, "column_typ": 93, "text_numb": 93, "format_str": 93, "symbol": [93, 104], "picklist": 93, "multi_picklist": 93, "add_row": 93, "ordereddict": 93, "snake": 93, "row1": 93, "value1": 93, "value2": 93, "row2": 93, "value3": 93, "value4": 93, "row3": 93, "value5": 93, "value6": 93, "set_row": 93, "convert_row_to_dict": 93, "convert_sheet_to_t": 93, "differnt": 93, "create_sheet": 93, "from_sheet_id": 93, "download_attach": 93, "123456789": 93, "get_attach": 93, "get_application_const": 93, "serverinfo": 93, "scenario": [93, 104], "get_cell_histori": 93, "cell_histori": 93, "revis": 93, "modified_bi": 93, "get_current_us": 93, "get_sheet": 93, "sheet_id": 93, "row_id": 93, "row_numb": 93, "filter_id": 93, "get_sheet_own": 93, "list_attach": 93, "list_column": 93, "list_sheet_filt": 93, "sheetfilt": 93, "filtered_sheet": 93, "my_sheet_id": 93, "list_sheet": 93, "reload": 93, "smartsheetlibrari": 93, "account_token": 93, "refresh_sheet": 93, "modified_sinc": 93, "personalworkspac": 93, "favorit": [93, 100], "parentobjectfavorit": 93, "sight": 93, "summari": 93, "set_access_token": 93, "set_max_retry_tim": 93, "rownumb": 93, "456": [93, 104], "789": 93, "unselect_current_sheet": 93, "update_column": 93, "five": 95, "bespok": 95, "read_table_from_csv": 95, "group_table_by_column": 95, "add_cart": 95, "make_ord": 95, "add_table_column": 95, "TOS": 95, "is_first": 95, "isfirst": 95, "add_table_row": 95, "clear_tabl": 95, "copy_t": 95, "table_copi": 95, "namedtupl": [95, 104], "table_data_nam": 95, "table_data_ag": 95, "table_data": 95, "export_t": 95, "with_index": 95, "as_list": 95, "customerid": 95, "filter_empty_row": 95, "filter_table_by_column": 95, "uwnant": 95, "product_typ": 95, "filter_table_with_keyword": 95, "falsi": [95, 104], "find_table_row": 95, "get_table_cel": 95, "get_table_column": 95, "get_table_dimens": 95, "get_table_row": 95, "get_table_slic": 95, "exclus": 95, "map_column_valu": 95, "merge_t": 95, "egg": 95, "chees": 95, "ham": 95, "stock": 95, "pop_table_column": 95, "userid": 95, "pop_table_row": 95, "firt": 95, "dialect": [95, 104], "column_unknown": 95, "deduc": 95, "rename_table_column": 95, "uno": 95, "set_row_as_column_nam": 95, "set_table_cel": 95, "set_table_column": 95, "set_table_row": 95, "sort_table_by_column": 95, "order_d": 95, "table_tail": 95, "tail": [95, 104], "trim_column_nam": 95, "extran": 95, "whitespac": [95, 104], "colum": 95, "trim_empty_row": 95, "write_table_to_csv": 95, "tweepi": 98, "twitter_consumer_kei": 98, "twitter_consumer_secret": 98, "twitter_access_token": 98, "twitter_access_token_secret": 98, "tweet": 98, "niinisto": 98, "get_user_tweet": 98, "tw": 98, "text_search_tweet": 98, "corona": 98, "trump": 98, "get_user_profil": 98, "access_token_secret": 98, "consum": [98, 100], "geocod": 98, "result_typ": 98, "since_id": 98, "max_id": 98, "popular": 98, "radiu": 98, "latitud": 98, "longitud": 98, "status": 98, "unfollow": 98, "unlik": 98, "standalon": 100, "terminologi": [100, 104], "controltyp": 100, "listitem": 100, "windowsel": 100, "fact": 100, "root_el": 100, "automationid": 100, "controltypenam": 100, "classnam": 100, "xcenter": 100, "ycenter": 100, "datagridrow": 100, "regexnam": 100, "subnam": [100, 104], "foundindex": 100, "searchdepth": 100, "travers": 100, "resort": 100, "cascad": 100, "effici": 100, "huge": 100, "spotifi": 100, "thing": 100, "clearbutton": 100, "units1": 100, "unit": 100, "370": [100, 104], "bigger": 100, "deeplynestedbutton": 100, "aren": [100, 104], "reliabl": [100, 104], "achiev": 100, "3rd": [100, 104], "yourself": 100, "uiautom": 100, "lbutton": 100, "rbutton": 100, "cancel": 100, "mbutton": 100, "xbutton1": 100, "x1": 100, "xbutton2": 100, "x2": 100, "capit": 100, "kana": 100, "im": 100, "hanguel": 100, "vk_hangul": 100, "hangul": 100, "junja": 100, "hanja": 100, "kanji": 100, "nonconvert": 100, "modechang": 100, "spacebar": 100, "pageup": 100, "pagedown": 100, "snapshot": 100, "printscreen": 100, "INS": 100, "lwin": 100, "rwin": 100, "numpad0": 100, "keypad": 100, "numpad1": 100, "numpad2": 100, "numpad3": 100, "numpad4": 100, "numpad5": 100, "numpad6": 100, "numpad7": 100, "numpad8": 100, "numpad9": 100, "subtract": 100, "f13": 100, "f14": 100, "f15": 100, "f16": 100, "f17": 100, "f18": 100, "f19": 100, "f21": 100, "f22": 100, "f23": 100, "f24": 100, "numlock": 100, "lshift": 100, "rshift": 100, "lcontrol": 100, "lctrl": 100, "rcontrol": 100, "rctrl": 100, "lalt": 100, "ralt": 100, "browser_back": 100, "browser_forward": 100, "forward": [100, 104], "browser_refresh": 100, "browser_stop": 100, "browser_search": 100, "browser_favorit": 100, "browser_hom": 100, "volume_mut": 100, "volum": 100, "volume_down": 100, "volume_up": 100, "media_next_track": 100, "media_prev_track": 100, "media_stop": 100, "media": 100, "media_play_paus": 100, "plai": 100, "launch_mail": 100, "launch_media_select": 100, "launch_app1": 100, "launch_app2": 100, "oem_1": 100, "miscellan": [100, 104], "vari": 100, "oem_plu": 100, "oem_comma": 100, "oem_minu": 100, "oem_period": 100, "oem_2": 100, "oem_3": 100, "oem_4": 100, "oem_5": 100, "oem_6": 100, "oem_7": 100, "oem_8": 100, "oem_102": 100, "angl": 100, "rt": 100, "102": 100, "processkei": 100, "packet": 100, "keystrok": 100, "vk_packet": 100, "low": 100, "remark": 100, "keybdinput": 100, "sendinput": 100, "wm_keydown": 100, "wm_keyup": 100, "attn": 100, "crsel": 100, "exsel": 100, "ereof": 100, "eras": 100, "eof": 100, "zoom": 100, "nonam": 100, "pa1": 100, "oem_clear": 100, "specialkeynam": 100, "ab": 100, "abc": 100, "0123456789": 100, "abcdefghijklmnopqrstuvwxyz": 100, "accesskei": 100, "kept": [100, 104], "inspector": 100, "log_as_warn": 100, "rudimentari": 100, "windowcontrol": 100, "applicationframewindow": 100, "9569486": 100, "titlebar": 100, "applicationframetitlebarwindow": 100, "textcontrol": 100, "eight": 100, "num8button": 100, "buttoncontrol": 100, "nine": 100, "num9button": 100, "abot": 100, "loom": 100, "2807372359f34b9cbe1bc2df9194ec68": 100, "distort": 100, "disturb": 100, "obstruct": 100, "96": 100, "test_do_some_calcul": 100, "windows_run": 100, "control_window": 100, "get_attribut": 100, "close_current_window": 100, "simulate_mov": 100, "write_text": 102, "save_document_a": 102, "fileformat": 102, "wdformatdocumentdefault": 102, "wdformathtml": 102, "opendocu": 102, "wdformatopendocumenttext": 102, "wdformatpdf": 102, "rtf": 102, "wdformatrtf": 102, "word97": 102, "wdformatdocument97": 102, "create_new_docu": 102, "export_to_pdf": 102, "get_all_text": 102, "replace_text": 102, "save_docu": 102, "set_foot": 102, "set_head": 102, "newlin": [102, 104], "1123": 104, "dirti": 104, "nit": 104, "inherit": 104, "anymor": 104, "slip": 104, "strongli": 104, "suggest": 104, "upgrad": 104, "pin": 104, "1060": 104, "enhanc": 104, "inner": 104, "bugfix": 104, "casual": 104, "1105": 104, "bump": 104, "1102": 104, "working_dir": 104, "1091": 104, "1078": 104, "1079": 104, "1075": 104, "remind": 104, "wdm_ssl_verifi": 104, "1092": 104, "rc_disable_ssl": 104, "truststor": 104, "inject": 104, "happen": 104, "1083": 104, "1084": 104, "whitelist": 104, "rpa_external_webdriv": 104, "1080": 104, "64bit": 104, "rpa_allow_64bit_i": 104, "32bit": 104, "1087": 104, "1082": 104, "repurpos": 104, "1057": 104, "mimetyp": 104, "overal": 104, "994": 104, "950": 104, "1068": 104, "1069": 104, "1059": 104, "1058": 104, "1055": 104, "better": 104, "tabnam": 104, "719": 104, "1051": 104, "reader": 104, "1003": 104, "1054": 104, "1035": 104, "115": 104, "1021": 104, "rpa_selenium_binary_loc": 104, "render": 104, "1016": 104, "gone": 104, "957": 104, "980": 104, "cryptographi": 104, "979": 104, "978": 104, "974": 104, "949": 104, "941": 104, "942": 104, "166": 104, "973": 104, "azureai": 104, "943": 104, "overcom": 104, "884": 104, "762": 104, "865": 104, "940": 104, "939": 104, "944": 104, "resultset": 104, "948": 104, "930": 104, "938": 104, "947": 104, "favor": 104, "mention": 104, "involv": 104, "945": 104, "935": 104, "926": 104, "916": 104, "883": 104, "586": 104, "919": 104, "pollut": 104, "920": 104, "913": 104, "actionnotposs": 104, "wouldn": 104, "914": 104, "typeerror": 104, "pickl": 104, "dict_kei": 104, "912": 104, "alongsid": 104, "flatten": 104, "besid": 104, "require_open_xlsx_workbook": 104, "908": 104, "switch_window_by_titl": 104, "899": 104, "909": 104, "880": 104, "light": 104, "preserv": 104, "boxes_flow": 104, "picker": 104, "sometim": 104, "assertionerror": 104, "859": 104, "694": 104, "psycopg2": 104, "privaci": 104, "878": 104, "difficult": 104, "regress": 104, "silent": 104, "869": 104, "movement": 104, "855": 104, "send_keys_fallback": 104, "483": 104, "clearer": 104, "usabl": 104, "796": 104, "combo": 104, "791": 104, "591": 104, "797": 104, "pyyaml": 104, "langchain": 104, "867": 104, "refactor": 104, "earlier": 104, "clariti": 104, "reduc": 104, "unnecessari": 104, "didn": 104, "obei": 104, "840": 104, "821": 104, "845": 104, "lower": 104, "misbehav": 104, "838": 104, "828": 104, "833": 104, "803": 104, "792": 104, "four": 104, "cover": 104, "dall": 104, "webview": 104, "broken": 104, "boilerpl": 104, "635": 104, "robocloud_vault_nam": 104, "use_robocloud_vault": 104, "794": 104, "785": 104, "subtext": 104, "787": 104, "781": 104, "rpa_selenium_browser_ord": 104, "745": 104, "773": 104, "772": 104, "767": 104, "parti": 104, "behav": 104, "pynput": 104, "mislead": 104, "740": 104, "736": 104, "706": 104, "604": 104, "658": 104, "710": 104, "711": 104, "712": 104, "693": 104, "siblings_onli": 104, "ON": 104, "sibl": 104, "692": 104, "687": 104, "pywintypesxx": 104, "683": 104, "685": 104, "cve": 104, "557": 104, "669": 104, "666": 104, "667": 104, "656": 104, "661": 104, "mac": 104, "arm64": 104, "663": 104, "660": 104, "176": 104, "653": 104, "655": 104, "570": 104, "649": 104, "psycopg": 104, "postgresql": 104, "648": 104, "647": 104, "643": 104, "641": 104, "637": 104, "638": 104, "639": 104, "619": 104, "618": 104, "622": 104, "615": 104, "609": 104, "robocorp_click_offset": 104, "610": 104, "494": 104, "602": 104, "607": 104, "got": 104, "385": 104, "oracl": 104, "oracledb": 104, "leak": 104, "599": 104, "603": 104, "lxml": 104, "495": 104, "226": 104, "220": 104, "597": 104, "stem": 104, "583": 104, "593": 104, "592": 104, "rpa_locators_databas": 104, "558": 104, "rational": 104, "538": 104, "unexpectedli": 104, "584": 104, "problemat": 104, "479": 104, "224": 104, "trail": 104, "572": 104, "567": 104, "568": 104, "560": 104, "libspec": 104, "549": 104, "492": 104, "493": 104, "typehint": 104, "548": 104, "jsontyp": 104, "lab": 104, "508": 104, "496": 104, "498": 104, "536": 104, "545": 104, "concern": 104, "515": 104, "481": 104, "504": 104, "505": 104, "506": 104, "507": 104, "490": 104, "485": 104, "484": 104, "491": 104, "indexerror": 104, "470": 104, "477": 104, "469": 104, "473": 104, "439": 104, "471": 104, "408": 104, "363": 104, "452": 104, "pyodbc": 104, "443": 104, "hang": 104, "_contain": 104, "notimplementederror": 104, "392": 104, "394": 104, "391": 104, "pywin32": 104, "comtyp": 104, "interrupt": 104, "spawn": 104, "aid": 104, "comerror": 104, "381": 104, "380": 104, "355": 104, "atleast": 104, "286": 104, "282": 104, "337": 104, "serial": 104, "cleanup": 104, "322": 104, "315": 104, "304": 104, "codec": 104, "243": 104, "only_closest": 104, "closest_neighbour": 104, "pinpoint": 104, "neighbour": 104, "298": 104, "295": 104, "285": 104, "303": 104, "octet": 104, "junk": 104, "dump": 104, "287": 104, "279": 104, "290": 104, "275": 104, "250": 104, "252": 104, "253": 104, "248": 104, "dependt": 104, "bypass": 104, "241": 104, "225": 104, "textbox": 104, "235": 104, "rpa_input_workitem_path": 104, "234": 104, "237": 104, "tzlocal": 104, "carriag": 104, "203": 104, "ibm_db": 104, "pythonlibcor": 104, "pymssql": 104, "received_bi": 104, "experiment": 104, "appreci": 104, "synthes": 104, "alias": 104, "dock": 104, "pyobjc": 104, "confus": 104, "shortcom": 104, "171": 104, "rotat": 104, "figur": 104, "pdfminer": 104, "161": 104, "suppress": 104, "thank": 104, "antusystem": 104, "annot": 104, "156": 104, "reboot": 104, "unifi": 104, "mismatch": 104, "nonetyp": 104, "146": 104, "148": 104, "activedocu": 104, "notebook": 104, "element1": 104, "constrain": 104, "chardet": 104, "destructor": 104, "gather": 104, "buffer": 104, "period": 104, "docutil": 104, "lsp": 104, "evdev": 104, "logarithm": 104, "stylesheet": 104, "shm": 104, "unsav": 104, "predefin": 104, "databaselibrari": 104, "pyscreenshot": 104, "mss": 104, "termin": 104, "filetyp": 104, "unpack": 104, "earli": 104, "superflu": 104, "jupyt": 104, "robocod": 104, "embed": 104, "infobar": 104, "use_test": 104, "mitig": 104, "msoffic": 104, "mdp": 104, "ga": 104, "kw": 104, "imapstmp": 104, "harmon": 104, "psutil": 104, "wheel": 104, "interpol": 104, "sanit": 104, "webdrivermanag": 104, "restructur": 104}, "objects": {"RPA.Archive": [[5, 0, 1, "", "Archive"]], "RPA.Archive.Archive": [[5, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [5, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [5, 2, 1, "", "add_to_archive"], [5, 2, 1, "", "archive_folder_with_tar"], [5, 2, 1, "", "archive_folder_with_zip"], [5, 2, 1, "", "extract_archive"], [5, 2, 1, "", "extract_file_from_archive"], [5, 2, 1, "", "get_archive_info"], [5, 2, 1, "", "list_archive"]], "RPA.Assistant": [[7, 0, 1, "", "Assistant"]], "RPA.Assistant.Assistant": [[7, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [7, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [7, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [7, 2, 1, "", "add_button"], [7, 2, 1, "", "add_checkbox"], [7, 2, 1, "", "add_date_input"], [7, 2, 1, "", "add_drop_down"], [7, 2, 1, "", "add_file"], [7, 2, 1, "", "add_file_input"], [7, 2, 1, "", "add_files"], [7, 2, 1, "", "add_flet_icon"], [7, 2, 1, "", "add_heading"], [7, 2, 1, "", "add_hidden_input"], [7, 2, 1, "", "add_icon"], [7, 2, 1, "", "add_image"], [7, 2, 1, "", "add_link"], [7, 2, 1, "", "add_loading_bar"], [7, 2, 1, "", "add_loading_spinner"], [7, 2, 1, "", "add_next_ui_button"], [7, 2, 1, "", "add_password_input"], [7, 2, 1, "", "add_radio_buttons"], [7, 2, 1, "", "add_slider"], [7, 2, 1, "", "add_submit_buttons"], [7, 2, 1, "", "add_text"], [7, 2, 1, "", "add_text_input"], [7, 2, 1, "", "ask_user"], [7, 2, 1, "", "clear_dialog"], [7, 2, 1, "", "close_column"], [7, 2, 1, "", "close_container"], [7, 2, 1, "", "close_navbar"], [7, 2, 1, "", "close_row"], [7, 2, 1, "", "close_stack"], [7, 2, 1, "", "open_column"], [7, 2, 1, "", "open_container"], [7, 2, 1, "", "open_navbar"], [7, 2, 1, "", "open_row"], [7, 2, 1, "", "open_stack"], [7, 2, 1, "", "refresh_dialog"], [7, 2, 1, "", "run_dialog"], [7, 2, 1, "", "set_title"]], "RPA.Browser.Selenium": [[11, 0, 1, "", "Selenium"]], "RPA.Browser.Selenium.Selenium": [[11, 1, 1, "", "AVAILABLE_OPTIONS"], [11, 1, 1, "", "AVAILABLE_SERVICES"], [11, 1, 1, "", "BROWSER_NAMES"], [11, 1, 1, "", "CHROMIUM_BROWSERS"], [11, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [11, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [11, 1, 1, "", "ROBOT_LIBRARY_VERSION"], [11, 1, 1, "", "SUPPORTED_BROWSERS"], [11, 2, 1, "", "add_library_components"], [11, 2, 1, "", "attach_chrome_browser"], [11, 2, 1, "", "clear_all_highlights"], [11, 2, 1, "", "click_button_when_visible"], [11, 2, 1, "", "click_element_if_visible"], [11, 2, 1, "", "click_element_when_clickable"], [11, 2, 1, "", "click_element_when_visible"], [11, 2, 1, "", "does_alert_contain"], [11, 2, 1, "", "does_alert_not_contain"], [11, 2, 1, "", "does_element_contain"], [11, 2, 1, "", "does_frame_contain"], [11, 2, 1, "", "does_location_contain"], [11, 2, 1, "", "does_page_contain"], [11, 2, 1, "", "does_page_contain_button"], [11, 2, 1, "", "does_page_contain_checkbox"], [11, 2, 1, "", "does_page_contain_element"], [11, 2, 1, "", "does_page_contain_image"], [11, 2, 1, "", "does_page_contain_link"], [11, 2, 1, "", "does_page_contain_list"], [11, 2, 1, "", "does_page_contain_radio_button"], [11, 2, 1, "", "does_page_contain_textfield"], [11, 2, 1, "", "does_table_cell_contain"], [11, 2, 1, "", "does_table_column_contain"], [11, 2, 1, "", "does_table_contain"], [11, 2, 1, "", "does_table_footer_contain"], [11, 2, 1, "", "does_table_header_contain"], [11, 2, 1, "", "does_table_row_contain"], [11, 2, 1, "", "does_textarea_contain"], [11, 2, 1, "", "does_textfield_contain"], [11, 3, 1, "", "driver"], [11, 2, 1, "", "execute_cdp"], [11, 2, 1, "", "failure_occurred"], [11, 2, 1, "", "find_element"], [11, 2, 1, "", "find_elements"], [11, 2, 1, "", "get_browser_capabilities"], [11, 2, 1, "", "get_element_status"], [11, 2, 1, "", "get_keyword_arguments"], [11, 2, 1, "", "get_keyword_documentation"], [11, 2, 1, "", "get_keyword_names"], [11, 2, 1, "", "get_keyword_source"], [11, 2, 1, "", "get_keyword_tags"], [11, 2, 1, "", "get_keyword_types"], [11, 2, 1, "", "get_testability_status"], [11, 2, 1, "", "get_webelement"], [11, 2, 1, "", "highlight_elements"], [11, 2, 1, "", "input_text_when_element_is_visible"], [11, 2, 1, "", "is_alert_present"], [11, 2, 1, "", "is_checkbox_selected"], [11, 3, 1, "", "is_chromium"], [11, 2, 1, "", "is_element_attribute_equal_to"], [11, 2, 1, "", "is_element_disabled"], [11, 2, 1, "", "is_element_enabled"], [11, 2, 1, "", "is_element_focused"], [11, 2, 1, "", "is_element_text"], [11, 2, 1, "", "is_element_visible"], [11, 2, 1, "", "is_list_selected"], [11, 2, 1, "", "is_list_selection"], [11, 2, 1, "", "is_location"], [11, 2, 1, "", "is_radio_button_selected"], [11, 2, 1, "", "is_radio_button_set_to"], [11, 2, 1, "", "is_textarea_value"], [11, 2, 1, "", "is_textfield_value"], [11, 2, 1, "", "is_title"], [11, 3, 1, "", "location"], [11, 2, 1, "", "normalize_options"], [11, 2, 1, "", "open_available_browser"], [11, 2, 1, "", "open_chrome_browser"], [11, 2, 1, "", "open_headless_chrome_browser"], [11, 2, 1, "", "open_user_browser"], [11, 2, 1, "", "print_to_pdf"], [11, 2, 1, "", "register_driver"], [11, 2, 1, "", "run_keyword"], [11, 2, 1, "", "screenshot"], [11, 2, 1, "", "set_download_directory"], [11, 2, 1, "", "set_element_attribute"], [11, 2, 1, "", "wait_and_click_button"]], "RPA.Calendar": [[13, 0, 1, "", "Calendar"]], "RPA.Calendar.Calendar": [[13, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [13, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [13, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [13, 2, 1, "", "add_custom_holidays"], [13, 2, 1, "", "compare_times"], [13, 2, 1, "", "create_time"], [13, 2, 1, "", "first_business_day_of_the_month"], [13, 2, 1, "", "get_iso_calendar"], [13, 2, 1, "", "is_the_date_business_day"], [13, 2, 1, "", "is_the_date_holiday"], [13, 2, 1, "", "last_business_day_of_the_month"], [13, 2, 1, "", "reset_custom_holidays"], [13, 2, 1, "", "return_holidays"], [13, 2, 1, "", "return_next_business_day"], [13, 2, 1, "", "return_previous_business_day"], [13, 2, 1, "", "set_business_days"], [13, 2, 1, "", "set_locale"], [13, 2, 1, "", "sort_list_of_dates"], [13, 2, 1, "", "time_difference"], [13, 2, 1, "", "time_difference_between_timezones"], [13, 2, 1, "", "time_difference_in_days"], [13, 2, 1, "", "time_difference_in_hours"], [13, 2, 1, "", "time_difference_in_minutes"], [13, 2, 1, "", "time_difference_in_months"], [13, 2, 1, "", "time_now"]], "RPA.Cloud.AWS": [[15, 0, 1, "", "AWS"]], "RPA.Cloud.AWS.AWS": [[15, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [15, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [15, 2, 1, "", "analyze_document"], [15, 2, 1, "", "assume_role"], [15, 1, 1, "", "clients"], [15, 2, 1, "", "convert_textract_response_to_model"], [15, 2, 1, "", "create_bucket"], [15, 2, 1, "", "create_queue"], [15, 2, 1, "", "create_redshift_statement_parameters"], [15, 2, 1, "", "delete_bucket"], [15, 2, 1, "", "delete_files"], [15, 2, 1, "", "delete_message"], [15, 2, 1, "", "delete_queue"], [15, 2, 1, "", "describe_redshift_table"], [15, 2, 1, "", "detect_document_text"], [15, 2, 1, "", "detect_entities"], [15, 2, 1, "", "detect_sentiment"], [15, 2, 1, "", "download_files"], [15, 2, 1, "", "execute_redshift_statement"], [15, 2, 1, "", "execute_redshift_statement_asyncronously"], [15, 2, 1, "", "generate_presigned_url"], [15, 2, 1, "", "get_cells"], [15, 2, 1, "", "get_document_analysis"], [15, 2, 1, "", "get_document_text_detection"], [15, 2, 1, "", "get_pages_and_text"], [15, 2, 1, "", "get_redshift_statement_results"], [15, 2, 1, "", "get_tables"], [15, 2, 1, "", "get_words"], [15, 2, 1, "", "init_comprehend_client"], [15, 2, 1, "", "init_redshift_data_client"], [15, 2, 1, "", "init_s3_client"], [15, 2, 1, "", "init_sqs_client"], [15, 2, 1, "", "init_sts_client"], [15, 2, 1, "", "init_textract_client"], [15, 2, 1, "", "list_buckets"], [15, 2, 1, "", "list_files"], [15, 2, 1, "", "list_redshift_databases"], [15, 2, 1, "", "list_redshift_schemas"], [15, 2, 1, "", "list_redshift_tables"], [15, 1, 1, "", "logger"], [15, 2, 1, "", "receive_message"], [15, 1, 1, "", "region"], [15, 1, 1, "", "robocorp_vault_name"], [15, 2, 1, "", "send_message"], [15, 1, 1, "", "services"], [15, 2, 1, "", "set_robocorp_vault"], [15, 2, 1, "", "start_document_analysis"], [15, 2, 1, "", "start_document_text_detection"], [15, 2, 1, "", "upload_file"], [15, 2, 1, "", "upload_files"]], "RPA.Cloud.Azure": [[17, 0, 1, "", "Azure"]], "RPA.Cloud.Azure.Azure": [[17, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [17, 1, 1, "", "ROBOT_LIBRARY_SCOPE"]], "RPA.Cloud.Google": [[19, 0, 1, "", "Google"]], "RPA.Cloud.Google.Google": [[19, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [19, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [19, 2, 1, "", "add_library_components"], [19, 2, 1, "", "get_keyword_arguments"], [19, 2, 1, "", "get_keyword_documentation"], [19, 2, 1, "", "get_keyword_names"], [19, 2, 1, "", "get_keyword_source"], [19, 2, 1, "", "get_keyword_tags"], [19, 2, 1, "", "get_keyword_types"], [19, 2, 1, "", "run_keyword"]], "RPA.Crypto": [[21, 0, 1, "", "Crypto"]], "RPA.Crypto.Crypto": [[21, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [21, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [21, 2, 1, "", "decrypt_file"], [21, 2, 1, "", "decrypt_string"], [21, 2, 1, "", "encrypt_file"], [21, 2, 1, "", "encrypt_string"], [21, 2, 1, "", "generate_key"], [21, 2, 1, "", "hash_file"], [21, 2, 1, "", "hash_string"], [21, 2, 1, "", "use_encryption_key"], [21, 2, 1, "", "use_encryption_key_from_vault"]], "RPA.Database": [[23, 0, 1, "", "Database"]], "RPA.Database.Database": [[23, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [23, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [23, 2, 1, "", "call_stored_procedure"], [23, 2, 1, "", "connect_to_database"], [23, 2, 1, "", "description"], [23, 2, 1, "", "disconnect_from_database"], [23, 2, 1, "", "execute_sql_script"], [23, 2, 1, "", "get_number_of_rows"], [23, 2, 1, "", "get_rows"], [23, 2, 1, "", "query"], [23, 2, 1, "", "set_auto_commit"]], "RPA.Desktop.Clipboard": [[27, 0, 1, "", "Clipboard"]], "RPA.Desktop.Clipboard.Clipboard": [[27, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [27, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [27, 2, 1, "", "clear_clipboard"], [27, 2, 1, "", "copy_to_clipboard"], [27, 2, 1, "", "paste_from_clipboard"]], "RPA.Desktop": [[25, 0, 1, "", "Desktop"]], "RPA.Desktop.Desktop": [[25, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [25, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [25, 2, 1, "", "add_library_components"], [25, 2, 1, "", "get_keyword_arguments"], [25, 2, 1, "", "get_keyword_documentation"], [25, 2, 1, "", "get_keyword_names"], [25, 2, 1, "", "get_keyword_source"], [25, 2, 1, "", "get_keyword_tags"], [25, 2, 1, "", "get_keyword_types"], [25, 2, 1, "", "run_keyword"]], "RPA.Desktop.OperatingSystem": [[29, 0, 1, "", "OperatingSystem"]], "RPA.Desktop.OperatingSystem.OperatingSystem": [[29, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [29, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [29, 2, 1, "", "boot_time_in_seconds_from_epoch"], [29, 2, 1, "", "get_boot_time"], [29, 2, 1, "", "get_machine_name"], [29, 2, 1, "", "get_memory_stats"], [29, 2, 1, "", "get_username"], [29, 2, 1, "", "kill_process"], [29, 2, 1, "", "kill_process_by_pid"], [29, 2, 1, "", "process_exists"], [29, 2, 1, "", "process_id_exists"], [29, 2, 1, "", "put_system_to_sleep"]], "RPA.Desktop.Windows": [[31, 0, 1, "", "Windows"]], "RPA.Desktop.Windows.Windows": [[31, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [31, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [31, 2, 1, "", "boot_time_in_seconds_from_epoch"], [31, 2, 1, "", "calculate_rectangle_center"], [31, 2, 1, "", "click_type"], [31, 2, 1, "", "close_all_applications"], [31, 2, 1, "", "connect_by_handle"], [31, 2, 1, "", "connect_by_pid"], [31, 2, 1, "", "drag_and_drop"], [31, 2, 1, "", "find_element"], [31, 2, 1, "", "get_app"], [31, 2, 1, "", "get_boot_time"], [31, 2, 1, "", "get_dialog_rectangle"], [31, 2, 1, "", "get_element"], [31, 2, 1, "", "get_element_center"], [31, 2, 1, "", "get_element_rectangle"], [31, 2, 1, "", "get_element_rich_text"], [31, 2, 1, "", "get_machine_name"], [31, 2, 1, "", "get_memory_stats"], [31, 2, 1, "", "get_open_applications"], [31, 2, 1, "", "get_spaced_string"], [31, 2, 1, "", "get_text"], [31, 2, 1, "", "get_username"], [31, 2, 1, "", "get_window_elements"], [31, 2, 1, "", "get_window_list"], [31, 2, 1, "", "is_element_enabled"], [31, 2, 1, "", "is_element_matching"], [31, 2, 1, "", "is_element_visible"], [31, 2, 1, "", "kill_process"], [31, 2, 1, "", "kill_process_by_pid"], [31, 2, 1, "", "lock_screen"], [31, 2, 1, "", "log_in"], [31, 2, 1, "", "menu_select"], [31, 2, 1, "", "minimize_dialog"], [31, 2, 1, "", "mouse_click"], [31, 2, 1, "", "mouse_click_coords"], [31, 2, 1, "", "mouse_click_image"], [31, 2, 1, "", "open_application"], [31, 2, 1, "", "open_dialog"], [31, 2, 1, "", "open_executable"], [31, 2, 1, "", "open_file"], [31, 2, 1, "", "open_from_search"], [31, 2, 1, "", "open_using_run_dialog"], [31, 2, 1, "", "process_exists"], [31, 2, 1, "", "process_id_exists"], [31, 2, 1, "", "put_system_to_sleep"], [31, 2, 1, "", "quit_application"], [31, 2, 1, "", "refresh_window"], [31, 2, 1, "", "restore_dialog"], [31, 2, 1, "", "screenshot"], [31, 2, 1, "", "send_keys"], [31, 2, 1, "", "send_keys_to_input"], [31, 2, 1, "", "set_automation_speed"], [31, 2, 1, "", "set_windows_backend"], [31, 2, 1, "", "switch_to_application"], [31, 2, 1, "", "type_into"], [31, 2, 1, "", "type_keys"], [31, 2, 1, "", "wait_for_element"]], "RPA.Dialogs": [[33, 0, 1, "", "Dialogs"]], "RPA.Dialogs.Dialogs": [[33, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [33, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [33, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [33, 2, 1, "", "add_checkbox"], [33, 2, 1, "", "add_date_input"], [33, 2, 1, "", "add_dialog_next_page_button"], [33, 2, 1, "", "add_drop_down"], [33, 2, 1, "", "add_element"], [33, 2, 1, "", "add_file"], [33, 2, 1, "", "add_file_input"], [33, 2, 1, "", "add_files"], [33, 2, 1, "", "add_heading"], [33, 2, 1, "", "add_hidden_input"], [33, 2, 1, "", "add_icon"], [33, 2, 1, "", "add_image"], [33, 2, 1, "", "add_link"], [33, 2, 1, "", "add_password_input"], [33, 2, 1, "", "add_radio_buttons"], [33, 2, 1, "", "add_submit_buttons"], [33, 2, 1, "", "add_text"], [33, 2, 1, "", "add_text_input"], [33, 2, 1, "", "clear_elements"], [33, 2, 1, "", "close_all_dialogs"], [33, 2, 1, "", "close_dialog"], [33, 2, 1, "", "run_dialog"], [33, 2, 1, "", "show_dialog"], [33, 2, 1, "", "wait_all_dialogs"], [33, 2, 1, "", "wait_dialog"], [33, 2, 1, "", "wait_dialogs_as_completed"]], "RPA.DocumentAI.Base64AI": [[37, 0, 1, "", "Base64AI"]], "RPA.DocumentAI.Base64AI.Base64AI": [[37, 1, 1, "", "BASE_URL"], [37, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [37, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [37, 2, 1, "", "filter_matching_signatures"], [37, 2, 1, "", "get_fields_from_prediction_result"], [37, 2, 1, "", "get_matching_signatures"], [37, 2, 1, "", "get_signature_image"], [37, 2, 1, "", "get_user_data"], [37, 2, 1, "", "scan_document_file"], [37, 2, 1, "", "scan_document_url"], [37, 2, 1, "", "set_authorization"]], "RPA.DocumentAI.DocumentAI": [[35, 0, 1, "", "DocumentAI"]], "RPA.DocumentAI.DocumentAI.DocumentAI": [[35, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [35, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [35, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [35, 3, 1, "", "engine"], [35, 2, 1, "", "get_result"], [35, 2, 1, "", "init_engine"], [35, 2, 1, "", "predict"], [35, 3, 1, "", "result"], [35, 2, 1, "", "switch_engine"]], "RPA.DocumentAI.Nanonets": [[39, 0, 1, "", "Nanonets"]], "RPA.DocumentAI.Nanonets.Nanonets": [[39, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [39, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [39, 2, 1, "", "get_all_models"], [39, 2, 1, "", "get_fields_from_prediction_result"], [39, 2, 1, "", "get_tables_from_prediction_result"], [39, 2, 1, "", "ocr_fulltext"], [39, 2, 1, "", "predict_file"], [39, 2, 1, "", "set_authorization"]], "RPA.Email.Exchange": [[41, 0, 1, "", "Exchange"]], "RPA.Email.Exchange.Exchange": [[41, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [41, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [41, 1, 1, "", "TO_PROTECT"], [41, 2, 1, "", "authorize"], [41, 2, 1, "", "create_folder"], [41, 2, 1, "", "delete_folder"], [41, 2, 1, "", "empty_folder"], [41, 2, 1, "", "generate_oauth_url"], [41, 2, 1, "", "get_oauth_token"], [41, 2, 1, "", "list_messages"], [41, 2, 1, "", "list_unread_messages"], [41, 2, 1, "", "move_message"], [41, 2, 1, "", "move_messages"], [41, 2, 1, "", "refresh_oauth_token"], [41, 2, 1, "", "rename_folder"], [41, 2, 1, "", "save_attachments"], [41, 2, 1, "", "save_message"], [41, 2, 1, "", "send_message"], [41, 2, 1, "", "send_reply_message"], [41, 2, 1, "", "wait_for_message"]], "RPA.Email.ImapSmtp": [[43, 0, 1, "", "ImapSmtp"]], "RPA.Email.ImapSmtp.ImapSmtp": [[43, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [43, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [43, 1, 1, "", "TO_PROTECT"], [43, 2, 1, "", "add_gmail_labels"], [43, 2, 1, "", "authorize"], [43, 2, 1, "", "authorize_imap"], [43, 2, 1, "", "authorize_smtp"], [43, 2, 1, "", "convert_eml_file_into_message"], [43, 2, 1, "", "create_folder"], [43, 2, 1, "", "delete_folder"], [43, 2, 1, "", "delete_message"], [43, 2, 1, "", "delete_messages"], [43, 2, 1, "", "do_message_actions"], [43, 2, 1, "", "email_to_document"], [43, 2, 1, "", "flag_messages"], [43, 2, 1, "", "generate_oauth_string"], [43, 2, 1, "", "generate_oauth_url"], [43, 2, 1, "", "get_decoded_email_body"], [43, 2, 1, "", "get_folder_list"], [43, 2, 1, "", "get_oauth_token"], [43, 2, 1, "", "list_messages"], [43, 2, 1, "", "mark_as_read"], [43, 2, 1, "", "mark_as_unread"], [43, 2, 1, "", "move_messages"], [43, 2, 1, "", "move_messages_by_ids"], [43, 2, 1, "", "refresh_oauth_token"], [43, 2, 1, "", "remove_gmail_labels"], [43, 2, 1, "", "rename_folder"], [43, 2, 1, "", "save_attachment"], [43, 2, 1, "", "save_attachments"], [43, 2, 1, "", "save_messages"], [43, 2, 1, "", "select_folder"], [43, 2, 1, "", "send_message"], [43, 2, 1, "", "send_smtp_hello"], [43, 2, 1, "", "set_credentials"], [43, 2, 1, "", "unflag_messages"], [43, 2, 1, "", "wait_for_message"]], "RPA.Excel.Application": [[45, 0, 1, "", "Application"]], "RPA.Excel.Application.Application": [[45, 1, 1, "", "APP_DISPATCH"], [45, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [45, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [45, 2, 1, "", "add_new_sheet"], [45, 2, 1, "", "add_new_workbook"], [45, 3, 1, "", "app"], [45, 2, 1, "", "close_document"], [45, 2, 1, "", "export_as_pdf"], [45, 2, 1, "", "find_first_available_cell"], [45, 2, 1, "", "find_first_available_row"], [45, 2, 1, "", "open_application"], [45, 2, 1, "", "open_workbook"], [45, 2, 1, "", "quit_application"], [45, 2, 1, "", "read_from_cells"], [45, 2, 1, "", "run_macro"], [45, 2, 1, "", "save_excel"], [45, 2, 1, "", "save_excel_as"], [45, 2, 1, "", "set_active_worksheet"], [45, 2, 1, "", "write_to_cells"]], "RPA.Excel.Files": [[47, 0, 1, "", "Files"]], "RPA.Excel.Files.Files": [[47, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [47, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [47, 2, 1, "", "append_rows_to_worksheet"], [47, 2, 1, "", "auto_size_columns"], [47, 2, 1, "", "clear_cell_range"], [47, 2, 1, "", "close_workbook"], [47, 2, 1, "", "copy_cell_values"], [47, 2, 1, "", "create_workbook"], [47, 2, 1, "", "create_worksheet"], [47, 2, 1, "", "delete_columns"], [47, 2, 1, "", "delete_rows"], [47, 2, 1, "", "find_empty_row"], [47, 2, 1, "", "get_active_worksheet"], [47, 2, 1, "", "get_cell_value"], [47, 2, 1, "", "get_worksheet_value"], [47, 2, 1, "", "hide_columns"], [47, 2, 1, "", "insert_columns_after"], [47, 2, 1, "", "insert_columns_before"], [47, 2, 1, "", "insert_image_to_worksheet"], [47, 2, 1, "", "insert_rows_after"], [47, 2, 1, "", "insert_rows_before"], [47, 2, 1, "", "list_worksheets"], [47, 2, 1, "", "move_range"], [47, 2, 1, "", "open_workbook"], [47, 2, 1, "", "read_worksheet"], [47, 2, 1, "", "read_worksheet_as_table"], [47, 2, 1, "", "remove_worksheet"], [47, 2, 1, "", "rename_worksheet"], [47, 2, 1, "", "save_workbook"], [47, 2, 1, "", "set_active_worksheet"], [47, 2, 1, "", "set_cell_format"], [47, 2, 1, "", "set_cell_formula"], [47, 2, 1, "", "set_cell_value"], [47, 2, 1, "", "set_cell_values"], [47, 2, 1, "", "set_styles"], [47, 2, 1, "", "set_worksheet_value"], [47, 2, 1, "", "unhide_columns"], [47, 2, 1, "", "worksheet_exists"]], "RPA.FTP": [[51, 0, 1, "", "FTP"]], "RPA.FTP.FTP": [[51, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [51, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [51, 2, 1, "", "abort"], [51, 2, 1, "", "close"], [51, 2, 1, "", "connect"], [51, 2, 1, "", "cwd"], [51, 2, 1, "", "delete"], [51, 2, 1, "", "download"], [51, 2, 1, "", "file_size"], [51, 2, 1, "", "get_welcome_message"], [51, 2, 1, "", "list_files"], [51, 2, 1, "", "mkd"], [51, 2, 1, "", "pwd"], [51, 2, 1, "", "quit"], [51, 2, 1, "", "rename"], [51, 2, 1, "", "rmd"], [51, 2, 1, "", "send_command"], [51, 2, 1, "", "set_ascii_mode"], [51, 2, 1, "", "set_binary_mode"], [51, 2, 1, "", "set_debug_level"], [51, 2, 1, "", "upload"]], "RPA.FileSystem": [[49, 0, 1, "", "FileSystem"]], "RPA.FileSystem.FileSystem": [[49, 1, 1, "", "PATH_TYPE"], [49, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [49, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [49, 2, 1, "", "absolute_path"], [49, 2, 1, "", "append_to_binary_file"], [49, 2, 1, "", "append_to_file"], [49, 2, 1, "", "change_file_extension"], [49, 2, 1, "", "copy_directory"], [49, 2, 1, "", "copy_file"], [49, 2, 1, "", "copy_files"], [49, 2, 1, "", "create_binary_file"], [49, 2, 1, "", "create_directory"], [49, 2, 1, "", "create_file"], [49, 2, 1, "", "does_directory_exist"], [49, 2, 1, "", "does_directory_not_exist"], [49, 2, 1, "", "does_file_exist"], [49, 2, 1, "", "does_file_not_exist"], [49, 2, 1, "", "empty_directory"], [49, 2, 1, "", "find_files"], [49, 2, 1, "", "get_file_creation_date"], [49, 2, 1, "", "get_file_extension"], [49, 2, 1, "", "get_file_modified_date"], [49, 2, 1, "", "get_file_name"], [49, 2, 1, "", "get_file_owner"], [49, 2, 1, "", "get_file_size"], [49, 2, 1, "", "get_file_stem"], [49, 2, 1, "", "is_directory_empty"], [49, 2, 1, "", "is_directory_not_empty"], [49, 2, 1, "", "is_file_empty"], [49, 2, 1, "", "is_file_not_empty"], [49, 2, 1, "", "join_path"], [49, 2, 1, "", "list_directories_in_directory"], [49, 2, 1, "", "list_files_in_directory"], [49, 2, 1, "", "log_directory_tree"], [49, 2, 1, "", "move_directory"], [49, 2, 1, "", "move_file"], [49, 2, 1, "", "move_files"], [49, 2, 1, "", "normalize_path"], [49, 2, 1, "", "read_binary_file"], [49, 2, 1, "", "read_file"], [49, 2, 1, "", "remove_directory"], [49, 2, 1, "", "remove_file"], [49, 2, 1, "", "remove_files"], [49, 2, 1, "", "run_keyword_if_file_exists"], [49, 2, 1, "", "touch_file"], [49, 2, 1, "", "wait_until_created"], [49, 2, 1, "", "wait_until_modified"], [49, 2, 1, "", "wait_until_removed"]], "RPA.HTTP": [[53, 0, 1, "", "HTTP"]], "RPA.HTTP.HTTP": [[53, 1, 1, "", "DEFAULT_RETRY_METHOD_LIST"], [53, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [53, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [53, 2, 1, "", "check_vulnerabilities"], [53, 2, 1, "", "create_client_cert_session"], [53, 2, 1, "", "create_custom_session"], [53, 2, 1, "", "create_digest_session"], [53, 2, 1, "", "create_ntlm_session"], [53, 2, 1, "", "create_session"], [53, 2, 1, "", "delete_all_sessions"], [53, 2, 1, "", "delete_on_session"], [53, 2, 1, "", "delete_request"], [53, 2, 1, "", "download"], [53, 2, 1, "", "get_current_session_alias"], [53, 2, 1, "", "get_file_for_streaming_upload"], [53, 2, 1, "", "get_on_session"], [53, 2, 1, "", "get_request"], [53, 2, 1, "", "head_on_session"], [53, 2, 1, "", "head_request"], [53, 2, 1, "", "http_get"], [53, 2, 1, "", "options_on_session"], [53, 2, 1, "", "options_request"], [53, 2, 1, "", "patch_on_session"], [53, 2, 1, "", "patch_request"], [53, 2, 1, "", "post_on_session"], [53, 2, 1, "", "post_request"], [53, 2, 1, "", "put_on_session"], [53, 2, 1, "", "put_request"], [53, 2, 1, "", "request_should_be_successful"], [53, 2, 1, "", "session_exists"], [53, 2, 1, "", "session_less_delete"], [53, 2, 1, "", "session_less_get"], [53, 2, 1, "", "session_less_head"], [53, 2, 1, "", "session_less_options"], [53, 2, 1, "", "session_less_patch"], [53, 2, 1, "", "session_less_post"], [53, 2, 1, "", "session_less_put"], [53, 2, 1, "", "status_should_be"], [53, 2, 1, "", "to_json"], [53, 2, 1, "", "update_session"]], "RPA.Hubspot": [[55, 0, 1, "", "Hubspot"]], "RPA.Hubspot.Hubspot": [[55, 1, 1, "", "BUILTIN_PLURAL_MAP"], [55, 1, 1, "", "BUILTIN_SINGULAR_MAP"], [55, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [55, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [55, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [55, 2, 1, "", "add_input_to_batch"], [55, 2, 1, "", "auth_with_api_key"], [55, 2, 1, "", "auth_with_token"], [55, 3, 1, "", "batch_input"], [55, 2, 1, "", "clear_current_batch"], [55, 2, 1, "", "create_new_batch"], [55, 2, 1, "", "create_object"], [55, 2, 1, "", "execute_batch"], [55, 2, 1, "", "extend_batch_with_inputs"], [55, 2, 1, "", "get_current_batch"], [55, 2, 1, "", "get_current_batch_inputs"], [55, 2, 1, "", "get_current_stage_of_object"], [55, 2, 1, "", "get_object"], [55, 2, 1, "", "get_owner_by_id"], [55, 2, 1, "", "get_owner_of_object"], [55, 2, 1, "", "get_pipeline"], [55, 2, 1, "", "get_pipeline_stages"], [55, 2, 1, "", "get_user"], [55, 2, 1, "", "list_associations"], [55, 2, 1, "", "list_pipelines"], [55, 3, 1, "", "pipelines"], [55, 3, 1, "", "schemas"], [55, 2, 1, "", "search_for_objects"], [55, 2, 1, "", "set_association"], [55, 2, 1, "", "set_current_batch_input"], [55, 2, 1, "", "update_object"]], "RPA.Images": [[57, 0, 1, "", "Images"]], "RPA.Images.Images": [[57, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [57, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [57, 2, 1, "", "crop_image"], [57, 2, 1, "", "find_template_in_image"], [57, 2, 1, "", "get_pixel_color_in_image"], [57, 2, 1, "", "show_region_in_image"]], "RPA.JSON": [[61, 0, 1, "", "JSON"]], "RPA.JSON.JSON": [[61, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [61, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [61, 2, 1, "", "add_to_json"], [61, 2, 1, "", "convert_json_to_string"], [61, 2, 1, "", "convert_string_to_json"], [61, 2, 1, "", "delete_from_json"], [61, 2, 1, "", "get_value_from_json"], [61, 2, 1, "", "get_values_from_json"], [61, 2, 1, "", "load_json_from_file"], [61, 2, 1, "", "save_json_to_file"], [61, 2, 1, "", "update_value_to_json"]], "RPA.JavaAccessBridge": [[59, 0, 1, "", "JavaAccessBridge"]], "RPA.JavaAccessBridge.JavaAccessBridge": [[59, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [59, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [59, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [59, 2, 1, "", "application_refresh"], [59, 2, 1, "", "call_element_action"], [59, 2, 1, "", "click_coordinates"], [59, 2, 1, "", "click_element"], [59, 2, 1, "", "click_push_button"], [59, 2, 1, "", "close_java_window"], [59, 2, 1, "", "get_element_actions"], [59, 2, 1, "", "get_element_text"], [59, 2, 1, "", "get_elements"], [59, 2, 1, "", "get_locator_tree"], [59, 2, 1, "", "get_version_info"], [59, 2, 1, "", "highlight_element"], [59, 2, 1, "", "list_java_windows"], [59, 2, 1, "", "press_keys"], [59, 2, 1, "", "print_element_tree"], [59, 2, 1, "", "print_locator_tree"], [59, 2, 1, "", "read_table"], [59, 2, 1, "", "refresh_element"], [59, 2, 1, "", "select_menu"], [59, 2, 1, "", "select_window"], [59, 2, 1, "", "select_window_by_pid"], [59, 2, 1, "", "select_window_by_title"], [59, 2, 1, "", "set_display_scale_factor"], [59, 2, 1, "", "set_mouse_position"], [59, 2, 1, "", "shutdown_jab"], [59, 2, 1, "", "toggle_drop_down"], [59, 2, 1, "", "type_text"], [59, 2, 1, "", "wait_until_element_exists"], [59, 2, 1, "", "wait_until_element_is_focused"], [59, 2, 1, "", "wait_until_element_text_contains"], [59, 2, 1, "", "wait_until_element_text_equals"]], "RPA.MFA": [[63, 0, 1, "", "MFA"]], "RPA.MFA.MFA": [[63, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [63, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [63, 2, 1, "", "generate_oauth_url"], [63, 2, 1, "", "get_counter_based_otp"], [63, 2, 1, "", "get_oauth_token"], [63, 2, 1, "", "get_time_based_otp"], [63, 3, 1, "", "oauth"], [63, 2, 1, "", "refresh_oauth_token"], [63, 2, 1, "", "set_counter_based_otp"], [63, 2, 1, "", "set_time_based_otp"], [63, 2, 1, "", "use_mfa_secret_from_vault"]], "RPA.MSGraph": [[65, 0, 1, "", "MSGraph"]], "RPA.MSGraph.MSGraph": [[65, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [65, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [65, 2, 1, "", "authorize_and_get_token"], [65, 2, 1, "", "configure_msgraph_client"], [65, 2, 1, "", "create_sharepoint_list"], [65, 2, 1, "", "download_file_from_onedrive"], [65, 2, 1, "", "download_file_from_share_link"], [65, 2, 1, "", "download_file_from_sharepoint"], [65, 2, 1, "", "download_folder_from_onedrive"], [65, 2, 1, "", "find_onedrive_file"], [65, 2, 1, "", "generate_oauth_authorization_url"], [65, 2, 1, "", "get_drive_instance"], [65, 2, 1, "", "get_file_instance"], [65, 2, 1, "", "get_folder_instance"], [65, 2, 1, "", "get_items_from_sharepoint_list"], [65, 2, 1, "", "get_me"], [65, 2, 1, "", "get_scopes"], [65, 2, 1, "", "get_sharepoint_site"], [65, 2, 1, "", "list_files_in_onedrive_folder"], [65, 2, 1, "", "list_files_in_sharepoint_site_drive"], [65, 2, 1, "", "list_sharepoint_site_drives"], [65, 2, 1, "", "refresh_oauth_token"], [65, 2, 1, "", "search_for_users"], [65, 2, 1, "", "upload_file_to_onedrive"]], "RPA.Netsuite": [[67, 0, 1, "", "Netsuite"]], "RPA.Netsuite.Netsuite": [[67, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [67, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [67, 2, 1, "", "connect"], [67, 2, 1, "", "get_accounts"], [67, 2, 1, "", "get_classifications"], [67, 2, 1, "", "get_currencies"], [67, 2, 1, "", "get_currency"], [67, 2, 1, "", "get_departments"], [67, 2, 1, "", "get_locations"], [67, 2, 1, "", "get_vendor_bills"], [67, 2, 1, "", "get_vendors"], [67, 2, 1, "", "login"], [67, 2, 1, "", "netsuite_get"], [67, 2, 1, "", "netsuite_get_all"], [67, 2, 1, "", "netsuite_search"], [67, 2, 1, "", "netsuite_search_all"]], "RPA.Notifier": [[69, 0, 1, "", "Notifier"]], "RPA.Notifier.Notifier": [[69, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [69, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [69, 2, 1, "", "generic_notify"], [69, 2, 1, "", "notify_email"], [69, 2, 1, "", "notify_gmail"], [69, 2, 1, "", "notify_pushover"], [69, 2, 1, "", "notify_slack"], [69, 2, 1, "", "notify_telegram"], [69, 2, 1, "", "notify_twilio"]], "RPA.OpenAI": [[71, 0, 1, "", "OpenAI"]], "RPA.OpenAI.OpenAI": [[71, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [71, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [71, 2, 1, "", "authorize_to_azure_openai"], [71, 2, 1, "", "authorize_to_openai"], [71, 2, 1, "", "chat_completion_create"], [71, 2, 1, "", "completion_create"], [71, 2, 1, "", "image_create"], [71, 2, 1, "", "image_create_variation"]], "RPA.Outlook.Application": [[73, 0, 1, "", "Application"]], "RPA.Outlook.Application.Application": [[73, 1, 1, "", "APP_DISPATCH"], [73, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [73, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [73, 3, 1, "", "app"], [73, 2, 1, "", "close_document"], [73, 2, 1, "", "get_emails"], [73, 2, 1, "", "mark_email_as_read"], [73, 2, 1, "", "move_emails"], [73, 2, 1, "", "open_application"], [73, 2, 1, "", "quit_application"], [73, 2, 1, "", "save_email_attachments"], [73, 2, 1, "", "send_email"], [73, 2, 1, "", "wait_for_email"]], "RPA.PDF": [[75, 0, 1, "", "PDF"]], "RPA.PDF.PDF": [[75, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [75, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [75, 2, 1, "", "add_library_components"], [75, 2, 1, "", "get_keyword_arguments"], [75, 2, 1, "", "get_keyword_documentation"], [75, 2, 1, "", "get_keyword_names"], [75, 2, 1, "", "get_keyword_source"], [75, 2, 1, "", "get_keyword_tags"], [75, 2, 1, "", "get_keyword_types"], [75, 2, 1, "", "run_keyword"]], "RPA.Robocorp.Process": [[77, 0, 1, "", "Process"]], "RPA.Robocorp.Process.Process": [[77, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [77, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [77, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [77, 3, 1, "", "base_api"], [77, 2, 1, "", "create_input_work_item"], [77, 2, 1, "", "get_process_id_by_name"], [77, 2, 1, "", "get_process_run_status"], [77, 2, 1, "", "get_robot_run_artifact"], [77, 2, 1, "", "get_work_item"], [77, 3, 1, "", "headers"], [77, 2, 1, "", "list_process_run_work_items"], [77, 2, 1, "", "list_process_runs"], [77, 2, 1, "", "list_process_runs_in_workspace"], [77, 2, 1, "", "list_process_work_items"], [77, 2, 1, "", "list_processes"], [77, 2, 1, "", "list_run_artifacts"], [77, 2, 1, "", "process_api"], [77, 2, 1, "", "register_file_upload"], [77, 2, 1, "", "retry_work_item"], [77, 2, 1, "", "set_apikey"], [77, 2, 1, "", "set_credentials"], [77, 2, 1, "", "set_process_id"], [77, 2, 1, "", "set_workspace_id"], [77, 2, 1, "", "start_configured_process"], [77, 2, 1, "", "start_process"], [77, 2, 1, "", "upload_file_to_s3"], [77, 2, 1, "", "workspace_api"]], "RPA.Robocorp.Vault": [[81, 0, 1, "", "Vault"]], "RPA.Robocorp.Vault.Vault": [[81, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [81, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [81, 3, 1, "", "adapter"], [81, 2, 1, "", "get_secret"], [81, 2, 1, "", "set_secret"]], "RPA.Robocorp.WorkItems": [[83, 0, 1, "", "WorkItems"]], "RPA.Robocorp.WorkItems.WorkItems": [[83, 1, 1, "", "EMAIL_BODY_LOADERS"], [83, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [83, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [83, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [83, 1, 1, "", "ROBOT_LISTENER_API_VERSION"], [83, 3, 1, "", "active_input"], [83, 3, 1, "", "adapter"], [83, 2, 1, "", "add_work_item_file"], [83, 2, 1, "", "add_work_item_files"], [83, 2, 1, "", "clear_work_item"], [83, 2, 1, "", "create_output_work_item"], [83, 3, 1, "", "current"], [83, 2, 1, "", "delete_work_item_variables"], [83, 2, 1, "", "for_each_input_work_item"], [83, 2, 1, "", "get_current_work_item"], [83, 2, 1, "", "get_input_work_item"], [83, 2, 1, "", "get_work_item_file"], [83, 2, 1, "", "get_work_item_files"], [83, 2, 1, "", "get_work_item_payload"], [83, 2, 1, "", "get_work_item_variable"], [83, 2, 1, "", "get_work_item_variables"], [83, 1, 1, "", "inputs"], [83, 2, 1, "", "list_work_item_files"], [83, 2, 1, "", "list_work_item_variables"], [83, 1, 1, "", "outputs"], [83, 2, 1, "", "release_input_work_item"], [83, 2, 1, "", "remove_work_item_file"], [83, 2, 1, "", "remove_work_item_files"], [83, 1, 1, "", "root"], [83, 2, 1, "", "save_work_item"], [83, 2, 1, "", "set_current_work_item"], [83, 2, 1, "", "set_task_variables_from_work_item"], [83, 2, 1, "", "set_work_item_payload"], [83, 2, 1, "", "set_work_item_variable"], [83, 2, 1, "", "set_work_item_variables"]], "RPA.RobotLogListener": [[85, 0, 1, "", "RobotLogListener"]], "RPA.RobotLogListener.RobotLogListener": [[85, 1, 1, "", "INFO_LEVEL_KEYWORDS"], [85, 1, 1, "", "KEYWORDS_TO_MUTE"], [85, 1, 1, "", "KEYWORDS_TO_PROTECT"], [85, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [85, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [85, 1, 1, "", "ROBOT_LISTENER_API_VERSION"], [85, 2, 1, "", "end_keyword"], [85, 2, 1, "", "mute_run_on_failure"], [85, 2, 1, "", "only_info_level"], [85, 2, 1, "", "register_protected_keywords"], [85, 2, 1, "", "start_keyword"]], "RPA.SAP": [[89, 0, 1, "", "SAP"]], "RPA.SAP.SAP": [[89, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [89, 2, 1, "", "click_element"], [89, 2, 1, "", "click_toolbar_button"], [89, 2, 1, "", "connect_to_existing_connection"], [89, 2, 1, "", "connect_to_session"], [89, 2, 1, "", "disable_screenshots_on_error"], [89, 2, 1, "", "doubleclick_element"], [89, 2, 1, "", "element_should_be_present"], [89, 2, 1, "", "element_value_should_be"], [89, 2, 1, "", "element_value_should_contain"], [89, 2, 1, "", "enable_screenshots_on_error"], [89, 2, 1, "", "focus_and_click"], [89, 2, 1, "", "focus_and_input_text"], [89, 2, 1, "", "generic_click_element"], [89, 2, 1, "", "generic_input_password"], [89, 2, 1, "", "generic_input_text"], [89, 2, 1, "", "get_cell_value"], [89, 2, 1, "", "get_element_location"], [89, 2, 1, "", "get_element_type"], [89, 2, 1, "", "get_element_type_of_object"], [89, 2, 1, "", "get_row_count"], [89, 2, 1, "", "get_scroll_position"], [89, 2, 1, "", "get_statusbar_type"], [89, 2, 1, "", "get_value"], [89, 2, 1, "", "get_window_title"], [89, 2, 1, "", "input_password"], [89, 2, 1, "", "input_text"], [89, 2, 1, "", "maximize_window"], [89, 2, 1, "", "open_connection"], [89, 2, 1, "", "run_transaction"], [89, 2, 1, "", "scroll"], [89, 2, 1, "", "select_checkbox"], [89, 2, 1, "", "select_context_menu_item"], [89, 2, 1, "", "select_from_list_by_label"], [89, 2, 1, "", "select_node"], [89, 2, 1, "", "select_node_link"], [89, 2, 1, "", "select_radio_button"], [89, 2, 1, "", "select_table_column"], [89, 2, 1, "", "select_table_row"], [89, 2, 1, "", "send_vkey"], [89, 2, 1, "", "set_cell_value"], [89, 2, 1, "", "set_explicit_wait"], [89, 2, 1, "", "set_focus"], [89, 2, 1, "", "take_screenshot"], [89, 2, 1, "", "unselect_checkbox"]], "RPA.Salesforce": [[87, 0, 1, "", "Salesforce"]], "RPA.Salesforce.Salesforce": [[87, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [87, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [87, 1, 1, "", "account"], [87, 2, 1, "", "add_product_into_opportunity"], [87, 2, 1, "", "auth_with_connected_app"], [87, 2, 1, "", "auth_with_token"], [87, 2, 1, "", "create_new_opportunity"], [87, 2, 1, "", "create_salesforce_object"], [87, 2, 1, "", "delete_salesforce_object"], [87, 2, 1, "", "describe_salesforce_object"], [87, 2, 1, "", "execute_apex"], [87, 2, 1, "", "execute_dataloader_insert"], [87, 2, 1, "", "get_dataloader_error_table"], [87, 2, 1, "", "get_dataloader_success_table"], [87, 2, 1, "", "get_domain"], [87, 2, 1, "", "get_opportunity_id"], [87, 2, 1, "", "get_pricebook_entries"], [87, 2, 1, "", "get_pricebook_id"], [87, 2, 1, "", "get_products_in_pricelist"], [87, 2, 1, "", "get_salesforce_object_by_id"], [87, 2, 1, "", "get_salesforce_object_metadata"], [87, 3, 1, "", "instance"], [87, 2, 1, "", "read_dictionary_from_file"], [87, 2, 1, "", "salesforce_query"], [87, 2, 1, "", "salesforce_query_result_as_table"], [87, 3, 1, "", "session_id"], [87, 2, 1, "", "set_account"], [87, 2, 1, "", "set_domain"], [87, 2, 1, "", "set_pricebook"], [87, 2, 1, "", "update_salesforce_object"], [87, 2, 1, "", "upsert_salesforce_object"]], "RPA.Slack": [[91, 0, 1, "", "Slack"]], "RPA.Slack.Slack": [[91, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [91, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [91, 2, 1, "", "slack_message_using_webhook"], [91, 2, 1, "", "slack_raw_message"]], "RPA.Smartsheet": [[93, 0, 1, "", "Smartsheet"]], "RPA.Smartsheet.Smartsheet": [[93, 1, 1, "", "ROBOT_AUTO_KEYWORDS"], [93, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [93, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [93, 1, 1, "", "ROW_EXCLUDES"], [93, 1, 1, "", "ROW_INCLUDES"], [93, 1, 1, "", "SEARCH_INCLUDES"], [93, 1, 1, "", "SEARCH_SCOPES"], [93, 1, 1, "", "SHEET_INCLUDES"], [93, 2, 1, "", "add_column"], [93, 2, 1, "", "add_columns"], [93, 2, 1, "", "add_rows"], [93, 2, 1, "", "convert_row_to_dict"], [93, 2, 1, "", "convert_sheet_to_table"], [93, 2, 1, "", "create_sheet"], [93, 2, 1, "", "download_attachment"], [93, 2, 1, "", "get_application_constants"], [93, 2, 1, "", "get_cell_history"], [93, 2, 1, "", "get_current_user"], [93, 2, 1, "", "get_row"], [93, 2, 1, "", "get_sheet"], [93, 2, 1, "", "get_sheet_owner"], [93, 2, 1, "", "list_attachments"], [93, 2, 1, "", "list_columns"], [93, 2, 1, "", "list_sheet_filters"], [93, 2, 1, "", "list_sheets"], [93, 2, 1, "", "refresh_sheet"], [93, 2, 1, "", "search"], [93, 2, 1, "", "set_access_token"], [93, 2, 1, "", "set_max_retry_time"], [93, 2, 1, "", "set_row"], [93, 2, 1, "", "set_rows"], [93, 3, 1, "", "sheets"], [93, 2, 1, "", "unselect_current_sheet"], [93, 2, 1, "", "update_column"]], "RPA.Tables": [[95, 0, 1, "", "Tables"]], "RPA.Tables.Tables": [[95, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [95, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [95, 2, 1, "", "add_table_column"], [95, 2, 1, "", "add_table_row"], [95, 2, 1, "", "clear_table"], [95, 2, 1, "", "copy_table"], [95, 2, 1, "", "create_table"], [95, 2, 1, "", "export_table"], [95, 2, 1, "", "filter_empty_rows"], [95, 2, 1, "", "filter_table_by_column"], [95, 2, 1, "", "filter_table_with_keyword"], [95, 2, 1, "", "find_table_rows"], [95, 2, 1, "", "get_table_cell"], [95, 2, 1, "", "get_table_column"], [95, 2, 1, "", "get_table_dimensions"], [95, 2, 1, "", "get_table_row"], [95, 2, 1, "", "get_table_slice"], [95, 2, 1, "", "group_table_by_column"], [95, 2, 1, "", "map_column_values"], [95, 2, 1, "", "merge_tables"], [95, 2, 1, "", "pop_table_column"], [95, 2, 1, "", "pop_table_row"], [95, 2, 1, "", "read_table_from_csv"], [95, 2, 1, "", "rename_table_columns"], [95, 2, 1, "", "set_row_as_column_names"], [95, 2, 1, "", "set_table_cell"], [95, 2, 1, "", "set_table_column"], [95, 2, 1, "", "set_table_row"], [95, 2, 1, "", "sort_table_by_column"], [95, 2, 1, "", "table_head"], [95, 2, 1, "", "table_tail"], [95, 2, 1, "", "trim_column_names"], [95, 2, 1, "", "trim_empty_rows"], [95, 2, 1, "", "write_table_to_csv"]], "RPA.Twitter": [[98, 0, 1, "", "Twitter"]], "RPA.Twitter.Twitter": [[98, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [98, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [98, 2, 1, "", "authorize"], [98, 2, 1, "", "follow"], [98, 2, 1, "", "get_me"], [98, 2, 1, "", "get_user_profile"], [98, 2, 1, "", "get_user_tweets"], [98, 2, 1, "", "like"], [98, 2, 1, "", "text_search_tweets"], [98, 2, 1, "", "tweet"], [98, 2, 1, "", "unfollow"], [98, 2, 1, "", "unlike"]], "RPA.Windows": [[100, 0, 1, "", "Windows"]], "RPA.Windows.Windows": [[100, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [100, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [100, 1, 1, "", "SIMULATE_MOVE"], [100, 2, 1, "", "add_library_components"], [100, 2, 1, "", "get_keyword_arguments"], [100, 2, 1, "", "get_keyword_documentation"], [100, 2, 1, "", "get_keyword_names"], [100, 2, 1, "", "get_keyword_source"], [100, 2, 1, "", "get_keyword_tags"], [100, 2, 1, "", "get_keyword_types"], [100, 2, 1, "", "run_keyword"]], "RPA.Word.Application": [[102, 0, 1, "", "Application"]], "RPA.Word.Application.Application": [[102, 1, 1, "", "APP_DISPATCH"], [102, 1, 1, "", "FILEFORMATS"], [102, 1, 1, "", "ROBOT_LIBRARY_DOC_FORMAT"], [102, 1, 1, "", "ROBOT_LIBRARY_SCOPE"], [102, 3, 1, "", "app"], [102, 2, 1, "", "close_document"], [102, 2, 1, "", "create_new_document"], [102, 2, 1, "", "export_to_pdf"], [102, 2, 1, "", "get_all_texts"], [102, 2, 1, "", "open_application"], [102, 2, 1, "", "open_file"], [102, 2, 1, "", "quit_application"], [102, 2, 1, "", "replace_text"], [102, 2, 1, "", "save_document"], [102, 2, 1, "", "save_document_as"], [102, 2, 1, "", "set_footer"], [102, 2, 1, "", "set_header"], [102, 2, 1, "", "write_text"]]}, "objtypes": {"0": "py:class", "1": "py:attribute", "2": "py:method", "3": "py:property"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "attribute", "Python attribute"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"]}, "titleterms": {"project": [0, 3], "convent": 0, "name": 0, "version": [0, 104], "control": [0, 55], "avail": 0, "document": [0, 3], "code": 0, "format": 0, "test": 0, "continu": 0, "integr": 0, "chang": 0, "log": 0, "other": 0, "issu": 0, "type": [0, 55], "hint": 0, "contribut": [1, 3], "guid": 1, "report": 1, "bug": 1, "request": 1, "enhanc": 1, "submit": 1, "content": [1, 3], "todo": 2, "rpa": [2, 3, 103, 104], "databas": [2, 22, 23], "desktop": [2, 24, 25, 26, 28, 30], "window": [2, 30, 31, 99, 100], "keyword": [2, 4, 6, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 97, 99, 101], "applic": [2, 44, 45, 72, 73, 101, 102], "finder": 2, "mous": 2, "screen": 2, "email": [2, 40, 42], "exchang": [2, 40, 41], "imapsmtp": [2, 42, 43], "excel": [2, 44, 45, 46, 47, 102], "file": [2, 46, 47], "filesystem": [2, 48, 49], "json": [2, 60, 61], "javaaccessbridg": [2, 58, 59], "msgraph": [2, 64, 65], "robocorp": [2, 76, 78, 80, 82], "process": [2, 76, 77], "smartsheet": [2, 92, 93], "task": [2, 96], "framework": [3, 103, 104], "tabl": [3, 94, 95], "introduct": 3, "link": 3, "packag": [3, 104], "librari": 3, "instal": [3, 9], "browser": [3, 8, 9, 10, 11], "playwright": [3, 9], "exampl": [3, 61], "support": [3, 61], "contact": 3, "develop": 3, "licens": 3, "indic": 3, "archiv": [4, 5], "python": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "api": [5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 98, 100, 102], "assist": [6, 7], "instruct": 9, "conda": 9, "yaml": 9, "pip": 9, "selenium": [10, 11], "calendar": [12, 13], "cloud": [14, 16, 18], "aw": [14, 15], "azur": [16, 17], "googl": [18, 19, 104], "crypto": [20, 21], "clipboard": [26, 27], "operatingsystem": [28, 29], "dialog": [32, 33], "documentai": [34, 35, 36, 38], "base64ai": [36, 37], "nanonet": [38, 39], "ftp": [50, 51], "http": [52, 53], "hubspot": [54, 55], "us": 55, "date": 55, "time": 55, "when": 55, "search": 55, "batch": 55, "input": 55, "inform": [55, 61], "cach": 55, "custom": 55, "object": [55, 93], "refer": 55, "attribut": 55, "access": 55, "definit": 55, "simplepublicobject": 55, "simplepublicobjectwithassoci": 55, "associatedid": 55, "collectionresponseassociatedid": 55, "pipelin": 55, "pipelinestag": 55, "publicown": 55, "publicteam": 55, "return": 55, "properti": 55, "associ": 55, "text": 55, "base": 55, "queri": 55, "imag": [56, 57], "serial": 61, "about": 61, "jsonpath": 61, "syntax": 61, "express": 61, "function": 61, "addit": 61, "mfa": [62, 63], "netsuit": [66, 67], "notifi": [68, 69], "openai": [70, 71], "outlook": [72, 73], "pdf": [74, 75], "storag": 78, "secret": [79, 81], "vault": 80, "workitem": 82, "robotloglisten": [84, 85], "salesforc": [86, 87], "sap": [88, 89], "slack": [90, 91], "get": 93, "start": 93, "work": 93, "sheet": 93, "nativ": 93, "twitter": [97, 98], "word": 101, "robo": [103, 104], "releas": 104, "note": 104, "latest": 104, "upcom": 104, "27": 104, "5": 104, "1": 104, "01": 104, "nov": 104, "2023": 104, "0": 104, "24": 104, "oct": 104, "4": 104, "2": 104, "13": 104, "11": 104, "3": 104, "10": 104, "06": 104, "29": 104, "sep": 104, "26": 104, "15": 104, "14": 104, "07": 104, "04": 104, "aug": 104, "22": 104, "18": 104, "25": 104, "jul": 104, "23": 104, "jun": 104, "28": 104, "09": 104, "02": 104, "19": 104, "mai": 104, "12": 104, "05": 104, "apr": 104, "mar": 104, "08": 104, "03": 104, "feb": 104, "21": 104, "20": 104, "17": 104, "jan": 104, "dec": 104, "2022": 104, "7": 104, "6": 104, "30": 104, "16": 104, "31": 104, "9": 104, "8": 104, "secur": 104, "all": 104, "2021": 104, "rpaframework": 104}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Project conventions": [[0, "project-conventions"]], "Naming": [[0, "naming"]], "Version Control": [[0, "version-control"]], "Availability": [[0, "availability"]], "Documentation": [[0, "documentation"], [3, "documentation"]], "Code Formatting": [[0, "code-formatting"]], "Testing": [[0, "testing"]], "Continuous Integration": [[0, "continuous-integration"]], "Change Log": [[0, "change-log"]], "Versioning": [[0, "versioning"]], "Other issues": [[0, "other-issues"]], "Type hinting": [[0, "type-hinting"]], "Contribution guide": [[1, "contribution-guide"]], "Reporting bugs": [[1, "reporting-bugs"]], "Requesting enhancements": [[1, "requesting-enhancements"]], "Submitting content": [[1, "submitting-content"]], "TODO": [[2, "todo"]], "RPA.Database:": [[2, "rpa-database"]], "RPA.Desktop.Windows:": [[2, "rpa-desktop-windows"]], "RPA.Desktop.keywords.application:": [[2, "rpa-desktop-keywords-application"]], "RPA.Desktop.keywords.finder:": [[2, "rpa-desktop-keywords-finder"]], "RPA.Desktop.keywords.mouse:": [[2, "rpa-desktop-keywords-mouse"]], "RPA.Desktop.keywords.screen:": [[2, "rpa-desktop-keywords-screen"]], "RPA.Email.Exchange:": [[2, "rpa-email-exchange"]], "RPA.Email.ImapSmtp:": [[2, "rpa-email-imapsmtp"]], "RPA.Excel.Files:": [[2, "rpa-excel-files"]], "RPA.FileSystem:": [[2, "rpa-filesystem"]], "RPA.JSON:": [[2, "rpa-json"]], "RPA.JavaAccessBridge:": [[2, "rpa-javaaccessbridge"]], "RPA.MSGraph:": [[2, "rpa-msgraph"]], "RPA.Robocorp.Process:": [[2, "rpa-robocorp-process"]], "RPA.Smartsheet:": [[2, "rpa-smartsheet"]], "RPA.Tasks:": [[2, "rpa-tasks"]], "RPA.application:": [[2, "rpa-application"]], "RPA Framework": [[3, "rpa-framework"], [103, "id2"], [104, "id2"]], "Table of Contents": [[3, "table-of-contents"]], "Introduction": [[3, "introduction"]], "Links": [[3, "links"]], "Packages": [[3, "packages"]], "Libraries": [[3, "libraries"], [3, null]], "Installation of RPA.Browser.Playwright": [[3, "installation-of-rpa-browser-playwright"]], "Installation": [[3, "installation"]], "Example": [[3, "example"]], "Support and contact": [[3, "support-and-contact"]], "Contributing": [[3, "contributing"]], "Development": [[3, "development"]], "License": [[3, "license"]], "Project": [[3, null]], "Indices and tables": [[3, "indices-and-tables"]], "Archive": [[4, "archive"], [5, "archive"]], "Keywords": [[4, "keywords"], [6, "keywords"], [9, "keywords"], [10, "keywords"], [12, "keywords"], [14, "keywords"], [16, "keywords"], [18, "keywords"], [20, "keywords"], [22, "keywords"], [24, "keywords"], [26, "keywords"], [28, "keywords"], [30, "keywords"], [32, "keywords"], [34, "keywords"], [36, "keywords"], [38, "keywords"], [40, "keywords"], [42, "keywords"], [44, "keywords"], [46, "keywords"], [48, "keywords"], [50, "keywords"], [52, "keywords"], [54, "keywords"], [56, "keywords"], [58, "keywords"], [60, "keywords"], [62, "keywords"], [64, "keywords"], [66, "keywords"], [68, "keywords"], [70, "keywords"], [72, "keywords"], [74, "keywords"], [76, "keywords"], [78, "keywords"], [80, "keywords"], [82, "keywords"], [84, "keywords"], [86, "keywords"], [88, "keywords"], [90, "keywords"], [92, "keywords"], [94, "keywords"], [96, "keywords"], [97, "keywords"], [99, "keywords"], [101, "keywords"]], "Python API": [[5, "python-api"], [7, "python-api"], [11, "python-api"], [13, "python-api"], [15, "python-api"], [17, "python-api"], [19, "python-api"], [21, "python-api"], [23, "python-api"], [25, "python-api"], [27, "python-api"], [29, "python-api"], [31, "python-api"], [33, "python-api"], [35, "python-api"], [37, "python-api"], [39, "python-api"], [41, "python-api"], [43, "python-api"], [45, "python-api"], [47, "python-api"], [49, "python-api"], [51, "python-api"], [53, "python-api"], [55, "python-api"], [57, "python-api"], [59, "python-api"], [61, "python-api"], [63, "python-api"], [65, "python-api"], [67, "python-api"], [69, "python-api"], [71, "python-api"], [73, "python-api"], [75, "python-api"], [77, "python-api"], [79, "python-api"], [81, "python-api"], [83, "python-api"], [85, "python-api"], [87, "python-api"], [89, "python-api"], [91, "python-api"], [93, "python-api"], [95, "python-api"], [98, "python-api"], [100, "python-api"], [102, "python-api"]], "Assistant": [[6, "assistant"], [7, "assistant"]], "Browser": [[8, "browser"]], "Browser.Playwright": [[9, "browser-playwright"]], "Install instructions": [[9, "install-instructions"]], "conda.yaml": [[9, "conda-yaml"]], "pip": [[9, "pip"]], "Browser.Selenium": [[10, "browser-selenium"], [11, "browser-selenium"]], "}": [[11, "id11"]], "Calendar": [[12, "calendar"], [13, "calendar"]], "Cloud.AWS": [[14, "cloud-aws"]], "AWS": [[15, "aws"]], "Cloud.Azure": [[16, "cloud-azure"]], "Azure": [[17, "azure"]], "Cloud.Google": [[18, "cloud-google"]], "Google": [[19, "google"]], "Crypto": [[20, "crypto"], [21, "crypto"]], "Database": [[22, "database"], [23, "database"]], "Desktop": [[24, "desktop"], [25, "desktop"]], "Desktop.Clipboard": [[26, "desktop-clipboard"]], "Clipboard": [[27, "clipboard"]], "Desktop.OperatingSystem": [[28, "desktop-operatingsystem"]], "OperatingSystem": [[29, "operatingsystem"]], "Desktop.Windows": [[30, "desktop-windows"]], "Windows": [[31, "windows"], [99, "windows"], [100, "windows"]], "Dialogs": [[32, "dialogs"], [33, "dialogs"]], "DocumentAI": [[34, "documentai"], [35, "documentai"]], "DocumentAI.Base64AI": [[36, "documentai-base64ai"]], "Base64AI": [[37, "base64ai"]], "DocumentAI.Nanonets": [[38, "documentai-nanonets"]], "Nanonets": [[39, "nanonets"]], "Email.Exchange": [[40, "email-exchange"]], "Exchange": [[41, "exchange"]], "Email.ImapSmtp": [[42, "email-imapsmtp"]], "ImapSmtp": [[43, "imapsmtp"]], "Excel.Application": [[44, "excel-application"], [45, "excel-application"], [102, "excel-application"]], "Excel.Files": [[46, "excel-files"], [47, "excel-files"]], "FileSystem": [[48, "filesystem"], [49, "filesystem"]], "FTP": [[50, "ftp"], [51, "ftp"]], "HTTP": [[52, "http"], [53, "http"]], "HubSpot": [[54, "hubspot"]], "Hubspot": [[55, "hubspot"]], "Using Date Times When Searching": [[55, "using-date-times-when-searching"]], "Batch Inputs": [[55, "batch-inputs"]], "Information Caching": [[55, "information-caching"]], "Custom Object Types": [[55, "custom-object-types"]], "HubSpot Object Reference": [[55, "hubspot-object-reference"]], "Attribute Access": [[55, "attribute-access"]], "Attribute Definitions": [[55, "attribute-definitions"]], "SimplePublicObject": [[55, "simplepublicobject"]], "SimplePublicObjectWithAssociations": [[55, "simplepublicobjectwithassociations"]], "AssociatedId": [[55, "associatedid"]], "CollectionResponseAssociatedId": [[55, "collectionresponseassociatedid"]], "Pipeline": [[55, "pipeline"]], "PipelineStage": [[55, "pipelinestage"]], "PublicOwner": [[55, "publicowner"]], "PublicTeam": [[55, "publicteam"]], "Object Searching": [[55, "object-searching"]], "Controlling Returned Properties": [[55, "controlling-returned-properties"]], "Using Associations": [[55, "using-associations"]], "Text-based Search Query": [[55, "text-based-search-query"]], "Images": [[56, "images"], [57, "images"]], "JavaAccessBridge": [[58, "javaaccessbridge"], [59, "javaaccessbridge"]], "JSON": [[60, "json"], [61, "json"]], "Serialization": [[61, "serialization"]], "About JSONPath": [[61, "about-jsonpath"]], "Syntax example": [[61, "syntax-example"]], "Supported Expressions": [[61, "supported-expressions"]], "Functions": [[61, "functions"]], "Additional Information": [[61, "additional-information"]], "MFA": [[62, "mfa"], [63, "mfa"]], "MSGraph": [[64, "msgraph"], [65, "msgraph"]], "Netsuite": [[66, "netsuite"], [67, "netsuite"]], "Notifier": [[68, "notifier"], [69, "notifier"]], "OpenAI": [[70, "openai"], [71, "openai"]], "Outlook.Application": [[72, "outlook-application"], [73, "outlook-application"]], "PDF": [[74, "pdf"], [75, "pdf"]], "Robocorp.Process": [[76, "robocorp-process"]], "Process": [[77, "process"]], "Robocorp.Storage": [[78, "robocorp-storage"]], "Secrets": [[79, "secrets"], [81, "secrets"]], "Robocorp.Vault": [[80, "robocorp-vault"]], "Robocorp.WorkItems": [[82, "robocorp-workitems"]], "RobotLogListener": [[84, "robotloglistener"], [85, "robotloglistener"]], "Salesforce": [[86, "salesforce"], [87, "salesforce"]], "SAP": [[88, "sap"], [89, "sap"]], "Slack": [[90, "slack"], [91, "slack"]], "Smartsheet": [[92, "smartsheet"], [93, "smartsheet"]], "Getting started": [[93, "getting-started"]], "Working on a sheet": [[93, "working-on-a-sheet"]], "Native Smartsheet objects": [[93, "native-smartsheet-objects"]], "Tables": [[94, "tables"], [95, "tables"]], "Tasks": [[96, "tasks"]], "Twitter": [[97, "twitter"], [98, "twitter"]], "Word.Application": [[101, "word-application"]], "Robo": [[103, "id1"], [104, "id1"]], "Release notes": [[104, "release-notes"]], "Latest versions": [[104, "latest-versions"]], "Upcoming release": [[104, "id3"]], "Released": [[104, "id4"]], "27.5.1 - 01 Nov 2023": [[104, "nov-2023"]], "27.5.0 - 24 Oct 2023": [[104, "oct-2023"]], "27.4.2 - 13 Oct 2023": [[104, "id5"]], "27.4.1 - 11 Oct 2023": [[104, "id6"]], "27.4.0 - 11 Oct 2023": [[104, "id7"]], "27.3.1 - 10 Oct 2023": [[104, "id8"]], "06 Oct 2023": [[104, "id9"]], "27.3.0 - 29 Sep 2023": [[104, "sep-2023"]], "27 Sep 2023": [[104, "id10"]], "27.2.0 - 26 Sep 2023": [[104, "id11"]], "27.1.0 - 15 Sep 2023": [[104, "id12"]], "14 Sep 2023": [[104, "id13"]], "27.0.1 - 11 Sep 2023": [[104, "id14"]], "27.0.0 - 07 Sep 2023": [[104, "id15"]], "26.1.1 - 07 Sep 2023": [[104, "id16"]], "04 Sep 2023": [[104, "id17"]], "24 Aug 2023": [[104, "aug-2023"]], "26.1.0 - 24 Aug 2023": [[104, "id18"]], "26.0.3 - 24 Aug 2023": [[104, "id19"]], "26.0.2 - 24 Aug 2023": [[104, "id20"]], "26.0.1 - 22 Aug 2023": [[104, "id21"]], "26.0.0 - 18 Aug 2023": [[104, "id22"]], "25.0.1 - 11 Aug 2023": [[104, "id23"]], "25.0.0 - 10 Aug 2023": [[104, "id24"]], "24.1.2 - 27 Jul 2023": [[104, "jul-2023"]], "24.1.1 - 26 Jul 2023": [[104, "id25"]], "24.1.0 - 25 Jul 2023": [[104, "id26"]], "24.0.0 - 18 Jul 2023": [[104, "id27"]], "23.5.2 - 29 Jun 2023": [[104, "jun-2023"]], "23.5.1 - 28 Jun 2023": [[104, "id28"]], "23.5.0 - 27 Jun 2023": [[104, "id29"]], "23.4.0 - 22 Jun 2023": [[104, "id30"]], "09 Jun 2023": [[104, "id31"]], "23.3.0 - 09 Jun 2023": [[104, "id32"]], "23.2.1 - 02 Jun 2023": [[104, "id33"]], "23.2.0 - 02 Jun 2023": [[104, "id34"]], "01 Jun 2023": [[104, "id35"]], "23.1.0 - 19 May 2023": [[104, "may-2023"]], "12 May 2023": [[104, "id36"]], "23.0.0 - 05 May 2023": [[104, "id37"]], "04 May 2023": [[104, "id38"]], "22.5.3 - 02 May 2023": [[104, "id39"]], "22.5.2 - 13 Apr 2023": [[104, "apr-2023"]], "22.5.1 - 07 Apr 2023": [[104, "id40"]], "22.5.0 - 05 Apr 2023": [[104, "id41"]], "04 Apr 2023": [[104, "id42"]], "22.4.0 - 29 Mar 2023": [[104, "mar-2023"]], "22.3.0 - 22 Mar 2023": [[104, "id43"]], "22.2.3 - 15 Mar 2023": [[104, "id44"]], "14 Mar 2023": [[104, "id45"]], "22.2.2 - 13 Mar 2023": [[104, "id46"]], "22.2.1 - 09 Mar 2023": [[104, "id47"]], "22.2.0 - 09 Mar 2023": [[104, "id48"]], "08 Mar 2023": [[104, "id49"]], "22.1.1 - 06 Mar 2023": [[104, "id50"]], "22.1.0 - 06 Mar 2023": [[104, "id51"]], "22.0.1 - 03 Mar 2023": [[104, "id52"]], "02 Mar 2023": [[104, "id53"]], "28 Feb 2023": [[104, "feb-2023"]], "22 Feb 2023": [[104, "id54"]], "21 Feb 2023": [[104, "id55"]], "22.0.0 - 20 Feb 2023": [[104, "id56"]], "20 Feb 2023": [[104, "id57"]], "17 Feb 2023": [[104, "id58"]], "21.1.1 - 15 Feb 2023": [[104, "id59"]], "21.1.0 - 09 Feb 2023": [[104, "id60"]], "08 Feb 2023": [[104, "id61"]], "21.0.1 - 03 Feb 2023": [[104, "id62"]], "21.0.0 - 01 Feb 2023": [[104, "id63"]], "20.1.2 - 26 Jan 2023": [[104, "jan-2023"]], "20.1.1 - 26 Jan 2023": [[104, "id64"]], "20.1.0 - 19 Jan 2023": [[104, "id65"]], "20.0.2 - 10 Jan 2023": [[104, "id66"]], "20.0.1 - 10 Jan 2023": [[104, "id67"]], "20.0.0 - 09 Jan 2023": [[104, "id68"]], "19.4.2 - 21 Dec 2022": [[104, "dec-2022"]], "19.4.1 - 09 Dec 2022": [[104, "id69"]], "19.4.0 - 08 Dec 2022": [[104, "id70"]], "19.3.1 - 29 Nov 2022": [[104, "nov-2022"]], "19.3.0 - 28 Nov 2022": [[104, "id71"]], "19.2.0 - 17 Nov 2022": [[104, "id72"]], "19.1.2 - 17 Nov 2022": [[104, "id73"]], "19.1.1 - 04 Nov 2022": [[104, "id74"]], "19.1.0 - 03 Nov 2022": [[104, "id75"]], "19.0.0 - 27 Oct 2022": [[104, "oct-2022"]], "18.0.0 - 17 Oct 2022": [[104, "id76"]], "17.7.0 - 14 Oct 2022": [[104, "id77"]], "17.6.0 - 12 Oct 2022": [[104, "id78"]], "17.5.1 - 11 Oct 2022": [[104, "id79"]], "17.5.0 - 07 Oct 2022": [[104, "id80"]], "17.4.0 - 06 Oct 2022": [[104, "id81"]], "17.3.0 - 03 Oct 2022": [[104, "id82"]], "17.2.0 - 30 Sep 2022": [[104, "sep-2022"]], "17.1.1 - 29 Sep 2022": [[104, "id83"]], "17.1.0 - 28 Sep 2022": [[104, "id84"]], "17.0.1 - 21 Sep 2022": [[104, "id85"]], "16.3.0 - 07 Sep 2022": [[104, "id86"]], "16.2.0 - 07 Sep 2022": [[104, "id87"]], "16.1.0 - 01 Sep 2022": [[104, "id88"]], "16.0.0 - 31 Aug 2022": [[104, "aug-2022"]], "15.9.0 - 22 Aug 2022": [[104, "id89"]], "15.8.1 - 19 Aug 2022": [[104, "id90"]], "15.8.0 - 12 Aug 2022": [[104, "id91"]], "15.7.0 - 10 Aug 2022": [[104, "id92"]], "15.6.1 - 09 Aug 2022": [[104, "id93"]], "15.6.0 - 02 Aug 2022": [[104, "id94"]], "15.5.0 - 22 Jul 2022": [[104, "jul-2022"]], "15.4.0 - 13 Jul 2022": [[104, "id95"]], "15.3.0 - 08 Jul 2022": [[104, "id96"]], "15.2.0 - 05 Jul 2022": [[104, "id97"]], "15.1.4 - 23 Jun 2022": [[104, "jun-2022"]], "15.1.3 - 22 Jun 2022": [[104, "id98"]], "15.1.2 - 21 Jun 2022": [[104, "id99"]], "15.1.1 - 17 Jun 2022": [[104, "id100"]], "15.1.0 - 15 Jun 2022": [[104, "id101"]], "security release (all packages) - 27 May 2022": [[104, "security-release-all-packages-27-may-2022"]], "14.2.0 - 25 May 2022": [[104, "may-2022"]], "14.1.1 - 12 May 2022": [[104, "id102"]], "14.1.0 - 05 May 2022": [[104, "id103"]], "14.0.0 - 02 May 2022": [[104, "id104"]], "13.3.1 - 15 Apr 2022": [[104, "apr-2022"]], "13.3.0 - 14 Apr 2022": [[104, "id105"]], "13.2.0 - 08 Apr 2022": [[104, "id106"]], "13.1.0 - 07 Apr 2022": [[104, "id107"]], "13.0.3 - 05 Apr 2022": [[104, "id108"]], "13.0.2 - 04 Apr 2022": [[104, "id109"]], "13.0.1 - 01 Apr 2022": [[104, "id110"]], "13.0.0 - 28 Mar 2022": [[104, "mar-2022"]], "12.10.1 - 25 Mar 2022": [[104, "id111"]], "12.10.0 - 23 Mar 2022": [[104, "id112"]], "12.9.0 - 11 Mar 2022": [[104, "id113"]], "12.8.2 - 25 Feb 2022": [[104, "feb-2022"]], "12.8.1 - 18 Feb 2022": [[104, "id114"]], "12.8.0 - 10 Feb 2022": [[104, "id115"]], "12.7.0 - 10 Feb 2022": [[104, "id116"]], "12.6.1 - 08 Feb 2022": [[104, "id117"]], "12.6.0 - 27 Jan 2022": [[104, "jan-2022"]], "12.5.1 - 18 Jan 2022": [[104, "id118"]], "12.5.0 - 17 Jan 2022": [[104, "id119"]], "12.4.1 - 12 Jan 2022": [[104, "id120"]], "12.3.0 - 10 Jan 2022": [[104, "id125"]], "12.2.0 - 17 Dec 2021": [[104, "dec-2021"]], "12.1.2 - 14 Dec 2021": [[104, "id128"]], "12.1.1 - 7 Dec 2021": [[104, "id129"]], "12.1.0 - 7 Dec 2021": [[104, "id130"]], "Releases on 01 Dec 2021": [[104, "releases-on-01-dec-2021"]], "12.0.0 - 29 Nov 2021": [[104, "nov-2021"]], "11.6.4 - 24 Nov 2021": [[104, "id131"]], "11.6.3 - 15 Nov 2021": [[104, "id132"]], "11.6.2 - 13 Nov 2021": [[104, "id133"]], "11.6.1 - 12 Nov 2021": [[104, "id134"]], "11.6.0 - 4 Nov 2021": [[104, "id135"]], "11.5.2": [[104, "id136"]], "11.5.1": [[104, "id137"]], "11.5.0": [[104, "id138"]], "11.4.0": [[104, "id139"]], "11.3.0": [[104, "id140"]], "11.2.1": [[104, "id141"]], "11.2.0": [[104, "id142"]], "11.1.3": [[104, "id143"]], "11.1.2": [[104, "id144"]], "11.1.1": [[104, "id145"]], "11.1.0": [[104, "id146"]], "11.0.0": [[104, "id147"]], "10.9.3": [[104, "id148"]], "10.9.2": [[104, "id149"]], "10.9.0": [[104, "id150"]], "10.8.0": [[104, "id151"]], "10.7.1": [[104, "id152"]], "10.6.0": [[104, "id153"]], "10.5.0": [[104, "id154"]], "10.4.0": [[104, "id155"]], "10.3.0": [[104, "id156"]], "10.2.0": [[104, "id157"]], "rpaframework-google: 0.2.3": [[104, "rpaframework-google-0-2-3"]], "10.1.0": [[104, "id158"]], "10.0.7": [[104, "id159"]], "10.0.6": [[104, "id160"]], "10.0.5": [[104, "id161"]], "10.0.4": [[104, "id162"]], "10.0.3": [[104, "id163"]], "10.0.2": [[104, "id164"]], "10.0.1": [[104, "id165"]], "10.0.0": [[104, "id166"]], "9.6.0": [[104, "id167"]], "9.5.0": [[104, "id168"]], "9.4.0": [[104, "id169"]], "9.3.4": [[104, "id170"]], "9.3.3": [[104, "id171"]], "9.3.2": [[104, "id172"]], "9.3.1": [[104, "id173"]], "9.3.0": [[104, "id174"]], "9.2.1": [[104, "id175"]], "9.2.0": [[104, "id176"]], "9.1.0": [[104, "id177"]], "9.0.0": [[104, "id178"]], "8.2.0": [[104, "id179"]], "8.1.0": [[104, "id180"]], "8.0.1": [[104, "id181"]], "8.0.0": [[104, "id182"]], "7.6.0": [[104, "id183"]], "7.5.0": [[104, "id184"]], "7.4.2": [[104, "id185"]], "7.4.1": [[104, "id186"]], "7.4.0": [[104, "id187"]], "7.3.0": [[104, "id188"]], "7.2.0": [[104, "id189"]], "7.1.1": [[104, "id190"]], "7.1.0": [[104, "id191"]], "7.0.5": [[104, "id192"]], "7.0.4": [[104, "id193"]], "7.0.3": [[104, "id194"]], "7.0.2": [[104, "id195"]], "7.0.1": [[104, "id196"]], "7.0.0": [[104, "id197"]], "6.7.3": [[104, "id198"]], "6.7.2": [[104, "id199"]], "6.7.1": [[104, "id200"]], "6.7.0": [[104, "id201"]], "6.6.0": [[104, "id202"]], "6.5.0": [[104, "id203"]], "6.4.0": [[104, "id204"]], "6.3.1": [[104, "id205"]], "6.3.0": [[104, "id206"]], "6.2.0": [[104, "id207"]], "6.1.0": [[104, "id208"]], "6.0.2": [[104, "id209"]], "6.0.1": [[104, "id210"]], "6.0.0": [[104, "id211"]], "5.3.3": [[104, "id212"]], "5.3.2": [[104, "id213"]], "5.3.1": [[104, "id214"]], "5.3.0": [[104, "id215"]], "5.2.0": [[104, "id216"]], "5.1.0": [[104, "id217"]], "5.0.0": [[104, "id218"]], "4.2.0": [[104, "id219"]], "4.1.0": [[104, "id220"]], "4.0.0": [[104, "id221"]], "3.0.0": [[104, "id222"]], "2.7.0": [[104, "id223"]], "2.6.0": [[104, "id224"]], "2.5.1": [[104, "id225"]], "2.5.0": [[104, "id226"]], "2.4.0": [[104, "id227"]], "2.3.0": [[104, "id228"]], "2.2.0": [[104, "id229"]], "2.1.0": [[104, "id230"]], "2.0.1": [[104, "id231"]], "2.0.0": [[104, "id232"]], "1.4.0": [[104, "id233"]], "1.3.0": [[104, "id234"]], "1.2.1": [[104, "id235"]], "1.2.0": [[104, "id236"]], "1.1.0": [[104, "id237"]], "1.0.4": [[104, "id238"]], "1.0.3": [[104, "id239"]], "1.0.2": [[104, "id240"]], "1.0.1": [[104, "id241"]], "1.0.0": [[104, "id242"]], "0.11.0": [[104, "id243"]], "0.10.1": [[104, "id244"]], "0.10.0": [[104, "id245"]], "0.9.3": [[104, "id246"]], "0.9.2": [[104, "id247"]], "0.9.1": [[104, "id248"]], "0.9.0": [[104, "id249"]], "0.8.7": [[104, "id250"]], "0.8.6": [[104, "id251"]], "0.8.5": [[104, "id252"]], "0.8.4": [[104, "id253"]], "0.8.3": [[104, "id254"]], "0.8.2": [[104, "id255"]], "0.8.1": [[104, "id256"]], "0.8.0": [[104, "id257"]], "0.7.5": [[104, "id258"]], "0.7.4": [[104, "id259"]], "0.7.3": [[104, "id260"]], "0.7.2": [[104, "id261"]], "0.7.1": [[104, "id262"]]}, "indexentries": {"archive (class in rpa.archive)": [[5, "RPA.Archive.Archive"]], "robot_library_doc_format (rpa.archive.archive attribute)": [[5, "RPA.Archive.Archive.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.archive.archive attribute)": [[5, "RPA.Archive.Archive.ROBOT_LIBRARY_SCOPE"]], "add_to_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.add_to_archive"]], "archive_folder_with_tar() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.archive_folder_with_tar"]], "archive_folder_with_zip() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.archive_folder_with_zip"]], "extract_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.extract_archive"]], "extract_file_from_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.extract_file_from_archive"]], "get_archive_info() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.get_archive_info"]], "list_archive() (rpa.archive.archive method)": [[5, "RPA.Archive.Archive.list_archive"]], "assistant (class in rpa.assistant)": [[7, "RPA.Assistant.Assistant"]], "robot_auto_keywords (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.assistant.assistant attribute)": [[7, "RPA.Assistant.Assistant.ROBOT_LIBRARY_SCOPE"]], "add_button() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_button"]], "add_checkbox() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_checkbox"]], "add_date_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_date_input"]], "add_drop_down() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_drop_down"]], "add_file() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_file"]], "add_file_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_file_input"]], "add_files() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_files"]], "add_flet_icon() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_flet_icon"]], "add_heading() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_heading"]], "add_hidden_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_hidden_input"]], "add_icon() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_icon"]], "add_image() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_image"]], "add_link() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_link"]], "add_loading_bar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_loading_bar"]], "add_loading_spinner() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_loading_spinner"]], "add_next_ui_button() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_next_ui_button"]], "add_password_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_password_input"]], "add_radio_buttons() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_radio_buttons"]], "add_slider() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_slider"]], "add_submit_buttons() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_submit_buttons"]], "add_text() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_text"]], "add_text_input() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.add_text_input"]], "ask_user() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.ask_user"]], "clear_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.clear_dialog"]], "close_column() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_column"]], "close_container() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_container"]], "close_navbar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_navbar"]], "close_row() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_row"]], "close_stack() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.close_stack"]], "open_column() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_column"]], "open_container() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_container"]], "open_navbar() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_navbar"]], "open_row() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_row"]], "open_stack() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.open_stack"]], "refresh_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.refresh_dialog"]], "run_dialog() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.run_dialog"]], "set_title() (rpa.assistant.assistant method)": [[7, "RPA.Assistant.Assistant.set_title"]], "available_options (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.AVAILABLE_OPTIONS"]], "available_services (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.AVAILABLE_SERVICES"]], "browser_names (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.BROWSER_NAMES"]], "chromium_browsers (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.CHROMIUM_BROWSERS"]], "robot_library_doc_format (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_SCOPE"]], "robot_library_version (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.ROBOT_LIBRARY_VERSION"]], "supported_browsers (rpa.browser.selenium.selenium attribute)": [[11, "RPA.Browser.Selenium.Selenium.SUPPORTED_BROWSERS"]], "selenium (class in rpa.browser.selenium)": [[11, "RPA.Browser.Selenium.Selenium"]], "add_library_components() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.add_library_components"]], "attach_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.attach_chrome_browser"]], "clear_all_highlights() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.clear_all_highlights"]], "click_button_when_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_button_when_visible"]], "click_element_if_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_if_visible"]], "click_element_when_clickable() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_when_clickable"]], "click_element_when_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.click_element_when_visible"]], "does_alert_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_alert_contain"]], "does_alert_not_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_alert_not_contain"]], "does_element_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_element_contain"]], "does_frame_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_frame_contain"]], "does_location_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_location_contain"]], "does_page_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain"]], "does_page_contain_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_button"]], "does_page_contain_checkbox() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_checkbox"]], "does_page_contain_element() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_element"]], "does_page_contain_image() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_image"]], "does_page_contain_link() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_link"]], "does_page_contain_list() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_list"]], "does_page_contain_radio_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_radio_button"]], "does_page_contain_textfield() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_page_contain_textfield"]], "does_table_cell_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_cell_contain"]], "does_table_column_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_column_contain"]], "does_table_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_contain"]], "does_table_footer_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_footer_contain"]], "does_table_header_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_header_contain"]], "does_table_row_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_table_row_contain"]], "does_textarea_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_textarea_contain"]], "does_textfield_contain() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.does_textfield_contain"]], "driver (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.driver"]], "execute_cdp() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.execute_cdp"]], "failure_occurred() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.failure_occurred"]], "find_element() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.find_element"]], "find_elements() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.find_elements"]], "get_browser_capabilities() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_browser_capabilities"]], "get_element_status() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_element_status"]], "get_keyword_arguments() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_arguments"]], "get_keyword_documentation() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_documentation"]], "get_keyword_names() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_names"]], "get_keyword_source() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_source"]], "get_keyword_tags() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_tags"]], "get_keyword_types() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_keyword_types"]], "get_testability_status() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_testability_status"]], "get_webelement() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.get_webelement"]], "highlight_elements() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.highlight_elements"]], "input_text_when_element_is_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.input_text_when_element_is_visible"]], "is_alert_present() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_alert_present"]], "is_checkbox_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_checkbox_selected"]], "is_chromium (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.is_chromium"]], "is_element_attribute_equal_to() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_attribute_equal_to"]], "is_element_disabled() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_disabled"]], "is_element_enabled() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_enabled"]], "is_element_focused() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_focused"]], "is_element_text() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_text"]], "is_element_visible() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_element_visible"]], "is_list_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_list_selected"]], "is_list_selection() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_list_selection"]], "is_location() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_location"]], "is_radio_button_selected() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_radio_button_selected"]], "is_radio_button_set_to() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_radio_button_set_to"]], "is_textarea_value() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_textarea_value"]], "is_textfield_value() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_textfield_value"]], "is_title() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.is_title"]], "location (rpa.browser.selenium.selenium property)": [[11, "RPA.Browser.Selenium.Selenium.location"]], "normalize_options() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.normalize_options"]], "open_available_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_available_browser"]], "open_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_chrome_browser"]], "open_headless_chrome_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_headless_chrome_browser"]], "open_user_browser() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.open_user_browser"]], "print_to_pdf() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.print_to_pdf"]], "register_driver() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.register_driver"]], "run_keyword() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.run_keyword"]], "screenshot() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.screenshot"]], "set_download_directory() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.set_download_directory"]], "set_element_attribute() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.set_element_attribute"]], "wait_and_click_button() (rpa.browser.selenium.selenium method)": [[11, "RPA.Browser.Selenium.Selenium.wait_and_click_button"]], "calendar (class in rpa.calendar)": [[13, "RPA.Calendar.Calendar"]], "robot_auto_keywords (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.calendar.calendar attribute)": [[13, "RPA.Calendar.Calendar.ROBOT_LIBRARY_SCOPE"]], "add_custom_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.add_custom_holidays"]], "compare_times() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.compare_times"]], "create_time() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.create_time"]], "first_business_day_of_the_month() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.first_business_day_of_the_month"]], "get_iso_calendar() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.get_iso_calendar"]], "is_the_date_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.is_the_date_business_day"]], "is_the_date_holiday() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.is_the_date_holiday"]], "last_business_day_of_the_month() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.last_business_day_of_the_month"]], "reset_custom_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.reset_custom_holidays"]], "return_holidays() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_holidays"]], "return_next_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_next_business_day"]], "return_previous_business_day() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.return_previous_business_day"]], "set_business_days() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.set_business_days"]], "set_locale() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.set_locale"]], "sort_list_of_dates() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.sort_list_of_dates"]], "time_difference() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference"]], "time_difference_between_timezones() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_between_timezones"]], "time_difference_in_days() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_days"]], "time_difference_in_hours() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_hours"]], "time_difference_in_minutes() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_minutes"]], "time_difference_in_months() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_difference_in_months"]], "time_now() (rpa.calendar.calendar method)": [[13, "RPA.Calendar.Calendar.time_now"]], "aws (class in rpa.cloud.aws)": [[15, "RPA.Cloud.AWS.AWS"]], "robot_library_doc_format (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.ROBOT_LIBRARY_SCOPE"]], "analyze_document() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.analyze_document"]], "assume_role() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.assume_role"]], "clients (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.clients"]], "convert_textract_response_to_model() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.convert_textract_response_to_model"]], "create_bucket() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_bucket"]], "create_queue() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_queue"]], "create_redshift_statement_parameters() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.create_redshift_statement_parameters"]], "delete_bucket() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_bucket"]], "delete_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_files"]], "delete_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_message"]], "delete_queue() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.delete_queue"]], "describe_redshift_table() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.describe_redshift_table"]], "detect_document_text() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_document_text"]], "detect_entities() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_entities"]], "detect_sentiment() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.detect_sentiment"]], "download_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.download_files"]], "execute_redshift_statement() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.execute_redshift_statement"]], "execute_redshift_statement_asyncronously() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.execute_redshift_statement_asyncronously"]], "generate_presigned_url() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.generate_presigned_url"]], "get_cells() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_cells"]], "get_document_analysis() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_document_analysis"]], "get_document_text_detection() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_document_text_detection"]], "get_pages_and_text() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_pages_and_text"]], "get_redshift_statement_results() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_redshift_statement_results"]], "get_tables() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_tables"]], "get_words() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.get_words"]], "init_comprehend_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_comprehend_client"]], "init_redshift_data_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_redshift_data_client"]], "init_s3_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_s3_client"]], "init_sqs_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_sqs_client"]], "init_sts_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_sts_client"]], "init_textract_client() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.init_textract_client"]], "list_buckets() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_buckets"]], "list_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_files"]], "list_redshift_databases() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_databases"]], "list_redshift_schemas() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_schemas"]], "list_redshift_tables() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.list_redshift_tables"]], "logger (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.logger"]], "receive_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.receive_message"]], "region (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.region"]], "robocorp_vault_name (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.robocorp_vault_name"]], "send_message() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.send_message"]], "services (rpa.cloud.aws.aws attribute)": [[15, "RPA.Cloud.AWS.AWS.services"]], "set_robocorp_vault() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.set_robocorp_vault"]], "start_document_analysis() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.start_document_analysis"]], "start_document_text_detection() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.start_document_text_detection"]], "upload_file() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.upload_file"]], "upload_files() (rpa.cloud.aws.aws method)": [[15, "RPA.Cloud.AWS.AWS.upload_files"]], "azure (class in rpa.cloud.azure)": [[17, "RPA.Cloud.Azure.Azure"]], "robot_library_doc_format (rpa.cloud.azure.azure attribute)": [[17, "RPA.Cloud.Azure.Azure.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.azure.azure attribute)": [[17, "RPA.Cloud.Azure.Azure.ROBOT_LIBRARY_SCOPE"]], "google (class in rpa.cloud.google)": [[19, "RPA.Cloud.Google.Google"]], "robot_library_doc_format (rpa.cloud.google.google attribute)": [[19, "RPA.Cloud.Google.Google.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.cloud.google.google attribute)": [[19, "RPA.Cloud.Google.Google.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.add_library_components"]], "get_keyword_arguments() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_arguments"]], "get_keyword_documentation() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_documentation"]], "get_keyword_names() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_names"]], "get_keyword_source() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_source"]], "get_keyword_tags() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_tags"]], "get_keyword_types() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.get_keyword_types"]], "run_keyword() (rpa.cloud.google.google method)": [[19, "RPA.Cloud.Google.Google.run_keyword"]], "crypto (class in rpa.crypto)": [[21, "RPA.Crypto.Crypto"]], "robot_library_doc_format (rpa.crypto.crypto attribute)": [[21, "RPA.Crypto.Crypto.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.crypto.crypto attribute)": [[21, "RPA.Crypto.Crypto.ROBOT_LIBRARY_SCOPE"]], "decrypt_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.decrypt_file"]], "decrypt_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.decrypt_string"]], "encrypt_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.encrypt_file"]], "encrypt_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.encrypt_string"]], "generate_key() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.generate_key"]], "hash_file() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.hash_file"]], "hash_string() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.hash_string"]], "use_encryption_key() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.use_encryption_key"]], "use_encryption_key_from_vault() (rpa.crypto.crypto method)": [[21, "RPA.Crypto.Crypto.use_encryption_key_from_vault"]], "database (class in rpa.database)": [[23, "RPA.Database.Database"]], "robot_library_doc_format (rpa.database.database attribute)": [[23, "RPA.Database.Database.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.database.database attribute)": [[23, "RPA.Database.Database.ROBOT_LIBRARY_SCOPE"]], "call_stored_procedure() (rpa.database.database method)": [[23, "RPA.Database.Database.call_stored_procedure"]], "connect_to_database() (rpa.database.database method)": [[23, "RPA.Database.Database.connect_to_database"]], "description() (rpa.database.database method)": [[23, "RPA.Database.Database.description"]], "disconnect_from_database() (rpa.database.database method)": [[23, "RPA.Database.Database.disconnect_from_database"]], "execute_sql_script() (rpa.database.database method)": [[23, "RPA.Database.Database.execute_sql_script"]], "get_number_of_rows() (rpa.database.database method)": [[23, "RPA.Database.Database.get_number_of_rows"]], "get_rows() (rpa.database.database method)": [[23, "RPA.Database.Database.get_rows"]], "query() (rpa.database.database method)": [[23, "RPA.Database.Database.query"]], "set_auto_commit() (rpa.database.database method)": [[23, "RPA.Database.Database.set_auto_commit"]], "desktop (class in rpa.desktop)": [[25, "RPA.Desktop.Desktop"]], "robot_library_doc_format (rpa.desktop.desktop attribute)": [[25, "RPA.Desktop.Desktop.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.desktop attribute)": [[25, "RPA.Desktop.Desktop.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.add_library_components"]], "get_keyword_arguments() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_arguments"]], "get_keyword_documentation() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_documentation"]], "get_keyword_names() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_names"]], "get_keyword_source() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_source"]], "get_keyword_tags() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_tags"]], "get_keyword_types() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.get_keyword_types"]], "run_keyword() (rpa.desktop.desktop method)": [[25, "RPA.Desktop.Desktop.run_keyword"]], "clipboard (class in rpa.desktop.clipboard)": [[27, "RPA.Desktop.Clipboard.Clipboard"]], "robot_library_doc_format (rpa.desktop.clipboard.clipboard attribute)": [[27, "RPA.Desktop.Clipboard.Clipboard.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.clipboard.clipboard attribute)": [[27, "RPA.Desktop.Clipboard.Clipboard.ROBOT_LIBRARY_SCOPE"]], "clear_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.clear_clipboard"]], "copy_to_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.copy_to_clipboard"]], "paste_from_clipboard() (rpa.desktop.clipboard.clipboard method)": [[27, "RPA.Desktop.Clipboard.Clipboard.paste_from_clipboard"]], "operatingsystem (class in rpa.desktop.operatingsystem)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem"]], "robot_library_doc_format (rpa.desktop.operatingsystem.operatingsystem attribute)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.operatingsystem.operatingsystem attribute)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.ROBOT_LIBRARY_SCOPE"]], "boot_time_in_seconds_from_epoch() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.boot_time_in_seconds_from_epoch"]], "get_boot_time() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_boot_time"]], "get_machine_name() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_machine_name"]], "get_memory_stats() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_memory_stats"]], "get_username() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.get_username"]], "kill_process() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.kill_process"]], "kill_process_by_pid() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.kill_process_by_pid"]], "process_exists() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.process_exists"]], "process_id_exists() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.process_id_exists"]], "put_system_to_sleep() (rpa.desktop.operatingsystem.operatingsystem method)": [[29, "RPA.Desktop.OperatingSystem.OperatingSystem.put_system_to_sleep"]], "robot_library_doc_format (rpa.desktop.windows.windows attribute)": [[31, "RPA.Desktop.Windows.Windows.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.desktop.windows.windows attribute)": [[31, "RPA.Desktop.Windows.Windows.ROBOT_LIBRARY_SCOPE"]], "windows (class in rpa.desktop.windows)": [[31, "RPA.Desktop.Windows.Windows"]], "boot_time_in_seconds_from_epoch() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.boot_time_in_seconds_from_epoch"]], "calculate_rectangle_center() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.calculate_rectangle_center"]], "click_type() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.click_type"]], "close_all_applications() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.close_all_applications"]], "connect_by_handle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.connect_by_handle"]], "connect_by_pid() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.connect_by_pid"]], "drag_and_drop() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.drag_and_drop"]], "find_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.find_element"]], "get_app() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_app"]], "get_boot_time() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_boot_time"]], "get_dialog_rectangle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_dialog_rectangle"]], "get_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element"]], "get_element_center() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_center"]], "get_element_rectangle() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_rectangle"]], "get_element_rich_text() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_element_rich_text"]], "get_machine_name() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_machine_name"]], "get_memory_stats() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_memory_stats"]], "get_open_applications() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_open_applications"]], "get_spaced_string() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_spaced_string"]], "get_text() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_text"]], "get_username() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_username"]], "get_window_elements() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_window_elements"]], "get_window_list() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.get_window_list"]], "is_element_enabled() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_enabled"]], "is_element_matching() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_matching"]], "is_element_visible() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.is_element_visible"]], "kill_process() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.kill_process"]], "kill_process_by_pid() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.kill_process_by_pid"]], "lock_screen() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.lock_screen"]], "log_in() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.log_in"]], "menu_select() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.menu_select"]], "minimize_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.minimize_dialog"]], "mouse_click() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click"]], "mouse_click_coords() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click_coords"]], "mouse_click_image() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.mouse_click_image"]], "open_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_application"]], "open_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_dialog"]], "open_executable() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_executable"]], "open_file() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_file"]], "open_from_search() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_from_search"]], "open_using_run_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.open_using_run_dialog"]], "process_exists() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.process_exists"]], "process_id_exists() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.process_id_exists"]], "put_system_to_sleep() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.put_system_to_sleep"]], "quit_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.quit_application"]], "refresh_window() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.refresh_window"]], "restore_dialog() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.restore_dialog"]], "screenshot() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.screenshot"]], "send_keys() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.send_keys"]], "send_keys_to_input() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.send_keys_to_input"]], "set_automation_speed() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.set_automation_speed"]], "set_windows_backend() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.set_windows_backend"]], "switch_to_application() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.switch_to_application"]], "type_into() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.type_into"]], "type_keys() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.type_keys"]], "wait_for_element() (rpa.desktop.windows.windows method)": [[31, "RPA.Desktop.Windows.Windows.wait_for_element"]], "dialogs (class in rpa.dialogs)": [[33, "RPA.Dialogs.Dialogs"]], "robot_auto_keywords (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.dialogs.dialogs attribute)": [[33, "RPA.Dialogs.Dialogs.ROBOT_LIBRARY_SCOPE"]], "add_checkbox() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_checkbox"]], "add_date_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_date_input"]], "add_dialog_next_page_button() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_dialog_next_page_button"]], "add_drop_down() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_drop_down"]], "add_element() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_element"]], "add_file() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_file"]], "add_file_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_file_input"]], "add_files() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_files"]], "add_heading() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_heading"]], "add_hidden_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_hidden_input"]], "add_icon() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_icon"]], "add_image() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_image"]], "add_link() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_link"]], "add_password_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_password_input"]], "add_radio_buttons() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_radio_buttons"]], "add_submit_buttons() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_submit_buttons"]], "add_text() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_text"]], "add_text_input() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.add_text_input"]], "clear_elements() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.clear_elements"]], "close_all_dialogs() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.close_all_dialogs"]], "close_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.close_dialog"]], "run_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.run_dialog"]], "show_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.show_dialog"]], "wait_all_dialogs() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_all_dialogs"]], "wait_dialog() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_dialog"]], "wait_dialogs_as_completed() (rpa.dialogs.dialogs method)": [[33, "RPA.Dialogs.Dialogs.wait_dialogs_as_completed"]], "documentai (class in rpa.documentai.documentai)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI"]], "robot_auto_keywords (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.documentai.documentai attribute)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.ROBOT_LIBRARY_SCOPE"]], "engine (rpa.documentai.documentai.documentai property)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.engine"]], "get_result() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.get_result"]], "init_engine() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.init_engine"]], "predict() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.predict"]], "result (rpa.documentai.documentai.documentai property)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.result"]], "switch_engine() (rpa.documentai.documentai.documentai method)": [[35, "RPA.DocumentAI.DocumentAI.DocumentAI.switch_engine"]], "base_url (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.BASE_URL"]], "base64ai (class in rpa.documentai.base64ai)": [[37, "RPA.DocumentAI.Base64AI.Base64AI"]], "robot_library_doc_format (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.base64ai.base64ai attribute)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.ROBOT_LIBRARY_SCOPE"]], "filter_matching_signatures() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.filter_matching_signatures"]], "get_fields_from_prediction_result() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_fields_from_prediction_result"]], "get_matching_signatures() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_matching_signatures"]], "get_signature_image() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_signature_image"]], "get_user_data() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.get_user_data"]], "scan_document_file() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.scan_document_file"]], "scan_document_url() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.scan_document_url"]], "set_authorization() (rpa.documentai.base64ai.base64ai method)": [[37, "RPA.DocumentAI.Base64AI.Base64AI.set_authorization"]], "nanonets (class in rpa.documentai.nanonets)": [[39, "RPA.DocumentAI.Nanonets.Nanonets"]], "robot_library_doc_format (rpa.documentai.nanonets.nanonets attribute)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.documentai.nanonets.nanonets attribute)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ROBOT_LIBRARY_SCOPE"]], "get_all_models() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_all_models"]], "get_fields_from_prediction_result() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_fields_from_prediction_result"]], "get_tables_from_prediction_result() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.get_tables_from_prediction_result"]], "ocr_fulltext() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.ocr_fulltext"]], "predict_file() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.predict_file"]], "set_authorization() (rpa.documentai.nanonets.nanonets method)": [[39, "RPA.DocumentAI.Nanonets.Nanonets.set_authorization"]], "exchange (class in rpa.email.exchange)": [[41, "RPA.Email.Exchange.Exchange"]], "robot_library_doc_format (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.ROBOT_LIBRARY_SCOPE"]], "to_protect (rpa.email.exchange.exchange attribute)": [[41, "RPA.Email.Exchange.Exchange.TO_PROTECT"]], "authorize() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.authorize"]], "create_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.create_folder"]], "delete_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.delete_folder"]], "empty_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.empty_folder"]], "generate_oauth_url() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.generate_oauth_url"]], "get_oauth_token() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.get_oauth_token"]], "list_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.list_messages"]], "list_unread_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.list_unread_messages"]], "move_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.move_message"]], "move_messages() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.move_messages"]], "refresh_oauth_token() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.refresh_oauth_token"]], "rename_folder() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.rename_folder"]], "save_attachments() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.save_attachments"]], "save_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.save_message"]], "send_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.send_message"]], "send_reply_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.send_reply_message"]], "wait_for_message() (rpa.email.exchange.exchange method)": [[41, "RPA.Email.Exchange.Exchange.wait_for_message"]], "imapsmtp (class in rpa.email.imapsmtp)": [[43, "RPA.Email.ImapSmtp.ImapSmtp"]], "robot_library_doc_format (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.ROBOT_LIBRARY_SCOPE"]], "to_protect (rpa.email.imapsmtp.imapsmtp attribute)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.TO_PROTECT"]], "add_gmail_labels() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.add_gmail_labels"]], "authorize() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize"]], "authorize_imap() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize_imap"]], "authorize_smtp() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.authorize_smtp"]], "convert_eml_file_into_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.convert_eml_file_into_message"]], "create_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.create_folder"]], "delete_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_folder"]], "delete_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_message"]], "delete_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.delete_messages"]], "do_message_actions() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.do_message_actions"]], "email_to_document() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.email_to_document"]], "flag_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.flag_messages"]], "generate_oauth_string() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.generate_oauth_string"]], "generate_oauth_url() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.generate_oauth_url"]], "get_decoded_email_body() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_decoded_email_body"]], "get_folder_list() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_folder_list"]], "get_oauth_token() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.get_oauth_token"]], "list_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.list_messages"]], "mark_as_read() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.mark_as_read"]], "mark_as_unread() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.mark_as_unread"]], "move_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.move_messages"]], "move_messages_by_ids() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.move_messages_by_ids"]], "refresh_oauth_token() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.refresh_oauth_token"]], "remove_gmail_labels() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.remove_gmail_labels"]], "rename_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.rename_folder"]], "save_attachment() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_attachment"]], "save_attachments() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_attachments"]], "save_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.save_messages"]], "select_folder() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.select_folder"]], "send_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.send_message"]], "send_smtp_hello() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.send_smtp_hello"]], "set_credentials() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.set_credentials"]], "unflag_messages() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.unflag_messages"]], "wait_for_message() (rpa.email.imapsmtp.imapsmtp method)": [[43, "RPA.Email.ImapSmtp.ImapSmtp.wait_for_message"]], "app_dispatch (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.APP_DISPATCH"]], "application (class in rpa.excel.application)": [[45, "RPA.Excel.Application.Application"]], "robot_library_doc_format (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.excel.application.application attribute)": [[45, "RPA.Excel.Application.Application.ROBOT_LIBRARY_SCOPE"]], "add_new_sheet() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.add_new_sheet"]], "add_new_workbook() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.add_new_workbook"]], "app (rpa.excel.application.application property)": [[45, "RPA.Excel.Application.Application.app"]], "close_document() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.close_document"]], "export_as_pdf() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.export_as_pdf"]], "find_first_available_cell() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.find_first_available_cell"]], "find_first_available_row() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.find_first_available_row"]], "open_application() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.open_application"]], "open_workbook() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.open_workbook"]], "quit_application() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.quit_application"]], "read_from_cells() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.read_from_cells"]], "run_macro() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.run_macro"]], "save_excel() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.save_excel"]], "save_excel_as() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.save_excel_as"]], "set_active_worksheet() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.set_active_worksheet"]], "write_to_cells() (rpa.excel.application.application method)": [[45, "RPA.Excel.Application.Application.write_to_cells"]], "files (class in rpa.excel.files)": [[47, "RPA.Excel.Files.Files"]], "robot_library_doc_format (rpa.excel.files.files attribute)": [[47, "RPA.Excel.Files.Files.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.excel.files.files attribute)": [[47, "RPA.Excel.Files.Files.ROBOT_LIBRARY_SCOPE"]], "append_rows_to_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.append_rows_to_worksheet"]], "auto_size_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.auto_size_columns"]], "clear_cell_range() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.clear_cell_range"]], "close_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.close_workbook"]], "copy_cell_values() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.copy_cell_values"]], "create_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.create_workbook"]], "create_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.create_worksheet"]], "delete_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.delete_columns"]], "delete_rows() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.delete_rows"]], "find_empty_row() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.find_empty_row"]], "get_active_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_active_worksheet"]], "get_cell_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_cell_value"]], "get_worksheet_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.get_worksheet_value"]], "hide_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.hide_columns"]], "insert_columns_after() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_columns_after"]], "insert_columns_before() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_columns_before"]], "insert_image_to_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_image_to_worksheet"]], "insert_rows_after() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_rows_after"]], "insert_rows_before() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.insert_rows_before"]], "list_worksheets() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.list_worksheets"]], "move_range() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.move_range"]], "open_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.open_workbook"]], "read_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.read_worksheet"]], "read_worksheet_as_table() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.read_worksheet_as_table"]], "remove_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.remove_worksheet"]], "rename_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.rename_worksheet"]], "save_workbook() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.save_workbook"]], "set_active_worksheet() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_active_worksheet"]], "set_cell_format() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_format"]], "set_cell_formula() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_formula"]], "set_cell_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_value"]], "set_cell_values() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_cell_values"]], "set_styles() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_styles"]], "set_worksheet_value() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.set_worksheet_value"]], "unhide_columns() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.unhide_columns"]], "worksheet_exists() (rpa.excel.files.files method)": [[47, "RPA.Excel.Files.Files.worksheet_exists"]], "filesystem (class in rpa.filesystem)": [[49, "RPA.FileSystem.FileSystem"]], "path_type (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.PATH_TYPE"]], "robot_library_doc_format (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.filesystem.filesystem attribute)": [[49, "RPA.FileSystem.FileSystem.ROBOT_LIBRARY_SCOPE"]], "absolute_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.absolute_path"]], "append_to_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.append_to_binary_file"]], "append_to_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.append_to_file"]], "change_file_extension() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.change_file_extension"]], "copy_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_directory"]], "copy_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_file"]], "copy_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.copy_files"]], "create_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_binary_file"]], "create_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_directory"]], "create_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.create_file"]], "does_directory_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_directory_exist"]], "does_directory_not_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_directory_not_exist"]], "does_file_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_file_exist"]], "does_file_not_exist() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.does_file_not_exist"]], "empty_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.empty_directory"]], "find_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.find_files"]], "get_file_creation_date() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_creation_date"]], "get_file_extension() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_extension"]], "get_file_modified_date() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_modified_date"]], "get_file_name() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_name"]], "get_file_owner() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_owner"]], "get_file_size() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_size"]], "get_file_stem() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.get_file_stem"]], "is_directory_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_directory_empty"]], "is_directory_not_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_directory_not_empty"]], "is_file_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_file_empty"]], "is_file_not_empty() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.is_file_not_empty"]], "join_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.join_path"]], "list_directories_in_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.list_directories_in_directory"]], "list_files_in_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.list_files_in_directory"]], "log_directory_tree() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.log_directory_tree"]], "move_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_directory"]], "move_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_file"]], "move_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.move_files"]], "normalize_path() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.normalize_path"]], "read_binary_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.read_binary_file"]], "read_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.read_file"]], "remove_directory() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_directory"]], "remove_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_file"]], "remove_files() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.remove_files"]], "run_keyword_if_file_exists() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.run_keyword_if_file_exists"]], "touch_file() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.touch_file"]], "wait_until_created() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_created"]], "wait_until_modified() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_modified"]], "wait_until_removed() (rpa.filesystem.filesystem method)": [[49, "RPA.FileSystem.FileSystem.wait_until_removed"]], "ftp (class in rpa.ftp)": [[51, "RPA.FTP.FTP"]], "robot_library_doc_format (rpa.ftp.ftp attribute)": [[51, "RPA.FTP.FTP.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.ftp.ftp attribute)": [[51, "RPA.FTP.FTP.ROBOT_LIBRARY_SCOPE"]], "abort() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.abort"]], "close() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.close"]], "connect() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.connect"]], "cwd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.cwd"]], "delete() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.delete"]], "download() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.download"]], "file_size() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.file_size"]], "get_welcome_message() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.get_welcome_message"]], "list_files() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.list_files"]], "mkd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.mkd"]], "pwd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.pwd"]], "quit() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.quit"]], "rename() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.rename"]], "rmd() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.rmd"]], "send_command() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.send_command"]], "set_ascii_mode() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_ascii_mode"]], "set_binary_mode() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_binary_mode"]], "set_debug_level() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.set_debug_level"]], "upload() (rpa.ftp.ftp method)": [[51, "RPA.FTP.FTP.upload"]], "default_retry_method_list (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.DEFAULT_RETRY_METHOD_LIST"]], "http (class in rpa.http)": [[53, "RPA.HTTP.HTTP"]], "robot_library_doc_format (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.http.http attribute)": [[53, "RPA.HTTP.HTTP.ROBOT_LIBRARY_SCOPE"]], "check_vulnerabilities() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.check_vulnerabilities"]], "create_client_cert_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_client_cert_session"]], "create_custom_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_custom_session"]], "create_digest_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_digest_session"]], "create_ntlm_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_ntlm_session"]], "create_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.create_session"]], "delete_all_sessions() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_all_sessions"]], "delete_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_on_session"]], "delete_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.delete_request"]], "download() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.download"]], "get_current_session_alias() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_current_session_alias"]], "get_file_for_streaming_upload() (rpa.http.http static method)": [[53, "RPA.HTTP.HTTP.get_file_for_streaming_upload"]], "get_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_on_session"]], "get_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.get_request"]], "head_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.head_on_session"]], "head_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.head_request"]], "http_get() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.http_get"]], "options_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.options_on_session"]], "options_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.options_request"]], "patch_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.patch_on_session"]], "patch_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.patch_request"]], "post_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.post_on_session"]], "post_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.post_request"]], "put_on_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.put_on_session"]], "put_request() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.put_request"]], "request_should_be_successful() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.request_should_be_successful"]], "session_exists() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_exists"]], "session_less_delete() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_delete"]], "session_less_get() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_get"]], "session_less_head() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_head"]], "session_less_options() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_options"]], "session_less_patch() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_patch"]], "session_less_post() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_post"]], "session_less_put() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.session_less_put"]], "status_should_be() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.status_should_be"]], "to_json() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.to_json"]], "update_session() (rpa.http.http method)": [[53, "RPA.HTTP.HTTP.update_session"]], "builtin_plural_map (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.BUILTIN_PLURAL_MAP"]], "builtin_singular_map (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.BUILTIN_SINGULAR_MAP"]], "hubspot (class in rpa.hubspot)": [[55, "RPA.Hubspot.Hubspot"]], "robot_auto_keywords (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.hubspot.hubspot attribute)": [[55, "RPA.Hubspot.Hubspot.ROBOT_LIBRARY_SCOPE"]], "add_input_to_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.add_input_to_batch"]], "auth_with_api_key() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.auth_with_api_key"]], "auth_with_token() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.auth_with_token"]], "batch_input (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.batch_input"]], "clear_current_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.clear_current_batch"]], "create_new_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.create_new_batch"]], "create_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.create_object"]], "execute_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.execute_batch"]], "extend_batch_with_inputs() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.extend_batch_with_inputs"]], "get_current_batch() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_batch"]], "get_current_batch_inputs() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_batch_inputs"]], "get_current_stage_of_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_current_stage_of_object"]], "get_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_object"]], "get_owner_by_id() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_owner_by_id"]], "get_owner_of_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_owner_of_object"]], "get_pipeline() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_pipeline"]], "get_pipeline_stages() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_pipeline_stages"]], "get_user() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.get_user"]], "list_associations() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.list_associations"]], "list_pipelines() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.list_pipelines"]], "pipelines (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.pipelines"]], "schemas (rpa.hubspot.hubspot property)": [[55, "RPA.Hubspot.Hubspot.schemas"]], "search_for_objects() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.search_for_objects"]], "set_association() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.set_association"]], "set_current_batch_input() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.set_current_batch_input"]], "update_object() (rpa.hubspot.hubspot method)": [[55, "RPA.Hubspot.Hubspot.update_object"]], "images (class in rpa.images)": [[57, "RPA.Images.Images"]], "robot_library_doc_format (rpa.images.images attribute)": [[57, "RPA.Images.Images.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.images.images attribute)": [[57, "RPA.Images.Images.ROBOT_LIBRARY_SCOPE"]], "crop_image() (rpa.images.images method)": [[57, "RPA.Images.Images.crop_image"]], "find_template_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.find_template_in_image"]], "get_pixel_color_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.get_pixel_color_in_image"]], "show_region_in_image() (rpa.images.images method)": [[57, "RPA.Images.Images.show_region_in_image"]], "javaaccessbridge (class in rpa.javaaccessbridge)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge"]], "robot_auto_keywords (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.javaaccessbridge.javaaccessbridge attribute)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.ROBOT_LIBRARY_SCOPE"]], "application_refresh() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.application_refresh"]], "call_element_action() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.call_element_action"]], "click_coordinates() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_coordinates"]], "click_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_element"]], "click_push_button() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.click_push_button"]], "close_java_window() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.close_java_window"]], "get_element_actions() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_element_actions"]], "get_element_text() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_element_text"]], "get_elements() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_elements"]], "get_locator_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_locator_tree"]], "get_version_info() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.get_version_info"]], "highlight_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.highlight_element"]], "list_java_windows() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.list_java_windows"]], "press_keys() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.press_keys"]], "print_element_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.print_element_tree"]], "print_locator_tree() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.print_locator_tree"]], "read_table() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.read_table"]], "refresh_element() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.refresh_element"]], "select_menu() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_menu"]], "select_window() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window"]], "select_window_by_pid() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window_by_pid"]], "select_window_by_title() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.select_window_by_title"]], "set_display_scale_factor() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.set_display_scale_factor"]], "set_mouse_position() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.set_mouse_position"]], "shutdown_jab() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.shutdown_jab"]], "toggle_drop_down() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.toggle_drop_down"]], "type_text() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.type_text"]], "wait_until_element_exists() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_exists"]], "wait_until_element_is_focused() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_is_focused"]], "wait_until_element_text_contains() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_text_contains"]], "wait_until_element_text_equals() (rpa.javaaccessbridge.javaaccessbridge method)": [[59, "RPA.JavaAccessBridge.JavaAccessBridge.wait_until_element_text_equals"]], "json (class in rpa.json)": [[61, "RPA.JSON.JSON"]], "robot_library_doc_format (rpa.json.json attribute)": [[61, "RPA.JSON.JSON.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.json.json attribute)": [[61, "RPA.JSON.JSON.ROBOT_LIBRARY_SCOPE"]], "add_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.add_to_json"]], "convert_json_to_string() (rpa.json.json method)": [[61, "RPA.JSON.JSON.convert_json_to_string"]], "convert_string_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.convert_string_to_json"]], "delete_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.delete_from_json"]], "get_value_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.get_value_from_json"]], "get_values_from_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.get_values_from_json"]], "load_json_from_file() (rpa.json.json method)": [[61, "RPA.JSON.JSON.load_json_from_file"]], "save_json_to_file() (rpa.json.json method)": [[61, "RPA.JSON.JSON.save_json_to_file"]], "update_value_to_json() (rpa.json.json method)": [[61, "RPA.JSON.JSON.update_value_to_json"]], "mfa (class in rpa.mfa)": [[63, "RPA.MFA.MFA"]], "robot_library_doc_format (rpa.mfa.mfa attribute)": [[63, "RPA.MFA.MFA.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.mfa.mfa attribute)": [[63, "RPA.MFA.MFA.ROBOT_LIBRARY_SCOPE"]], "generate_oauth_url() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.generate_oauth_url"]], "get_counter_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_counter_based_otp"]], "get_oauth_token() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_oauth_token"]], "get_time_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.get_time_based_otp"]], "oauth (rpa.mfa.mfa property)": [[63, "RPA.MFA.MFA.oauth"]], "refresh_oauth_token() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.refresh_oauth_token"]], "set_counter_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.set_counter_based_otp"]], "set_time_based_otp() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.set_time_based_otp"]], "use_mfa_secret_from_vault() (rpa.mfa.mfa method)": [[63, "RPA.MFA.MFA.use_mfa_secret_from_vault"]], "msgraph (class in rpa.msgraph)": [[65, "RPA.MSGraph.MSGraph"]], "robot_library_doc_format (rpa.msgraph.msgraph attribute)": [[65, "RPA.MSGraph.MSGraph.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.msgraph.msgraph attribute)": [[65, "RPA.MSGraph.MSGraph.ROBOT_LIBRARY_SCOPE"]], "authorize_and_get_token() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.authorize_and_get_token"]], "configure_msgraph_client() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.configure_msgraph_client"]], "create_sharepoint_list() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.create_sharepoint_list"]], "download_file_from_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_onedrive"]], "download_file_from_share_link() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_share_link"]], "download_file_from_sharepoint() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_file_from_sharepoint"]], "download_folder_from_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.download_folder_from_onedrive"]], "find_onedrive_file() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.find_onedrive_file"]], "generate_oauth_authorization_url() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.generate_oauth_authorization_url"]], "get_drive_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_drive_instance"]], "get_file_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_file_instance"]], "get_folder_instance() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_folder_instance"]], "get_items_from_sharepoint_list() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_items_from_sharepoint_list"]], "get_me() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_me"]], "get_scopes() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_scopes"]], "get_sharepoint_site() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.get_sharepoint_site"]], "list_files_in_onedrive_folder() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_files_in_onedrive_folder"]], "list_files_in_sharepoint_site_drive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_files_in_sharepoint_site_drive"]], "list_sharepoint_site_drives() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.list_sharepoint_site_drives"]], "refresh_oauth_token() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.refresh_oauth_token"]], "search_for_users() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.search_for_users"]], "upload_file_to_onedrive() (rpa.msgraph.msgraph method)": [[65, "RPA.MSGraph.MSGraph.upload_file_to_onedrive"]], "netsuite (class in rpa.netsuite)": [[67, "RPA.Netsuite.Netsuite"]], "robot_library_doc_format (rpa.netsuite.netsuite attribute)": [[67, "RPA.Netsuite.Netsuite.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.netsuite.netsuite attribute)": [[67, "RPA.Netsuite.Netsuite.ROBOT_LIBRARY_SCOPE"]], "connect() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.connect"]], "get_accounts() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_accounts"]], "get_classifications() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_classifications"]], "get_currencies() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_currencies"]], "get_currency() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_currency"]], "get_departments() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_departments"]], "get_locations() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_locations"]], "get_vendor_bills() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_vendor_bills"]], "get_vendors() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.get_vendors"]], "login() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.login"]], "netsuite_get() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_get"]], "netsuite_get_all() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_get_all"]], "netsuite_search() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_search"]], "netsuite_search_all() (rpa.netsuite.netsuite method)": [[67, "RPA.Netsuite.Netsuite.netsuite_search_all"]], "notifier (class in rpa.notifier)": [[69, "RPA.Notifier.Notifier"]], "robot_library_doc_format (rpa.notifier.notifier attribute)": [[69, "RPA.Notifier.Notifier.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.notifier.notifier attribute)": [[69, "RPA.Notifier.Notifier.ROBOT_LIBRARY_SCOPE"]], "generic_notify() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.generic_notify"]], "notify_email() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_email"]], "notify_gmail() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_gmail"]], "notify_pushover() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_pushover"]], "notify_slack() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_slack"]], "notify_telegram() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_telegram"]], "notify_twilio() (rpa.notifier.notifier method)": [[69, "RPA.Notifier.Notifier.notify_twilio"]], "openai (class in rpa.openai)": [[71, "RPA.OpenAI.OpenAI"]], "robot_library_doc_format (rpa.openai.openai attribute)": [[71, "RPA.OpenAI.OpenAI.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.openai.openai attribute)": [[71, "RPA.OpenAI.OpenAI.ROBOT_LIBRARY_SCOPE"]], "authorize_to_azure_openai() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.authorize_to_azure_openai"]], "authorize_to_openai() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.authorize_to_openai"]], "chat_completion_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.chat_completion_create"]], "completion_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.completion_create"]], "image_create() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.image_create"]], "image_create_variation() (rpa.openai.openai method)": [[71, "RPA.OpenAI.OpenAI.image_create_variation"]], "app_dispatch (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.APP_DISPATCH"]], "application (class in rpa.outlook.application)": [[73, "RPA.Outlook.Application.Application"]], "robot_library_doc_format (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.outlook.application.application attribute)": [[73, "RPA.Outlook.Application.Application.ROBOT_LIBRARY_SCOPE"]], "app (rpa.outlook.application.application property)": [[73, "RPA.Outlook.Application.Application.app"]], "close_document() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.close_document"]], "get_emails() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.get_emails"]], "mark_email_as_read() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.mark_email_as_read"]], "move_emails() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.move_emails"]], "open_application() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.open_application"]], "quit_application() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.quit_application"]], "save_email_attachments() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.save_email_attachments"]], "send_email() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.send_email"]], "wait_for_email() (rpa.outlook.application.application method)": [[73, "RPA.Outlook.Application.Application.wait_for_email"]], "pdf (class in rpa.pdf)": [[75, "RPA.PDF.PDF"]], "robot_library_doc_format (rpa.pdf.pdf attribute)": [[75, "RPA.PDF.PDF.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.pdf.pdf attribute)": [[75, "RPA.PDF.PDF.ROBOT_LIBRARY_SCOPE"]], "add_library_components() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.add_library_components"]], "get_keyword_arguments() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_arguments"]], "get_keyword_documentation() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_documentation"]], "get_keyword_names() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_names"]], "get_keyword_source() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_source"]], "get_keyword_tags() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_tags"]], "get_keyword_types() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.get_keyword_types"]], "run_keyword() (rpa.pdf.pdf method)": [[75, "RPA.PDF.PDF.run_keyword"]], "process (class in rpa.robocorp.process)": [[77, "RPA.Robocorp.Process.Process"]], "robot_auto_keywords (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.process.process attribute)": [[77, "RPA.Robocorp.Process.Process.ROBOT_LIBRARY_SCOPE"]], "base_api (rpa.robocorp.process.process property)": [[77, "RPA.Robocorp.Process.Process.base_api"]], "create_input_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.create_input_work_item"]], "get_process_id_by_name() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_process_id_by_name"]], "get_process_run_status() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_process_run_status"]], "get_robot_run_artifact() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_robot_run_artifact"]], "get_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.get_work_item"]], "headers (rpa.robocorp.process.process property)": [[77, "RPA.Robocorp.Process.Process.headers"]], "list_process_run_work_items() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_run_work_items"]], "list_process_runs() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_runs"]], "list_process_runs_in_workspace() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_runs_in_workspace"]], "list_process_work_items() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_process_work_items"]], "list_processes() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_processes"]], "list_run_artifacts() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.list_run_artifacts"]], "process_api() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.process_api"]], "register_file_upload() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.register_file_upload"]], "retry_work_item() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.retry_work_item"]], "set_apikey() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_apikey"]], "set_credentials() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_credentials"]], "set_process_id() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_process_id"]], "set_workspace_id() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.set_workspace_id"]], "start_configured_process() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.start_configured_process"]], "start_process() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.start_process"]], "upload_file_to_s3() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.upload_file_to_s3"]], "workspace_api() (rpa.robocorp.process.process method)": [[77, "RPA.Robocorp.Process.Process.workspace_api"]], "robot_library_doc_format (rpa.robocorp.vault.vault attribute)": [[79, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_DOC_FORMAT"], [81, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.vault.vault attribute)": [[79, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_SCOPE"], [81, "RPA.Robocorp.Vault.Vault.ROBOT_LIBRARY_SCOPE"]], "vault (class in rpa.robocorp.vault)": [[79, "RPA.Robocorp.Vault.Vault"], [81, "RPA.Robocorp.Vault.Vault"]], "adapter (rpa.robocorp.vault.vault property)": [[79, "RPA.Robocorp.Vault.Vault.adapter"], [81, "RPA.Robocorp.Vault.Vault.adapter"]], "get_secret() (rpa.robocorp.vault.vault method)": [[79, "RPA.Robocorp.Vault.Vault.get_secret"], [81, "RPA.Robocorp.Vault.Vault.get_secret"]], "set_secret() (rpa.robocorp.vault.vault method)": [[79, "RPA.Robocorp.Vault.Vault.set_secret"], [81, "RPA.Robocorp.Vault.Vault.set_secret"]], "email_body_loaders (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.EMAIL_BODY_LOADERS"]], "robot_auto_keywords (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LIBRARY_SCOPE"]], "robot_listener_api_version (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.ROBOT_LISTENER_API_VERSION"]], "workitems (class in rpa.robocorp.workitems)": [[83, "RPA.Robocorp.WorkItems.WorkItems"]], "active_input (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.active_input"]], "adapter (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.adapter"]], "add_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.add_work_item_file"]], "add_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.add_work_item_files"]], "clear_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.clear_work_item"]], "create_output_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.create_output_work_item"]], "current (rpa.robocorp.workitems.workitems property)": [[83, "RPA.Robocorp.WorkItems.WorkItems.current"]], "delete_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.delete_work_item_variables"]], "for_each_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.for_each_input_work_item"]], "get_current_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_current_work_item"]], "get_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_input_work_item"]], "get_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_file"]], "get_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_files"]], "get_work_item_payload() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_payload"]], "get_work_item_variable() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_variable"]], "get_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.get_work_item_variables"]], "inputs (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.inputs"]], "list_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.list_work_item_files"]], "list_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.list_work_item_variables"]], "outputs (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.outputs"]], "release_input_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.release_input_work_item"]], "remove_work_item_file() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.remove_work_item_file"]], "remove_work_item_files() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.remove_work_item_files"]], "root (rpa.robocorp.workitems.workitems attribute)": [[83, "RPA.Robocorp.WorkItems.WorkItems.root"]], "save_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.save_work_item"]], "set_current_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_current_work_item"]], "set_task_variables_from_work_item() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_task_variables_from_work_item"]], "set_work_item_payload() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_payload"]], "set_work_item_variable() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_variable"]], "set_work_item_variables() (rpa.robocorp.workitems.workitems method)": [[83, "RPA.Robocorp.WorkItems.WorkItems.set_work_item_variables"]], "info_level_keywords (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.INFO_LEVEL_KEYWORDS"]], "keywords_to_mute (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.KEYWORDS_TO_MUTE"]], "keywords_to_protect (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.KEYWORDS_TO_PROTECT"]], "robot_library_doc_format (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LIBRARY_SCOPE"]], "robot_listener_api_version (rpa.robotloglistener.robotloglistener attribute)": [[85, "RPA.RobotLogListener.RobotLogListener.ROBOT_LISTENER_API_VERSION"]], "robotloglistener (class in rpa.robotloglistener)": [[85, "RPA.RobotLogListener.RobotLogListener"]], "end_keyword() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.end_keyword"]], "mute_run_on_failure() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.mute_run_on_failure"]], "only_info_level() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.only_info_level"]], "register_protected_keywords() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.register_protected_keywords"]], "start_keyword() (rpa.robotloglistener.robotloglistener method)": [[85, "RPA.RobotLogListener.RobotLogListener.start_keyword"]], "robot_library_doc_format (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.ROBOT_LIBRARY_SCOPE"]], "salesforce (class in rpa.salesforce)": [[87, "RPA.Salesforce.Salesforce"]], "account (rpa.salesforce.salesforce attribute)": [[87, "RPA.Salesforce.Salesforce.account"]], "add_product_into_opportunity() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.add_product_into_opportunity"]], "auth_with_connected_app() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.auth_with_connected_app"]], "auth_with_token() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.auth_with_token"]], "create_new_opportunity() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.create_new_opportunity"]], "create_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.create_salesforce_object"]], "delete_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.delete_salesforce_object"]], "describe_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.describe_salesforce_object"]], "execute_apex() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.execute_apex"]], "execute_dataloader_insert() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.execute_dataloader_insert"]], "get_dataloader_error_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_dataloader_error_table"]], "get_dataloader_success_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_dataloader_success_table"]], "get_domain() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_domain"]], "get_opportunity_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_opportunity_id"]], "get_pricebook_entries() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_pricebook_entries"]], "get_pricebook_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_pricebook_id"]], "get_products_in_pricelist() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_products_in_pricelist"]], "get_salesforce_object_by_id() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_salesforce_object_by_id"]], "get_salesforce_object_metadata() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.get_salesforce_object_metadata"]], "instance (rpa.salesforce.salesforce property)": [[87, "RPA.Salesforce.Salesforce.instance"]], "read_dictionary_from_file() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.read_dictionary_from_file"]], "salesforce_query() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.salesforce_query"]], "salesforce_query_result_as_table() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.salesforce_query_result_as_table"]], "session_id (rpa.salesforce.salesforce property)": [[87, "RPA.Salesforce.Salesforce.session_id"]], "set_account() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_account"]], "set_domain() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_domain"]], "set_pricebook() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.set_pricebook"]], "update_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.update_salesforce_object"]], "upsert_salesforce_object() (rpa.salesforce.salesforce method)": [[87, "RPA.Salesforce.Salesforce.upsert_salesforce_object"]], "robot_library_scope (rpa.sap.sap attribute)": [[89, "RPA.SAP.SAP.ROBOT_LIBRARY_SCOPE"]], "sap (class in rpa.sap)": [[89, "RPA.SAP.SAP"]], "click_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.click_element"]], "click_toolbar_button() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.click_toolbar_button"]], "connect_to_existing_connection() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.connect_to_existing_connection"]], "connect_to_session() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.connect_to_session"]], "disable_screenshots_on_error() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.disable_screenshots_on_error"]], "doubleclick_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.doubleclick_element"]], "element_should_be_present() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_should_be_present"]], "element_value_should_be() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_value_should_be"]], "element_value_should_contain() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.element_value_should_contain"]], "enable_screenshots_on_error() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.enable_screenshots_on_error"]], "focus_and_click() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.focus_and_click"]], "focus_and_input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.focus_and_input_text"]], "generic_click_element() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_click_element"]], "generic_input_password() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_input_password"]], "generic_input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.generic_input_text"]], "get_cell_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_cell_value"]], "get_element_location() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_location"]], "get_element_type() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_type"]], "get_element_type_of_object() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_element_type_of_object"]], "get_row_count() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_row_count"]], "get_scroll_position() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_scroll_position"]], "get_statusbar_type() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_statusbar_type"]], "get_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_value"]], "get_window_title() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.get_window_title"]], "input_password() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.input_password"]], "input_text() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.input_text"]], "maximize_window() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.maximize_window"]], "open_connection() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.open_connection"]], "run_transaction() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.run_transaction"]], "scroll() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.scroll"]], "select_checkbox() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_checkbox"]], "select_context_menu_item() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_context_menu_item"]], "select_from_list_by_label() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_from_list_by_label"]], "select_node() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_node"]], "select_node_link() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_node_link"]], "select_radio_button() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_radio_button"]], "select_table_column() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_table_column"]], "select_table_row() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.select_table_row"]], "send_vkey() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.send_vkey"]], "set_cell_value() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_cell_value"]], "set_explicit_wait() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_explicit_wait"]], "set_focus() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.set_focus"]], "take_screenshot() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.take_screenshot"]], "unselect_checkbox() (rpa.sap.sap method)": [[89, "RPA.SAP.SAP.unselect_checkbox"]], "robot_library_doc_format (rpa.slack.slack attribute)": [[91, "RPA.Slack.Slack.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.slack.slack attribute)": [[91, "RPA.Slack.Slack.ROBOT_LIBRARY_SCOPE"]], "slack (class in rpa.slack)": [[91, "RPA.Slack.Slack"]], "slack_message_using_webhook() (rpa.slack.slack method)": [[91, "RPA.Slack.Slack.slack_message_using_webhook"]], "slack_raw_message() (rpa.slack.slack method)": [[91, "RPA.Slack.Slack.slack_raw_message"]], "robot_auto_keywords (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_AUTO_KEYWORDS"]], "robot_library_doc_format (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROBOT_LIBRARY_SCOPE"]], "row_excludes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROW_EXCLUDES"]], "row_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.ROW_INCLUDES"]], "search_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SEARCH_INCLUDES"]], "search_scopes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SEARCH_SCOPES"]], "sheet_includes (rpa.smartsheet.smartsheet attribute)": [[93, "RPA.Smartsheet.Smartsheet.SHEET_INCLUDES"]], "smartsheet (class in rpa.smartsheet)": [[93, "RPA.Smartsheet.Smartsheet"]], "add_column() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_column"]], "add_columns() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_columns"]], "add_rows() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.add_rows"]], "convert_row_to_dict() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.convert_row_to_dict"]], "convert_sheet_to_table() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.convert_sheet_to_table"]], "create_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.create_sheet"]], "download_attachment() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.download_attachment"]], "get_application_constants() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_application_constants"]], "get_cell_history() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_cell_history"]], "get_current_user() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_current_user"]], "get_row() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_row"]], "get_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_sheet"]], "get_sheet_owner() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.get_sheet_owner"]], "list_attachments() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_attachments"]], "list_columns() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_columns"]], "list_sheet_filters() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_sheet_filters"]], "list_sheets() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.list_sheets"]], "refresh_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.refresh_sheet"]], "search() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.search"]], "set_access_token() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_access_token"]], "set_max_retry_time() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_max_retry_time"]], "set_row() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_row"]], "set_rows() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.set_rows"]], "sheets (rpa.smartsheet.smartsheet property)": [[93, "RPA.Smartsheet.Smartsheet.sheets"]], "unselect_current_sheet() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.unselect_current_sheet"]], "update_column() (rpa.smartsheet.smartsheet method)": [[93, "RPA.Smartsheet.Smartsheet.update_column"]], "robot_library_doc_format (rpa.tables.tables attribute)": [[95, "RPA.Tables.Tables.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.tables.tables attribute)": [[95, "RPA.Tables.Tables.ROBOT_LIBRARY_SCOPE"]], "tables (class in rpa.tables)": [[95, "RPA.Tables.Tables"]], "add_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.add_table_column"]], "add_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.add_table_row"]], "clear_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.clear_table"]], "copy_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.copy_table"]], "create_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.create_table"]], "export_table() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.export_table"]], "filter_empty_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_empty_rows"]], "filter_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_table_by_column"]], "filter_table_with_keyword() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.filter_table_with_keyword"]], "find_table_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.find_table_rows"]], "get_table_cell() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_cell"]], "get_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_column"]], "get_table_dimensions() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_dimensions"]], "get_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_row"]], "get_table_slice() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.get_table_slice"]], "group_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.group_table_by_column"]], "map_column_values() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.map_column_values"]], "merge_tables() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.merge_tables"]], "pop_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.pop_table_column"]], "pop_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.pop_table_row"]], "read_table_from_csv() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.read_table_from_csv"]], "rename_table_columns() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.rename_table_columns"]], "set_row_as_column_names() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_row_as_column_names"]], "set_table_cell() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_cell"]], "set_table_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_column"]], "set_table_row() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.set_table_row"]], "sort_table_by_column() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.sort_table_by_column"]], "table_head() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.table_head"]], "table_tail() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.table_tail"]], "trim_column_names() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.trim_column_names"]], "trim_empty_rows() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.trim_empty_rows"]], "write_table_to_csv() (rpa.tables.tables method)": [[95, "RPA.Tables.Tables.write_table_to_csv"]], "robot_library_doc_format (rpa.twitter.twitter attribute)": [[98, "RPA.Twitter.Twitter.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.twitter.twitter attribute)": [[98, "RPA.Twitter.Twitter.ROBOT_LIBRARY_SCOPE"]], "twitter (class in rpa.twitter)": [[98, "RPA.Twitter.Twitter"]], "authorize() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.authorize"]], "follow() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.follow"]], "get_me() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_me"]], "get_user_profile() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_user_profile"]], "get_user_tweets() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.get_user_tweets"]], "like() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.like"]], "text_search_tweets() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.text_search_tweets"]], "tweet() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.tweet"]], "unfollow() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.unfollow"]], "unlike() (rpa.twitter.twitter method)": [[98, "RPA.Twitter.Twitter.unlike"]], "robot_library_doc_format (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.ROBOT_LIBRARY_SCOPE"]], "simulate_move (rpa.windows.windows attribute)": [[100, "RPA.Windows.Windows.SIMULATE_MOVE"]], "windows (class in rpa.windows)": [[100, "RPA.Windows.Windows"]], "add_library_components() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.add_library_components"]], "get_keyword_arguments() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_arguments"]], "get_keyword_documentation() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_documentation"]], "get_keyword_names() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_names"]], "get_keyword_source() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_source"]], "get_keyword_tags() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_tags"]], "get_keyword_types() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.get_keyword_types"]], "run_keyword() (rpa.windows.windows method)": [[100, "RPA.Windows.Windows.run_keyword"]], "app_dispatch (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.APP_DISPATCH"]], "application (class in rpa.word.application)": [[102, "RPA.Word.Application.Application"]], "fileformats (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.FILEFORMATS"]], "robot_library_doc_format (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.ROBOT_LIBRARY_DOC_FORMAT"]], "robot_library_scope (rpa.word.application.application attribute)": [[102, "RPA.Word.Application.Application.ROBOT_LIBRARY_SCOPE"]], "app (rpa.word.application.application property)": [[102, "RPA.Word.Application.Application.app"]], "close_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.close_document"]], "create_new_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.create_new_document"]], "export_to_pdf() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.export_to_pdf"]], "get_all_texts() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.get_all_texts"]], "open_application() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.open_application"]], "open_file() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.open_file"]], "quit_application() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.quit_application"]], "replace_text() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.replace_text"]], "save_document() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.save_document"]], "save_document_as() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.save_document_as"]], "set_footer() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.set_footer"]], "set_header() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.set_header"]], "write_text() (rpa.word.application.application method)": [[102, "RPA.Word.Application.Application.write_text"]]}}) \ No newline at end of file