Repository: Accruent/robotframework-zoomba (language: python)

Issue:
Move Travis-Ci to GitHub Actions
Changes to Travis-ci have cut off our ability to test. Emails to support have not been answered to get an OSS credit allotment so we need to transition to Github Actions.


Discussion / hints:

Fix patch:
diff --git a/.coveralls.yml b/.coveralls.yml
deleted file mode 100644
index 91600595..00000000
--- a/.coveralls.yml
+++ /dev/null
@@ -1,1 +0,0 @@
-service_name: travis-ci
diff --git a/.github/workflows/broken-links-crawler.yml b/.github/workflows/broken-links-crawler.yml
index ed832ba0..032c7462 100644
--- a/.github/workflows/broken-links-crawler.yml
+++ b/.github/workflows/broken-links-crawler.yml
@@ -1,9 +1,11 @@
 name: Broken-Links-Crawler
 on:
   push:
-    branches: [ master ]
+    branches:
+      - master
   pull_request:
-    branches: [ master ]
+    branches:
+      - master
 jobs:
   check_broken_links:
     runs-on: ubuntu-latest
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 9da2b22e..2e30b4cf 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -1,7 +1,6 @@
 name: "Code scanning - action"
 
 on:
-  push:
   pull_request:
   schedule:
     - cron: '0 7 * * 1'
diff --git a/.github/workflows/update-pypi.yml b/.github/workflows/update-pypi.yml
new file mode 100644
index 00000000..236ebb8f
--- /dev/null
+++ b/.github/workflows/update-pypi.yml
@@ -0,0 +1,30 @@
+name: Publish Python 🐍 distributions 📦 to PyPI
+on:
+  push:
+    branches:
+      - master
+jobs:
+  build-and-publish:
+    name: Build and publish Python 🐍 distributions 📦 to PyPI
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Python 3.8
+        uses: actions/setup-python@v2
+        with:
+          python-version: 3.8
+
+      - name: Build Zoomba
+        run: |
+          python -m pip install --upgrade pip
+          pip install .
+
+      - name: Build a binary wheel and a source tarball
+        run: |
+          python -m build --sdist --wheel --outdir dist/ .
+
+      - name: Publish distribution 📦 to PyPI
+        if: startsWith(github.ref, 'refs/tags')
+        uses: pypa/gh-action-pypi-publish@master
+        with:
+          password: ${{ secrets.PYPI_API_TOKEN }}
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index b0c74794..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-language: python
-python:
-- '3.6'
-- '3.7'
-- '3.8'
-branches:
-  except:
-  - "/^(documentation).*$/i"
-sudo: required
-dist: xenial
-services:
-  - xvfb
-addons:
-  chrome: stable
-cache: pip
-install:
-- pip install .
-- pip install coveralls
-- pip install pytest-cov
-before_script:
-- LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"`
-- wget "http://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip"
-- unzip chromedriver_linux64.zip
-- sudo mv chromedriver /usr/local/bin
-- export DISPLAY=:99.0
-- sleep 3
-script:
-- pytest --cov src -v
-- robot -e BrokenORWindowsORMobile test
-after_success:
-- coveralls
-deploy:
-  provider: pypi
-  user: __token__
-  password:
-    secure: qOQYJr57RCFXB/+F1rGWv+P2D1NpHgedk6WPTSQfwT6MeL7V5PCLBaEvewHLy67IdV5jc9AcNu8aSl1tc7y0toc8Zgg448JwW2xfl1eIU+rGTzKwHzFwVRGZaddegR+piAzlrNzF6UDouzjxnuceZOO/ynv4XYHUw6Etx2XkseUtq3EPthtdjK7eBnwEgr01farLPJgUmb8U9nRl9yfWabfxc3kH/Pj4xvfVMRvablntiksFByx+JRXfZnq78YyAvjI8ZRG9RPG6oC/MbS20ovGSaSOx75PYJFyekJUDdSoeMCuTNY71gHLVNxz8XrpwuvY6yCbMqLHy+SINhfrHz0DhiPW4ne4XtkQJ0vWOJMoVf7GY/dO5hiyK523UiBjF2TFMW3KOZfXqTyeu8rtslVYZIk/B53ziA6mdsy7gzHZGIF3AH1g9eElNDO/vzUjUBb2bLvZkqcfAh17SB1A0A9wzOXYHrfJtZCIepfAJiovb5seKefxMW6Kr769zpwe7QHK7GfOh5S+XMzU5F0FsdA2Su0KOMwz9Q3suVQiq1oSxQU/dQHMoWjVsMv4To2URz9WIXpd3tG00cUzIChJM7PKDLHQrWPTj6/hT2ub6rvFiCR6toGMpoAd+Nl2nftU69rVjC7qPhcORu9kxWYFN8B3yKQof5VRmlEVHaqoCxzo=
-  on:
-    branch: master
-    tags: true
-  skip_existing: true
-  distributions: "sdist bdist_wheel"
diff --git a/docs/APILibraryDocumentation.html b/docs/APILibraryDocumentation.html
index 98b76918..bb16c869 100644
--- a/docs/APILibraryDocumentation.html
+++ b/docs/APILibraryDocumentation.html
@@ -614,7 +614,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba API Library\x3c/p>\n<p>This class is the base Library used to generate automated API Tests in the Robot Automation Framework. It has been generated to accommodate the RESTful API design pattern.\x3c/p>","generated":"2020-12-07 15:44:02","inits":[],"keywords":[{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a DELETE Request. This Keyword is basically a wrapper for delete_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Delete Request","shortdoc":"Generate a DELETE Request. This Keyword is basically a wrapper for delete_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","cookies=None","timeout=None"],"doc":"<p>Generate a GET Request. This Keyword is basically a wrapper for get_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc. along with any query parameters.\x3c/p>","matched":true,"name":"Call Get Request","shortdoc":"Generate a GET Request. This Keyword is basically a wrapper for get_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a PATCH Request. This Keyword is basically a wrapper for patch_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Patch Request","shortdoc":"Generate a PATCH Request. This Keyword is basically a wrapper for patch_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","files=None","cookies=None","timeout=None"],"doc":"<p>Generate a POST Request. This Keyword is basically a wrapper for post_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>files: (json) A JSON object that sends in the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Post Request","shortdoc":"Generate a POST Request. This Keyword is basically a wrapper for post_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a PUT Request. This Keyword is basically a wrapper for put_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Put Request","shortdoc":"Generate a PUT Request. This Keyword is basically a wrapper for put_request from the RequestsLibrary.","tags":[]},{"args":["endpoint","method","data","headers=None","cookies=None","timeout=None"],"doc":"<p>Opens a connection to an Application Endpoint. This Keyword is used commonly as part of a Login or Initial Authentication request. Given it's similarities to a pure post request, this could be deprecated in the near future.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the connection to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Create Connection","shortdoc":"Opens a connection to an Application Endpoint. This Keyword is used commonly as part of a Login or Initial Authentication request. Given it's similarities to a pure post request, this could be deprecated in the near future.","tags":[]},{"args":["expected_date","actual_date","key","unmatched_keys_list","margin_type=minutes","margin_amt=10"],"doc":"<p>This method compares two date values, given a certain margin type(minutes, seconds, etc), and a margin amount (int). If the two dates are not within the margin amount for the margin type, I.E. within 10 minutes of difference, it asserts False, and returns an error message.\x3c/p>\n<p>expected_date: (date) The Expected date value of the key being validated.\x3c/p>\n<p>actual_date: (date) The Actual date value of the key being validated.\x3c/p>\n<p>key: (string) The key being validated.\x3c/p>\n<p>unmatched_keys_list: (list) List of Date keys that are not within the accepted margin_type and margin_amt resolution\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (integer) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>","matched":true,"name":"Date Comparator","shortdoc":"This method compares two date values, given a certain margin type(minutes, seconds, etc), and a margin amount (int). If the two dates are not within the margin amount for the margin type, I.E. within 10 minutes of difference, it asserts False, and returns an error message.","tags":[]},{"args":["expected_date","actual_date","key","unmatched_keys_list","**kwargs"],"doc":"<p>This Method is used to validate a single property on a JSON object of the Date Type. It Validates for any the following Date Formats: %Y-%m-%dT%H:%M:%S, %Y-%m-%dT%H:%M:%SZ, %Y-%m-%dT%H:%M:%S.%f, %Y-%m-%dT%H:%M:%S.%fZ\x3c/p>\n<p>expected_date: (string) The Expected date string the key being validated.\x3c/p>\n<p>actual_date: (string) The Actual date string of the key being validated.\x3c/p>\n<p>key: (string) The key being validated.\x3c/p>\n<p>unmatched_keys_list (list): List of keys that are unvalidated - to be passed to error handling method. **kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>","matched":true,"name":"Date String Comparator","shortdoc":"This Method is used to validate a single property on a JSON object of the Date Type. It Validates for any the following Date Formats: %Y-%m-%dT%H:%M:%S, %Y-%m-%dT%H:%M:%SZ, %Y-%m-%dT%H:%M:%S.%f, %Y-%m-%dT%H:%M:%S.%fZ","tags":[]},{"args":["actual_response_dict","expected_response_dict","unmatched_keys_list","ignored_keys=None","**kwargs"],"doc":"","matched":true,"name":"Full List Validation","shortdoc":"","tags":[]},{"args":["unmatched_keys"],"doc":"<p>This method is only used as an internal call from other validating methods to generate an error string containing every unmatched key when a validation fails.\x3c/p>\n<p>unmatchedKeys: (array of key/value pairs) An array containing the unmatched keys during a validation.\x3c/p>","matched":true,"name":"Generate Unmatched Keys Error Message","shortdoc":"This method is only used as an internal call from other validating methods to generate an error string containing every unmatched key when a validation fails.","tags":[]},{"args":["actual_dictionary","expected_dictionary","ignored_keys=None","unmatched_keys_list=None","parent_key=None","full_list_validation=False","**kwargs"],"doc":"<p>This method is used to find and verify the value of every key in the expectedItem dictionary when compared against a single dictionary actual_item, unless any keys are included on the ignored_keys array./n\x3c/p>\n<p>actual_item: (array of dictionaries) The list of dictionary items extracted from a json Response.\x3c/p>\n<p>ExpectedItem: (dictionary) The expected item with the key to be validated.\x3c/p>\n<p>ignored_keys: (strings list) A list of strings of the keys to be ignored on the validation.\x3c/p>\n<p>**kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>\n<p>return: (boolean) If the method completes successfully, it returns True. Appropriate error messages are returned otherwise.\x3c/p>","matched":true,"name":"Key By Key Validator","shortdoc":"This method is used to find and verify the value of every key in the expectedItem dictionary when compared against a single dictionary actual_item, unless any keys are included on the ignored_keys array./n","tags":[]},{"args":["suppress=True"],"doc":"<p>Suppress Insecure Request Warnings. This keyword suppresses or un-suppresses insecure request warnings\x3c/p>\n<p>suppress: (bool) True/False to suppress warnings, default is True\x3c/p>\n<p>Examples:\x3c/p>\n<pre>\nSuppress Insecure Request Warnings                       #Suppresses Insecure Request Warnings\nSuppress Insecure Request Warnings | suppress=True |     #Suppresses Insecure Request Warnings\nSuppress Insecure Request Warnings | False |    #Does Not Suppresses Insecure Request Warnings\n\x3c/pre>","matched":true,"name":"Suppress Insecure Request Warnings","shortdoc":"Suppress Insecure Request Warnings. This keyword suppresses or un-suppresses insecure request warnings","tags":[]},{"args":["json_actual_response","number_of_items"],"doc":"<p>This keyword is used to validate the number of returned items on Request responses from an API.\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>number_of_items: (integer) The expected number of items.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Correct Number Of Items","shortdoc":"This keyword is used to validate the number of returned items on Request responses from an API.","tags":[]},{"args":["json_actual_response","expected_response_dict","ignored_keys=None","full_list_validation=False","identity_key=","**kwargs"],"doc":"<p>This is the most used method for validating Request responses from an API against a supplied expected response. It performs an object to object comparison between two json objects, and if that fails, a more in depth method is called to find the exact discrepancies between the values of the provided objects. Additionally, a list of keys to ignore on the comparison may be supplied, for keys' values to be ignored./n\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>expected_response_dict: (json) The expected response, in json format.\x3c/p>\n<p>ignored_keys: (strings list) A list of strings of the keys to be ignored on the validation.\x3c/p>\n<p>**kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Expected Response","shortdoc":"This is the most used method for validating Request responses from an API against a supplied expected response. It performs an object to object comparison between two json objects, and if that fails, a more in depth method is called to find the exact discrepancies between the values of the provided objects. Additionally, a list of keys to ignore on the comparison may be supplied, for keys' values to be ignored./n","tags":[]},{"args":["json_actual_response","expected_response","key_list"],"doc":"<p>This keyword is used for validating that a specific set of key-value pairs are contained on Request responses from an API.\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>jsonExpectedResponse: (json) The expected response, in json format.\x3c/p>\n<p>key_list: (strings list) A list of strings of the keys to be included on the validation.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Expected Response Only Keys Listed","shortdoc":"This keyword is used for validating that a specific set of key-value pairs are contained on Request responses from an API.","tags":[]}],"name":"API_Library","named_args":true,"scope":"TEST","version":"2.7.1"};
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba API Library\x3c/p>\n<p>This class is the base Library used to generate automated API Tests in the Robot Automation Framework. It has been generated to accommodate the RESTful API design pattern.\x3c/p>","generated":"2021-02-11 14:20:12","inits":[],"keywords":[{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a DELETE Request. This Keyword is basically a wrapper for delete_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Delete Request","shortdoc":"Generate a DELETE Request. This Keyword is basically a wrapper for delete_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","cookies=None","timeout=None"],"doc":"<p>Generate a GET Request. This Keyword is basically a wrapper for get_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc. along with any query parameters.\x3c/p>","matched":true,"name":"Call Get Request","shortdoc":"Generate a GET Request. This Keyword is basically a wrapper for get_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a PATCH Request. This Keyword is basically a wrapper for patch_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Patch Request","shortdoc":"Generate a PATCH Request. This Keyword is basically a wrapper for patch_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","files=None","cookies=None","timeout=None"],"doc":"<p>Generate a POST Request. This Keyword is basically a wrapper for post_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>files: (json) A JSON object that sends in the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Post Request","shortdoc":"Generate a POST Request. This Keyword is basically a wrapper for post_request from the RequestsLibrary.","tags":[]},{"args":["headers=None","endpoint=None","fullstring=None","data=None","cookies=None","timeout=None"],"doc":"<p>Generate a PUT Request. This Keyword is basically a wrapper for put_request from the RequestsLibrary.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the api to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Call Put Request","shortdoc":"Generate a PUT Request. This Keyword is basically a wrapper for put_request from the RequestsLibrary.","tags":[]},{"args":["endpoint","method","data","headers=None","cookies=None","timeout=None"],"doc":"<p>Opens a connection to an Application Endpoint. This Keyword is used commonly as part of a Login or Initial Authentication request. Given it's similarities to a pure post request, this could be deprecated in the near future.\x3c/p>\n<p>headers: (dictionary) The headers to be sent as part of the request.\x3c/p>\n<p>endpoint: (string) The string that identifies the url endpoint of the App that receives API requests.\x3c/p>\n<p>fullstring: (string) A string that contains the rest of the url that identifies a specific API/Webservice along with any query parameters.\x3c/p>\n<p>timeout: (float) Time in seconds for the connection to respond\x3c/p>\n<p>data: (json) The JSON object to be sent on the body of the request to be used by the specific Web service.\x3c/p>\n<p>return: (response object) Returns the request response object, which includes headers, content, etc.\x3c/p>","matched":true,"name":"Create Connection","shortdoc":"Opens a connection to an Application Endpoint. This Keyword is used commonly as part of a Login or Initial Authentication request. Given it's similarities to a pure post request, this could be deprecated in the near future.","tags":[]},{"args":["expected_date","actual_date","key","unmatched_keys_list","margin_type=minutes","margin_amt=10"],"doc":"<p>This method compares two date values, given a certain margin type(minutes, seconds, etc), and a margin amount (int). If the two dates are not within the margin amount for the margin type, I.E. within 10 minutes of difference, it asserts False, and returns an error message.\x3c/p>\n<p>expected_date: (date) The Expected date value of the key being validated.\x3c/p>\n<p>actual_date: (date) The Actual date value of the key being validated.\x3c/p>\n<p>key: (string) The key being validated.\x3c/p>\n<p>unmatched_keys_list: (list) List of Date keys that are not within the accepted margin_type and margin_amt resolution\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (integer) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>","matched":true,"name":"Date Comparator","shortdoc":"This method compares two date values, given a certain margin type(minutes, seconds, etc), and a margin amount (int). If the two dates are not within the margin amount for the margin type, I.E. within 10 minutes of difference, it asserts False, and returns an error message.","tags":[]},{"args":["expected_date","actual_date","key","unmatched_keys_list","**kwargs"],"doc":"<p>This Method is used to validate a single property on a JSON object of the Date Type. It Validates for any the following Date Formats: %Y-%m-%dT%H:%M:%S, %Y-%m-%dT%H:%M:%SZ, %Y-%m-%dT%H:%M:%S.%f, %Y-%m-%dT%H:%M:%S.%fZ\x3c/p>\n<p>expected_date: (string) The Expected date string the key being validated.\x3c/p>\n<p>actual_date: (string) The Actual date string of the key being validated.\x3c/p>\n<p>key: (string) The key being validated.\x3c/p>\n<p>unmatched_keys_list (list): List of keys that are unvalidated - to be passed to error handling method. **kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>","matched":true,"name":"Date String Comparator","shortdoc":"This Method is used to validate a single property on a JSON object of the Date Type. It Validates for any the following Date Formats: %Y-%m-%dT%H:%M:%S, %Y-%m-%dT%H:%M:%SZ, %Y-%m-%dT%H:%M:%S.%f, %Y-%m-%dT%H:%M:%S.%fZ","tags":[]},{"args":["actual_response_dict","expected_response_dict","unmatched_keys_list","ignored_keys=None","**kwargs"],"doc":"","matched":true,"name":"Full List Validation","shortdoc":"","tags":[]},{"args":["unmatched_keys"],"doc":"<p>This method is only used as an internal call from other validating methods to generate an error string containing every unmatched key when a validation fails.\x3c/p>\n<p>unmatchedKeys: (array of key/value pairs) An array containing the unmatched keys during a validation.\x3c/p>","matched":true,"name":"Generate Unmatched Keys Error Message","shortdoc":"This method is only used as an internal call from other validating methods to generate an error string containing every unmatched key when a validation fails.","tags":[]},{"args":["actual_dictionary","expected_dictionary","ignored_keys=None","unmatched_keys_list=None","parent_key=None","full_list_validation=False","**kwargs"],"doc":"<p>This method is used to find and verify the value of every key in the expectedItem dictionary when compared against a single dictionary actual_item, unless any keys are included on the ignored_keys array./n\x3c/p>\n<p>actual_item: (array of dictionaries) The list of dictionary items extracted from a json Response.\x3c/p>\n<p>ExpectedItem: (dictionary) The expected item with the key to be validated.\x3c/p>\n<p>ignored_keys: (strings list) A list of strings of the keys to be ignored on the validation.\x3c/p>\n<p>**kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>\n<p>return: (boolean) If the method completes successfully, it returns True. Appropriate error messages are returned otherwise.\x3c/p>","matched":true,"name":"Key By Key Validator","shortdoc":"This method is used to find and verify the value of every key in the expectedItem dictionary when compared against a single dictionary actual_item, unless any keys are included on the ignored_keys array./n","tags":[]},{"args":["suppress=True"],"doc":"<p>Suppress Insecure Request Warnings. This keyword suppresses or un-suppresses insecure request warnings\x3c/p>\n<p>suppress: (bool) True/False to suppress warnings, default is True\x3c/p>\n<p>Examples:\x3c/p>\n<pre>\nSuppress Insecure Request Warnings                       #Suppresses Insecure Request Warnings\nSuppress Insecure Request Warnings | suppress=True |     #Suppresses Insecure Request Warnings\nSuppress Insecure Request Warnings | False |    #Does Not Suppresses Insecure Request Warnings\n\x3c/pre>","matched":true,"name":"Suppress Insecure Request Warnings","shortdoc":"Suppress Insecure Request Warnings. This keyword suppresses or un-suppresses insecure request warnings","tags":[]},{"args":["json_actual_response","number_of_items"],"doc":"<p>This keyword is used to validate the number of returned items on Request responses from an API.\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>number_of_items: (integer) The expected number of items.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Correct Number Of Items","shortdoc":"This keyword is used to validate the number of returned items on Request responses from an API.","tags":[]},{"args":["json_actual_response","expected_response_dict","ignored_keys=None","full_list_validation=False","identity_key=","**kwargs"],"doc":"<p>This is the most used method for validating Request responses from an API against a supplied expected response. It performs an object to object comparison between two json objects, and if that fails, a more in depth method is called to find the exact discrepancies between the values of the provided objects. Additionally, a list of keys to ignore on the comparison may be supplied, for keys' values to be ignored./n\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>expected_response_dict: (json) The expected response, in json format.\x3c/p>\n<p>ignored_keys: (strings list) A list of strings of the keys to be ignored on the validation.\x3c/p>\n<p>**kwargs: (dict) Currently supported kwargs are margin_type and margin_amt\x3c/p>\n<p>margin_type: (string) The type of unit of time to be used to generate a delta for the date comparisons.\x3c/p>\n<p>margin_amt: (string/#) The amount of units specified in margin_type to allot for difference between dates.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Expected Response","shortdoc":"This is the most used method for validating Request responses from an API against a supplied expected response. It performs an object to object comparison between two json objects, and if that fails, a more in depth method is called to find the exact discrepancies between the values of the provided objects. Additionally, a list of keys to ignore on the comparison may be supplied, for keys' values to be ignored./n","tags":[]},{"args":["json_actual_response","expected_response","key_list"],"doc":"<p>This keyword is used for validating that a specific set of key-value pairs are contained on Request responses from an API.\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>jsonExpectedResponse: (json) The expected response, in json format.\x3c/p>\n<p>key_list: (strings list) A list of strings of the keys to be included on the validation.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Validate Response Contains Expected Response Only Keys Listed","shortdoc":"This keyword is used for validating that a specific set of key-value pairs are contained on Request responses from an API.","tags":[]}],"name":"API_Library","named_args":true,"scope":"TEST","version":"2.7.3"};
 </script>
 <title></title>
 </head>
diff --git a/docs/DesktopLibraryDocumentation.html b/docs/DesktopLibraryDocumentation.html
index c302cf82..8b08134a 100644
--- a/docs/DesktopLibraryDocumentation.html
+++ b/docs/DesktopLibraryDocumentation.html
@@ -614,7 +614,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba Desktop Library\x3c/p>\n<p>This class is the base Library used to generate automated Desktop Tests in the Robot Automation Framework using Appium. This Library uses and extends the robotframework-appiumlibrary.\x3c/p>\n<h2 id=\"Locating or Specifying Elements\">Locating or Specifying Elements\x3c/h2>\n<p>All keywords in DesktopLibrary that need to find an element on the page take a locator argument. To find these locators we use <b>*Accessibility Insights*\x3c/b> to inspect the application under test. This tool allows you to see every UI element/node that you can interact with using DesktopLibrary. <b>*Accessibility Insights*\x3c/b> can be downloaded at <a href=\"https://accessibilityinsights.io/\">https://accessibilityinsights.io/\x3c/a> The tool will show various element attributes. The table below shows you witch locator strategy you should use to find elements with the corresponding attributes.\x3c/p>\n<p>To locate xpath we suggest using the <b>*WinAppDriver UI Recorder*\x3c/b> located here: <a href=\"https://github.com/Microsoft/WinAppDriver/releases\">https://github.com/Microsoft/WinAppDriver/releases\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Locator Strategy\x3c/b>\x3c/td>\n<td><b>Matched Attribute in Insights\x3c/b>\x3c/td>\n<td><b>Example\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>accessibility_id\x3c/td>\n<td>AutomationId\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> accessibility_id=my_element_id\x3c/td>\n\x3c/tr>\n<tr>\n<td>class\x3c/td>\n<td>ClassName\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> class=UIAPickerWheel\x3c/td>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>Name\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> name=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>xpath\x3c/td>\n<td>N/A\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> xpath=//Button[@Name=\"Close\"]\x3c/td>\n\x3c/tr>\n<tr>\n<td>image\x3c/td>\n<td>N/A\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> image=file.png\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>image\x3c/code> locator strategy can only be used with Appium v1.18.0 or higher.\x3c/p>\n<p>Example tests using the windows calculator are located in the tests directory.\x3c/p>\n<h2 id=\"Use of Wait Keywords\">Use of Wait Keywords\x3c/h2>\n<p>When using a modern Windows application there should be no issue with using the 'Wait For And' keywords. However if you are using an older WinForm, Win32, or a larger application it may be necessary to simply use the non-waiting version of keywords. Then you would simply add your waits in manually where necessary using something like <code>Wait Until Page Contains\x3c/code> or <code>Wait Until Page Contains Element\x3c/code>.\x3c/p>","generated":"2020-12-07 15:44:03","inits":[{"args":["timeout=5","run_on_failure=Save Appium Screenshot","driver_path=C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe"],"doc":"<p>DesktopLibrary can be imported with optional arguments.\x3c/p>\n<p><code>timeout\x3c/code> is the default timeout used to wait for all waiting actions. It can be later set with <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a>.\x3c/p>\n<p><code>run_on_failure\x3c/code> specifies the name of a keyword (from any available libraries) to execute when a DesktopLibrary keyword fails. By default <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> will be used to take a screenshot of the current page. Using the value <code>No Operation\x3c/code> will disable this feature altogether. See <a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a> keyword for more information about this functionality.\x3c/p>\n<p><code>driver_path\x3c/code> is the path to the WinAppDriver.exe file.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>10\x3c/td>\n<td># Sets default timeout to 10 seconds\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>run_on_failure=No Operation\x3c/td>\n<td># Sets default timeout to 10 seconds and does nothing on failure\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>driver_path=\"C:/WinAppDriver.exe\"\x3c/td>\n<td># Sets a new path for the WinAppDriver\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Init","shortdoc":"DesktopLibrary can be imported with optional arguments.","tags":[]}],"keywords":[{"args":["filename=None"],"doc":"<p>Takes a screenshot of the current page and embeds it into the log.\x3c/p>\n<p><span class=\"name\">filename\x3c/span> argument specifies the name of the file to write the screenshot into. If no <span class=\"name\">filename\x3c/span> is given, the screenshot is saved into file <span class=\"name\">appium-screenshot-&lt;counter&gt;.png\x3c/span> under the directory where the Robot Framework log file is written into. The <span class=\"name\">filename\x3c/span> is also considered relative to the same directory, if it is not given in absolute format.\x3c/p>\n<p><span class=\"name\">css\x3c/span> can be used to modify how the screenshot is taken. By default the background color is changed to avoid possible problems with background leaking when the page layout is somehow broken.\x3c/p>\n<p>See <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> for a screenshot that will be unique across reports\x3c/p>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into the log.","tags":[]},{"args":["locator"],"doc":"<p>Clears the text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Clear Text","shortdoc":"Clears the text field identified by `locator`.","tags":[]},{"args":["x_offset=0","y_offset=0","double_click=False"],"doc":"<p>Clicks the current mouse location.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be applied to give an offset.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>","matched":true,"name":"Click A Point","shortdoc":"Clicks the current mouse location.","tags":[]},{"args":["index_or_name"],"doc":"<p>Click button\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Click button","tags":[]},{"args":["locator"],"doc":"<p>Click element identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Supported prefixes: <code>accessibility_id\x3c/code>, <code>name\x3c/code>, <code>class\x3c/code>, <code>xpath\x3c/code>, and <code>image\x3c/code>\x3c/p>\n<p>The <code>image\x3c/code> locator strategy can only be used with Appium v1.18.0 and newer.\x3c/p>\n<p>If no prefix is given <code>click element\x3c/code> defaults to <code>accessibility_id\x3c/code> or <code>xpath\x3c/code>\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click element identified by `locator`.","tags":[]},{"args":[],"doc":"<p>Closes all open applications.\x3c/p>\n<p>This keyword is meant to be used in test or suite teardown to make sure all the applications are closed before the test execution finishes.\x3c/p>\n<p>After this keyword, the application indices returned by <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> are reset and start from <span class=\"name\">1\x3c/span>.\x3c/p>","matched":true,"name":"Close All Applications","shortdoc":"Closes all open applications.","tags":[]},{"args":[],"doc":"<p>Closes the current application and also close webdriver session.\x3c/p>","matched":true,"name":"Close Application","shortdoc":"Closes the current application and also close webdriver session.","tags":[]},{"args":["x_offset=0","y_offset=0"],"doc":"<p>Right-clicks the current mouse location.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be applied to give an offset.\x3c/p>","matched":true,"name":"Context Click A Point","shortdoc":"Right-clicks the current mouse location.","tags":[]},{"args":["locator"],"doc":"<p>Double tap element identified by <code>locator\x3c/code>.\x3c/p>","matched":true,"name":"Double Tap","shortdoc":"Double tap element identified by ``locator``.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code>.\x3c/p>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator\x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates.\x3c/p>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element found with ``locator`` to the given ``x_offset`` and ``y_offset`` coordinates.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code> using touch actions.\x3c/p>","matched":true,"name":"Drag And Drop by Touch","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target`` using touch actions.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator \x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates using touch actions.\x3c/p>","matched":true,"name":"Drag And Drop by Touch Offset","shortdoc":"Drags the element found with ``locator `` to the given ``x_offset`` and ``y_offset`` coordinates using touch actions.","tags":[]},{"args":["path=None"],"doc":"<p>Starts the WinAppDriver.\x3c/p>\n<p><code>path\x3c/code> can be provided if your winappdriver installation is not in the default path of <code>C:/Program Files (x86)/Windows Application Driver/WinAppDriver.exe\x3c/code>.\x3c/p>\n<p>Not to be used with Appium.\x3c/p>","matched":true,"name":"Driver Setup","shortdoc":"Starts the WinAppDriver.","tags":[]},{"args":[],"doc":"<p>Stops the WinAppDriver.\x3c/p>\n<p>Not to be used with Appium.\x3c/p>","matched":true,"name":"Driver Teardown","shortdoc":"Stops the WinAppDriver.","tags":[]},{"args":["locator","attr_name","match_pattern","regexp=False"],"doc":"<p>Verify that an attribute of an element matches the expected criteria.\x3c/p>\n<p>The element is identified by <i>locator\x3c/i>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements. If more than one element matches, the first element is selected.\x3c/p>\n<p>The <i>attr_name\x3c/i> is the name of the attribute within the selected element.\x3c/p>\n<p>The <i>match_pattern\x3c/i> is used for the matching, if the match_pattern is\x3c/p>\n<ul>\n<li>boolean or 'True'/'true'/'False'/'false' String then a boolean match is applied\x3c/li>\n<li>any other string is cause a string match\x3c/li>\n\x3c/ul>\n<p>The <i>regexp\x3c/i> defines whether the string match is done using regular expressions (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match%20Regexp\">Should Match Regexp\x3c/a> or string pattern match (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match\">Should Match\x3c/a>)\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>*foobar\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>f.*ar\x3c/td>\n<td>regexp = True\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>enabled\x3c/td>\n<td>True\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<pre>\n1. is a string pattern match i.e. the 'text' attribute should end with the string 'foobar'\n2. is a regular expression match i.e. the regexp 'f.*ar' should be within the 'text' attribute\n3. is a boolead match i.e. the 'enabled' attribute should be True\n\x3c/pre>\n<p><i><b>NOTE: \x3c/b>\x3c/i> On Android the supported attribute names are hard-coded in the <a href=\"https://github.com/appium/appium/blob/master/lib/devices/android/bootstrap/src/io/appium/android/bootstrap/AndroidElement.java\">AndroidElement\x3c/a> Class's getBoolAttribute() and getStringAttribute() methods. Currently supported (appium v1.4.11): <i>contentDescription, text, className, resourceId, enabled, checkable, checked, clickable, focusable, focused, longClickable, scrollable, selected, displayed\x3c/i>\x3c/p>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Some attributes can be evaluated in two different ways e.g. these evaluate the same thing:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>name\x3c/td>\n<td>txt_field_name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Name Should Be\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>txt_field_name\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Element Attribute Should Match","shortdoc":"Verify that an attribute of an element matches the expected criteria.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is disabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified with locator is disabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is enabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified with locator is enabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is visible.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that element identified with locator is visible.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>If you wish to assert an exact (not a substring) match on the text of the element, use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a>.\x3c/p>\n<p>Key attributes for arbitrary elements are <code>id\x3c/code> and <code>xpath\x3c/code>. <code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Should Contain Text","shortdoc":"Verifies element identified by ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message. See <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a> for more details.\x3c/p>","matched":true,"name":"Element Should Not Contain Text","shortdoc":"Verifies element identified by ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> exactly contains text <code>expected\x3c/code>.\x3c/p>\n<p>In contrast to <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a>, this keyword does not try a substring match but an exact match on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies element identified by ``locator`` exactly contains text ``expected``.","tags":[]},{"args":["x_speed","y_speed"],"doc":"<p>Flicks from current position.\x3c/p>\n<p><code>x_speed\x3c/code> is the X speed in pixels per second.\x3c/p>\n<p><code>y_speed\x3c/code> is the Y speed in pixels per second.\x3c/p>","matched":true,"name":"Flick","shortdoc":"Flicks from current position.","tags":[]},{"args":["locator","x_offset","y_offset","speed"],"doc":"<p>Flicks starting at <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> is X offset to flick to.\x3c/p>\n<p><code>y_offset\x3c/code> is Y offset to flick to.\x3c/p>\n<p><code>speed\x3c/code> is Pixels per second to flick.\x3c/p>","matched":true,"name":"Flick From Element","shortdoc":"Flicks starting at ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the current session ID as a reference\x3c/p>","matched":true,"name":"Get Appium SessionId","shortdoc":"Returns the current session ID as a reference","tags":[]},{"args":[],"doc":"<p>Gets the timeout in seconds that is used by various keywords.\x3c/p>\n<p>See <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a> for an explanation.\x3c/p>","matched":true,"name":"Get Appium Timeout","shortdoc":"Gets the timeout in seconds that is used by various keywords.","tags":[]},{"args":["capability_name"],"doc":"<p>Return the desired capability value by desired capability name\x3c/p>","matched":true,"name":"Get Capability","shortdoc":"Return the desired capability value by desired capability name","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get element attribute using given attribute: name, value,...\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>value\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Attribute","shortdoc":"Get element attribute using given attribute: name, value,...","tags":[]},{"args":["locator"],"doc":"<p>Get element location\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Location","shortdoc":"Get element location","tags":[]},{"args":["locator"],"doc":"<p>Get element size\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Size","shortdoc":"Get element size","tags":[]},{"args":["xpath"],"doc":"<p>Returns number of elements matching <code>xpath\x3c/code>\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Xpath%20Should%20Match%20X%20Times\" class=\"name\">Xpath Should Match X Times\x3c/a>.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Matching Xpath Count","shortdoc":"Returns number of elements matching ``xpath``","tags":[]},{"args":["locator"],"doc":"<p>Returns the first <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> object matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${element}\x3c/td>\n<td>Get Webelement\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>${element}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelement","shortdoc":"Returns the first [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] object matching ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns list of <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> objects matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{elements}\x3c/td>\n<td>Get Webelements\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>@{elements}[2]\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This keyword was changed in AppiumLibrary 1.4 in following ways:\x3c/p>\n<ul>\n<li>Name is changed from <span class=\"name\">Get Elements\x3c/span> to current one.\x3c/li>\n<li>Deprecated argument <code>fail_on_error\x3c/code>, use <span class=\"name\">Run Keyword and Ignore Error\x3c/span> if necessary.\x3c/li>\n\x3c/ul>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelements","shortdoc":"Returns list of [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] objects matching ``locator``.","tags":[]},{"args":[],"doc":"<p>Get current device height.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Height","shortdoc":"Get current device height.","tags":[]},{"args":[],"doc":"<p>Get current device width.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Width","shortdoc":"Get current device width.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given password into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Difference between this keyword and <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given <span class=\"name\">text\x3c/span> into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given `text` into text field identified by `locator`.","tags":[]},{"args":[],"doc":"<p>Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.\x3c/p>\n<p>This keyword works while <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> has a test running. This is good practice to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> and <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> between test cases. As Suite Setup is <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>, <span class=\"name\">Test Setup\x3c/span> can be used to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a>\x3c/p>\n<p>Example (syntax is just a representation, refer to RF Guide for usage of Setup/Teardown):\x3c/p>\n<table border=\"1\">\n<tr>\n<td>[Setup Suite]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723\">http://localhost:4723\x3c/a>\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=${App_Path}\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Setup]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Launch Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Quit Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Suite Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Close Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> for quiting application but keeping Appium session running.\x3c/p>","matched":true,"name":"Launch Application","shortdoc":"Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the entire html source of the current page or frame.\x3c/p>\n<p>The <span class=\"name\">loglevel\x3c/span> argument defines the used log level. Valid log levels are <span class=\"name\">WARN\x3c/span>, <span class=\"name\">INFO\x3c/span> (default), <span class=\"name\">DEBUG\x3c/span>, <span class=\"name\">TRACE\x3c/span> and <span class=\"name\">NONE\x3c/span> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the entire html source of the current page or frame.","tags":[]},{"args":["locator","duration=1000"],"doc":"<p>Long press the element with optional duration\x3c/p>","matched":true,"name":"Long Press","shortdoc":"Long press the element with optional duration","tags":[]},{"args":[],"doc":"<p>Maximizes the current application window.\x3c/p>","matched":true,"name":"Maximize Window","shortdoc":"Maximizes the current application window.","tags":[]},{"args":["locator","double_click=False","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over and clicks the given <code>locator\x3c/code>.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Mouse Over And Click Element","shortdoc":"Moves the mouse over and clicks the given ``locator``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over and right-clicks the given <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>\n<p>See also <a href=\"#Mouse%20Over%20And%20Click%20Element\" class=\"name\">Mouse Over And Click Element\x3c/a>\x3c/p>","matched":true,"name":"Mouse Over And Context Click Element","shortdoc":"Moves the mouse over and right-clicks the given ``locator``.","tags":[]},{"args":["x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse from its current location by the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code>.\x3c/p>","matched":true,"name":"Mouse Over By Offset","shortdoc":"Moves the mouse from its current location by the given ``x_offset`` and ``y_offset``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over the given <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Mouse Over Element","shortdoc":"Moves the mouse over the given ``locator``.","tags":[]},{"args":["remote_url","alias=None","window_name=None","splash_delay=0","exact_match=True","**kwargs"],"doc":"<p>Opens a new application to given Appium server. If your application has a splash screen please supply the window name of the final window that will appear. For the capabilities of appium server and Windows please check <a href=\"http://appium.io/docs/en/drivers/windows\">http://appium.io/docs/en/drivers/windows\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>No\x3c/td>\n<td>Alias\x3c/td>\n\x3c/tr>\n<tr>\n<td>window_name\x3c/td>\n<td>No\x3c/td>\n<td>Window name you wish to attach, usually after a splash screen\x3c/td>\n\x3c/tr>\n<tr>\n<td>splash_delay\x3c/td>\n<td>No\x3c/td>\n<td>Delay used when waiting for a splash screen to load, in seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>exact_match\x3c/td>\n<td>No\x3c/td>\n<td>Set to False if window_name does not need to match exactly\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n<td>splash_delay=5\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n<td>exact_match=False\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>A session for the root desktop will also be opened and can be switched to by running the following:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application\x3c/td>\n<td>Desktop\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Open Application","shortdoc":"Opens a new application to given Appium server. If your application has a splash screen please supply the window name of the final window that will appear. For the capabilities of appium server and Windows please check http://appium.io/docs/en/drivers/windows","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that current page contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Text","shortdoc":"Verifies that current page contains `text`.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that current page not contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Text","shortdoc":"Verifies that current page not contains `text`.","tags":[]},{"args":[],"doc":"<p>Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.\x3c/p>\n<p>See <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> for an explanation.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Quit Application","shortdoc":"Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute when a AppiumLibrary keyword fails.\x3c/p>\n<p><span class=\"name\">keyword_name\x3c/span> is the name of a keyword (from any available libraries) that  will be executed if a AppiumLibrary keyword fails. It is not possible to use a keyword that requires arguments. Using the value \"Nothing\" will disable this feature altogether.\x3c/p>\n<p>The initial keyword to use is set in <a href=\"#Importing\" class=\"name\">importing\x3c/a>, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword. It can be used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Log Source\x3c/td>\n<td># Run <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> on failure.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Nothing\x3c/td>\n<td># Disables run-on-failure functionality and stores the previous kw name in a variable.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>${previous kw}\x3c/td>\n<td># Restore to the previous keyword.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This run-on-failure functionality only works when running tests on Python/Jython 2.4 or newer and it does not work on IronPython at all.\x3c/p>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute when a AppiumLibrary keyword fails.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>","matched":true,"name":"Save Appium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["x_offset","y_offset"],"doc":"<p>Scrolls from current position.\x3c/p>\n<p><code>x_offset\x3c/code> is the X offset to scroll to.\x3c/p>\n<p><code>y_offset\x3c/code> is the Y offset to scroll to.\x3c/p>","matched":true,"name":"Scroll","shortdoc":"Scrolls from current position.","tags":[]},{"args":["locator","x_offset","y_offset"],"doc":"<p>Scrolls starting from <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> is the X offset to scroll to.\x3c/p>\n<p><code>y_offset\x3c/code> is the Y offset to scroll to.\x3c/p>","matched":true,"name":"Scroll From Element","shortdoc":"Scrolls starting from ``locator``.","tags":[]},{"args":["list_locator","element_locator","skip_to_desktop=False"],"doc":"<p>Selects the <code>element_locator\x3c/code> from the combobox found by <code>list_locator\x3c/code>.\x3c/p>\n<p>The keyword first checks the current application for the combobox list elements. If it is not found it will switch to the desktop session to look for the elements as many windows applications house the actual combobox items in a pane off of the desktop. <code>skip_to_desktop\x3c/code> can be set to <code>True\x3c/code> in order to go straight to the desktop session. This provides good time savings when dealing with a large application.\x3c/p>","matched":true,"name":"Select Element From ComboBox","shortdoc":"Selects the ``element_locator`` from the combobox found by ``list_locator``.","tags":[]},{"args":["*args"],"doc":"<p>Context clicks the first element and then selects N number of elements in the order they are given. This is useful for working though a nested context menu listing of elements.\x3c/p>\n<p>On failure this keyword will attempt to select the elements from the desktop session due to the nature of some pop-out menus in Windows.\x3c/p>","matched":true,"name":"Select Elements From Context Menu","shortdoc":"Context clicks the first element and then selects N number of elements in the order they are given. This is useful for working though a nested context menu listing of elements.","tags":[]},{"args":["*args"],"doc":"<p>Selects N number of elements in the order they are given. This is useful for working though a nested menu listing of elements.\x3c/p>\n<p>On failure this keyword will attempt to select the elements from the desktop session due to the nature of some pop-out menus in Windows.\x3c/p>","matched":true,"name":"Select Elements From Menu","shortdoc":"Selects N number of elements in the order they are given. This is useful for working though a nested menu listing of elements.","tags":[]},{"args":["*argv"],"doc":"<p>Sends the desired keys in <code>argv\x3c/code>.\x3c/p>\n<p>A list of special key codes can be found <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">here\x3c/a>\x3c/p>\n<p>Note that when sending in a modifier key (Ctrl, Alt, Shift) you will need to send the key again to release it.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Send Keys\x3c/td>\n<td>a\x3c/td>\n<td>b\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Send Keys\x3c/td>\n<td>\\ue00\x3c/td>\n<td>p\x3c/td>\n<td>\\ue00\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Send Keys","shortdoc":"Sends the desired keys in ``argv``.","tags":[]},{"args":["locator","*argv"],"doc":"<p>Sends the desired keys in <code>argv\x3c/code> to <code>locator\x3c/code>.\x3c/p>\n<p>A list of special key codes can be found <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">here\x3c/a>\x3c/p>\n<p>Note that when sending in a modifier key (Ctrl, Alt, Shift) you will need to send the key again to release it.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Send Keys To Element\x3c/td>\n<td>locator\x3c/td>\n<td>a\x3c/td>\n<td>b\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Send Keys To Element\x3c/td>\n<td>locator\x3c/td>\n<td>\\ue00\x3c/td>\n<td>p\x3c/td>\n<td>\\ue00\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Send Keys To Element","shortdoc":"Sends the desired keys in ``argv`` to ``locator``.","tags":[]},{"args":["seconds"],"doc":"<p>Sets the timeout in seconds used by various keywords.\x3c/p>\n<p>There are several <span class=\"name\">Wait ...\x3c/span> keywords that take timeout as an argument. All of these timeout arguments are optional. The timeout used by all of them can be set globally using this keyword.\x3c/p>\n<p>The previous timeout value is returned by this keyword and can be used to set the old value back later. The default timeout is 5 seconds, but it can be altered in <a href=\"#Importing\" class=\"name\">importing\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td>Set Appium Timeout\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open page that loads slowly\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Appium Timeout\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Appium Timeout","shortdoc":"Sets the timeout in seconds used by various keywords.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches the active application by index or alias.\x3c/p>\n<p><span class=\"name\">index_or_alias\x3c/span> is either application index (an integer) or alias (a string). Index is got as the return value of <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>.\x3c/p>\n<p>This keyword returns the index of the previous active application, which can be used to switch back to that application later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${appium1}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>${appium2}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp2\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>sendHello\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>${appium1}\x3c/td>\n<td># Switch using index\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>ackHello\x3c/td>\n<td># Executed on appium running at localhost:4723\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>MyApp2\x3c/td>\n<td># Switch using alias\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Page Should Contain Text\x3c/td>\n<td>ackHello Received\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application","shortdoc":"Switches the active application by index or alias.","tags":[]},{"args":["remote_url","window_name","alias=None","timeout=5","exact_match=True","**kwargs"],"doc":"<p>Switches to a currently opened window by <code>window_name\x3c/code>. For the capabilities of appium server and Windows, Please check <a href=\"http://appium.io/docs/en/drivers/windows\">http://appium.io/docs/en/drivers/windows\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>window_name\x3c/td>\n<td>Yes\x3c/td>\n<td>Window name you wish to attach\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>No\x3c/td>\n<td>alias\x3c/td>\n\x3c/tr>\n<tr>\n<td>timeout\x3c/td>\n<td>No\x3c/td>\n<td>timeout to connect\x3c/td>\n\x3c/tr>\n<tr>\n<td>exact_match\x3c/td>\n<td>No\x3c/td>\n<td>Set to False if window_name does not need to match exactly\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application By Name\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application By Name\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>window_name=MyApp\x3c/td>\n<td>exact_match=False\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>A session for the root desktop will also be opened and can be switched to by running the following:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application\x3c/td>\n<td>Desktop\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application By Name","shortdoc":"Switches to a currently opened window by ``window_name``. For the capabilities of appium server and Windows, Please check http://appium.io/docs/en/drivers/windows | *Option*            | *Man.* | *Description*                         | | remote_url          | Yes    | Appium server url                     | | window_name         | Yes    | Window name you wish to attach        | | alias               | No     | alias                                 | | timeout             | No     | timeout to connect                    | | exact_match         | No     | Set to False if window_name does not need to match exactly       |","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1"],"doc":"<p>Tap element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used for multiple times of tap on that element\x3c/li>\n\x3c/ul>","matched":true,"name":"Tap","shortdoc":"Tap element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","loglevel=INFO"],"doc":"<p>Verifies that element identified with text is visible.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Text Should Be Visible","shortdoc":"Verifies that element identified with text is visible.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and then clear the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Clear Text","shortdoc":"Wait for and then clear the text field identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>Use <a href=\"#Wait%20For%20And%20Mouse%20Over%20And%20Click%20Element\" class=\"name\">Wait For And Mouse Over And Click Element\x3c/a> if this keyword gives issues in the application.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"Wait for and click the element identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and double tap the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Double Tap","shortdoc":"Wait for and double tap the element identified by ``locator``.","tags":[]},{"args":["locator","x_offset","y_offset","speed","timeout=None","error=None"],"doc":"<p>Wait for and flick from element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Flick From Element","shortdoc":"Wait for and flick from element identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Password","shortdoc":"Wait for and type the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given <code>locator\x3c/code> into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"Wait for and type the given ``locator`` into text field identified by ``locator``.","tags":[]},{"args":["locator","duration=10000","timeout=None","error=None"],"doc":"<p>Wait for and long press the element identified by <code>locator\x3c/code> with optional duration.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Long Press","shortdoc":"Wait for and long press the element identified by ``locator`` with optional duration.","tags":[]},{"args":["locator","timeout=None","error=None","double_click=False","x_offset=0","y_offset=0"],"doc":"<p>Waits for, moves the mouse over, and clicks the given <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Wait For And Mouse Over And Click Element","shortdoc":"Waits for, moves the mouse over, and clicks the given ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None","x_offset=0","y_offset=0"],"doc":"<p>Waits for and moves the mouse over the given <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Wait For And Mouse Over Element","shortdoc":"Waits for and moves the mouse over the given ``locator``.","tags":[]},{"args":["locator","x_offset","y_offset","timeout=None","error=None"],"doc":"<p>Wait for and scroll from element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Scroll From Element","shortdoc":"Wait for and scroll from element identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and tap the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Tap","shortdoc":"Wait for and tap the element identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until element specified with ``locator`` contains ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Contains\" class=\"name\">Wait Until Element Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until element specified with ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is disabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Disabled","shortdoc":"Waits until element specified with ``locator`` is disabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until element specified with ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> is visible.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element is visible. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <span class=\"name\">Wait For Condition\x3c/span> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until element specified with `locator` is visible.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the text appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until `text` appears on current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until element specified with `locator` appears on current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the <span class=\"name\">text\x3c/span> disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until `text` disappears from current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until element specified with `locator` disappears from current page.","tags":[]},{"args":["xpath","count","error=None","loglevel=INFO"],"doc":"<p>Verifies that the page contains the given number of elements located by the given <code>xpath\x3c/code>.\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> for explanation about <code>loglevel\x3c/code> argument.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Xpath Should Match X Times","shortdoc":"Verifies that the page contains the given number of elements located by the given ``xpath``.","tags":[]}],"name":"Desktop_Library","named_args":true,"scope":"GLOBAL","version":"2.7.1"};
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba Desktop Library\x3c/p>\n<p>This class is the base Library used to generate automated Desktop Tests in the Robot Automation Framework using Appium. This Library uses and extends the robotframework-appiumlibrary.\x3c/p>\n<h2 id=\"Locating or Specifying Elements\">Locating or Specifying Elements\x3c/h2>\n<p>All keywords in DesktopLibrary that need to find an element on the page take a locator argument. To find these locators we use <b>*Accessibility Insights*\x3c/b> to inspect the application under test. This tool allows you to see every UI element/node that you can interact with using DesktopLibrary. <b>*Accessibility Insights*\x3c/b> can be downloaded at <a href=\"https://accessibilityinsights.io/\">https://accessibilityinsights.io/\x3c/a> The tool will show various element attributes. The table below shows you witch locator strategy you should use to find elements with the corresponding attributes.\x3c/p>\n<p>To locate xpath we suggest using the <b>*WinAppDriver UI Recorder*\x3c/b> located here: <a href=\"https://github.com/Microsoft/WinAppDriver/releases\">https://github.com/Microsoft/WinAppDriver/releases\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Locator Strategy\x3c/b>\x3c/td>\n<td><b>Matched Attribute in Insights\x3c/b>\x3c/td>\n<td><b>Example\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>accessibility_id\x3c/td>\n<td>AutomationId\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> accessibility_id=my_element_id\x3c/td>\n\x3c/tr>\n<tr>\n<td>class\x3c/td>\n<td>ClassName\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> class=UIAPickerWheel\x3c/td>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>Name\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> name=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>xpath\x3c/td>\n<td>N/A\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> xpath=//Button[@Name=\"Close\"]\x3c/td>\n\x3c/tr>\n<tr>\n<td>image\x3c/td>\n<td>N/A\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> image=file.png\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>image\x3c/code> locator strategy can only be used with Appium v1.18.0 or higher.\x3c/p>\n<p>Example tests using the windows calculator are located in the tests directory.\x3c/p>\n<h2 id=\"Use of Wait Keywords\">Use of Wait Keywords\x3c/h2>\n<p>When using a modern Windows application there should be no issue with using the 'Wait For And' keywords. However if you are using an older WinForm, Win32, or a larger application it may be necessary to simply use the non-waiting version of keywords. Then you would simply add your waits in manually where necessary using something like <code>Wait Until Page Contains\x3c/code> or <code>Wait Until Page Contains Element\x3c/code>.\x3c/p>","generated":"2021-02-11 14:20:13","inits":[{"args":["timeout=5","run_on_failure=Save Appium Screenshot","driver_path=C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe"],"doc":"<p>DesktopLibrary can be imported with optional arguments.\x3c/p>\n<p><code>timeout\x3c/code> is the default timeout used to wait for all waiting actions. It can be later set with <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a>.\x3c/p>\n<p><code>run_on_failure\x3c/code> specifies the name of a keyword (from any available libraries) to execute when a DesktopLibrary keyword fails. By default <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> will be used to take a screenshot of the current page. Using the value <code>No Operation\x3c/code> will disable this feature altogether. See <a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a> keyword for more information about this functionality.\x3c/p>\n<p><code>driver_path\x3c/code> is the path to the WinAppDriver.exe file.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>10\x3c/td>\n<td># Sets default timeout to 10 seconds\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>run_on_failure=No Operation\x3c/td>\n<td># Sets default timeout to 10 seconds and does nothing on failure\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>DesktopLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>driver_path=\"C:/WinAppDriver.exe\"\x3c/td>\n<td># Sets a new path for the WinAppDriver\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Init","shortdoc":"DesktopLibrary can be imported with optional arguments.","tags":[]}],"keywords":[{"args":["filename=None"],"doc":"<p>Takes a screenshot of the current page and embeds it into the log.\x3c/p>\n<p><span class=\"name\">filename\x3c/span> argument specifies the name of the file to write the screenshot into. If no <span class=\"name\">filename\x3c/span> is given, the screenshot is saved into file <span class=\"name\">appium-screenshot-&lt;counter&gt;.png\x3c/span> under the directory where the Robot Framework log file is written into. The <span class=\"name\">filename\x3c/span> is also considered relative to the same directory, if it is not given in absolute format.\x3c/p>\n<p><span class=\"name\">css\x3c/span> can be used to modify how the screenshot is taken. By default the background color is changed to avoid possible problems with background leaking when the page layout is somehow broken.\x3c/p>\n<p>See <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> for a screenshot that will be unique across reports\x3c/p>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into the log.","tags":[]},{"args":["locator"],"doc":"<p>Clears the text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Clear Text","shortdoc":"Clears the text field identified by `locator`.","tags":[]},{"args":["x_offset=0","y_offset=0","double_click=False"],"doc":"<p>Clicks the current mouse location.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be applied to give an offset.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>","matched":true,"name":"Click A Point","shortdoc":"Clicks the current mouse location.","tags":[]},{"args":["index_or_name"],"doc":"<p>Click button\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Click button","tags":[]},{"args":["locator"],"doc":"<p>Click element identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Supported prefixes: <code>accessibility_id\x3c/code>, <code>name\x3c/code>, <code>class\x3c/code>, <code>xpath\x3c/code>, and <code>image\x3c/code>\x3c/p>\n<p>The <code>image\x3c/code> locator strategy can only be used with Appium v1.18.0 and newer.\x3c/p>\n<p>If no prefix is given <code>click element\x3c/code> defaults to <code>accessibility_id\x3c/code> or <code>xpath\x3c/code>\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click element identified by `locator`.","tags":[]},{"args":[],"doc":"<p>Closes all open applications.\x3c/p>\n<p>This keyword is meant to be used in test or suite teardown to make sure all the applications are closed before the test execution finishes.\x3c/p>\n<p>After this keyword, the application indices returned by <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> are reset and start from <span class=\"name\">1\x3c/span>.\x3c/p>","matched":true,"name":"Close All Applications","shortdoc":"Closes all open applications.","tags":[]},{"args":[],"doc":"<p>Closes the current application and also close webdriver session.\x3c/p>","matched":true,"name":"Close Application","shortdoc":"Closes the current application and also close webdriver session.","tags":[]},{"args":["x_offset=0","y_offset=0"],"doc":"<p>Right-clicks the current mouse location.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be applied to give an offset.\x3c/p>","matched":true,"name":"Context Click A Point","shortdoc":"Right-clicks the current mouse location.","tags":[]},{"args":["locator"],"doc":"<p>Double tap element identified by <code>locator\x3c/code>.\x3c/p>","matched":true,"name":"Double Tap","shortdoc":"Double tap element identified by ``locator``.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code>.\x3c/p>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator\x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates.\x3c/p>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element found with ``locator`` to the given ``x_offset`` and ``y_offset`` coordinates.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code> using touch actions.\x3c/p>","matched":true,"name":"Drag And Drop by Touch","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target`` using touch actions.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator \x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates using touch actions.\x3c/p>","matched":true,"name":"Drag And Drop by Touch Offset","shortdoc":"Drags the element found with ``locator `` to the given ``x_offset`` and ``y_offset`` coordinates using touch actions.","tags":[]},{"args":["path=None"],"doc":"<p>Starts the WinAppDriver.\x3c/p>\n<p><code>path\x3c/code> can be provided if your winappdriver installation is not in the default path of <code>C:/Program Files (x86)/Windows Application Driver/WinAppDriver.exe\x3c/code>.\x3c/p>\n<p>Not to be used with Appium.\x3c/p>","matched":true,"name":"Driver Setup","shortdoc":"Starts the WinAppDriver.","tags":[]},{"args":[],"doc":"<p>Stops the WinAppDriver.\x3c/p>\n<p>Not to be used with Appium.\x3c/p>","matched":true,"name":"Driver Teardown","shortdoc":"Stops the WinAppDriver.","tags":[]},{"args":["locator","attr_name","match_pattern","regexp=False"],"doc":"<p>Verify that an attribute of an element matches the expected criteria.\x3c/p>\n<p>The element is identified by <i>locator\x3c/i>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements. If more than one element matches, the first element is selected.\x3c/p>\n<p>The <i>attr_name\x3c/i> is the name of the attribute within the selected element.\x3c/p>\n<p>The <i>match_pattern\x3c/i> is used for the matching, if the match_pattern is\x3c/p>\n<ul>\n<li>boolean or 'True'/'true'/'False'/'false' String then a boolean match is applied\x3c/li>\n<li>any other string is cause a string match\x3c/li>\n\x3c/ul>\n<p>The <i>regexp\x3c/i> defines whether the string match is done using regular expressions (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match%20Regexp\">Should Match Regexp\x3c/a> or string pattern match (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match\">Should Match\x3c/a>)\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>*foobar\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>f.*ar\x3c/td>\n<td>regexp = True\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>enabled\x3c/td>\n<td>True\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<pre>\n1. is a string pattern match i.e. the 'text' attribute should end with the string 'foobar'\n2. is a regular expression match i.e. the regexp 'f.*ar' should be within the 'text' attribute\n3. is a boolead match i.e. the 'enabled' attribute should be True\n\x3c/pre>\n<p><i><b>NOTE: \x3c/b>\x3c/i> On Android the supported attribute names are hard-coded in the <a href=\"https://github.com/appium/appium/blob/master/lib/devices/android/bootstrap/src/io/appium/android/bootstrap/AndroidElement.java\">AndroidElement\x3c/a> Class's getBoolAttribute() and getStringAttribute() methods. Currently supported (appium v1.4.11): <i>contentDescription, text, className, resourceId, enabled, checkable, checked, clickable, focusable, focused, longClickable, scrollable, selected, displayed\x3c/i>\x3c/p>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Some attributes can be evaluated in two different ways e.g. these evaluate the same thing:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>name\x3c/td>\n<td>txt_field_name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Name Should Be\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>txt_field_name\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Element Attribute Should Match","shortdoc":"Verify that an attribute of an element matches the expected criteria.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is disabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified with locator is disabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is enabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified with locator is enabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is visible.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that element identified with locator is visible.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>If you wish to assert an exact (not a substring) match on the text of the element, use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a>.\x3c/p>\n<p>Key attributes for arbitrary elements are <code>id\x3c/code> and <code>xpath\x3c/code>. <code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Should Contain Text","shortdoc":"Verifies element identified by ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message. See <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a> for more details.\x3c/p>","matched":true,"name":"Element Should Not Contain Text","shortdoc":"Verifies element identified by ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> exactly contains text <code>expected\x3c/code>.\x3c/p>\n<p>In contrast to <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a>, this keyword does not try a substring match but an exact match on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies element identified by ``locator`` exactly contains text ``expected``.","tags":[]},{"args":["x_speed","y_speed"],"doc":"<p>Flicks from current position.\x3c/p>\n<p><code>x_speed\x3c/code> is the X speed in pixels per second.\x3c/p>\n<p><code>y_speed\x3c/code> is the Y speed in pixels per second.\x3c/p>","matched":true,"name":"Flick","shortdoc":"Flicks from current position.","tags":[]},{"args":["locator","x_offset","y_offset","speed"],"doc":"<p>Flicks starting at <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> is X offset to flick to.\x3c/p>\n<p><code>y_offset\x3c/code> is Y offset to flick to.\x3c/p>\n<p><code>speed\x3c/code> is Pixels per second to flick.\x3c/p>","matched":true,"name":"Flick From Element","shortdoc":"Flicks starting at ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the current session ID as a reference\x3c/p>","matched":true,"name":"Get Appium SessionId","shortdoc":"Returns the current session ID as a reference","tags":[]},{"args":[],"doc":"<p>Gets the timeout in seconds that is used by various keywords.\x3c/p>\n<p>See <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a> for an explanation.\x3c/p>","matched":true,"name":"Get Appium Timeout","shortdoc":"Gets the timeout in seconds that is used by various keywords.","tags":[]},{"args":["capability_name"],"doc":"<p>Return the desired capability value by desired capability name\x3c/p>","matched":true,"name":"Get Capability","shortdoc":"Return the desired capability value by desired capability name","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get element attribute using given attribute: name, value,...\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>value\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Attribute","shortdoc":"Get element attribute using given attribute: name, value,...","tags":[]},{"args":["locator"],"doc":"<p>Get element location\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Location","shortdoc":"Get element location","tags":[]},{"args":["locator"],"doc":"<p>Get element size\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Size","shortdoc":"Get element size","tags":[]},{"args":["xpath"],"doc":"<p>Returns number of elements matching <code>xpath\x3c/code>\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Xpath%20Should%20Match%20X%20Times\" class=\"name\">Xpath Should Match X Times\x3c/a>.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Matching Xpath Count","shortdoc":"Returns number of elements matching ``xpath``","tags":[]},{"args":["locator"],"doc":"<p>Returns the first <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> object matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${element}\x3c/td>\n<td>Get Webelement\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>${element}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelement","shortdoc":"Returns the first [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] object matching ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns list of <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> objects matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{elements}\x3c/td>\n<td>Get Webelements\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>@{elements}[2]\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This keyword was changed in AppiumLibrary 1.4 in following ways:\x3c/p>\n<ul>\n<li>Name is changed from <span class=\"name\">Get Elements\x3c/span> to current one.\x3c/li>\n<li>Deprecated argument <code>fail_on_error\x3c/code>, use <span class=\"name\">Run Keyword and Ignore Error\x3c/span> if necessary.\x3c/li>\n\x3c/ul>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelements","shortdoc":"Returns list of [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] objects matching ``locator``.","tags":[]},{"args":[],"doc":"<p>Get current device height.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Height","shortdoc":"Get current device height.","tags":[]},{"args":[],"doc":"<p>Get current device width.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Width","shortdoc":"Get current device width.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given password into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Difference between this keyword and <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given <span class=\"name\">text\x3c/span> into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given `text` into text field identified by `locator`.","tags":[]},{"args":[],"doc":"<p>Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.\x3c/p>\n<p>This keyword works while <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> has a test running. This is good practice to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> and <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> between test cases. As Suite Setup is <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>, <span class=\"name\">Test Setup\x3c/span> can be used to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a>\x3c/p>\n<p>Example (syntax is just a representation, refer to RF Guide for usage of Setup/Teardown):\x3c/p>\n<table border=\"1\">\n<tr>\n<td>[Setup Suite]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723\">http://localhost:4723\x3c/a>\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=${App_Path}\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Setup]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Launch Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Quit Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Suite Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Close Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> for quiting application but keeping Appium session running.\x3c/p>","matched":true,"name":"Launch Application","shortdoc":"Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the entire html source of the current page or frame.\x3c/p>\n<p>The <span class=\"name\">loglevel\x3c/span> argument defines the used log level. Valid log levels are <span class=\"name\">WARN\x3c/span>, <span class=\"name\">INFO\x3c/span> (default), <span class=\"name\">DEBUG\x3c/span>, <span class=\"name\">TRACE\x3c/span> and <span class=\"name\">NONE\x3c/span> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the entire html source of the current page or frame.","tags":[]},{"args":["locator","duration=1000"],"doc":"<p>Long press the element with optional duration\x3c/p>","matched":true,"name":"Long Press","shortdoc":"Long press the element with optional duration","tags":[]},{"args":[],"doc":"<p>Maximizes the current application window.\x3c/p>","matched":true,"name":"Maximize Window","shortdoc":"Maximizes the current application window.","tags":[]},{"args":["locator","double_click=False","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over and clicks the given <code>locator\x3c/code>.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Mouse Over And Click Element","shortdoc":"Moves the mouse over and clicks the given ``locator``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over and right-clicks the given <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>\n<p>See also <a href=\"#Mouse%20Over%20And%20Click%20Element\" class=\"name\">Mouse Over And Click Element\x3c/a>\x3c/p>","matched":true,"name":"Mouse Over And Context Click Element","shortdoc":"Moves the mouse over and right-clicks the given ``locator``.","tags":[]},{"args":["x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse from its current location by the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code>.\x3c/p>","matched":true,"name":"Mouse Over By Offset","shortdoc":"Moves the mouse from its current location by the given ``x_offset`` and ``y_offset``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Moves the mouse over the given <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Mouse Over Element","shortdoc":"Moves the mouse over the given ``locator``.","tags":[]},{"args":["remote_url","alias=None","window_name=None","splash_delay=0","exact_match=True","**kwargs"],"doc":"<p>Opens a new application to given Appium server. If your application has a splash screen please supply the window name of the final window that will appear. For the capabilities of appium server and Windows please check <a href=\"http://appium.io/docs/en/drivers/windows\">http://appium.io/docs/en/drivers/windows\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>No\x3c/td>\n<td>Alias\x3c/td>\n\x3c/tr>\n<tr>\n<td>window_name\x3c/td>\n<td>No\x3c/td>\n<td>Window name you wish to attach, usually after a splash screen\x3c/td>\n\x3c/tr>\n<tr>\n<td>splash_delay\x3c/td>\n<td>No\x3c/td>\n<td>Delay used when waiting for a splash screen to load, in seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>exact_match\x3c/td>\n<td>No\x3c/td>\n<td>Set to False if window_name does not need to match exactly\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n<td>splash_delay=5\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>app=your.app\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n<td>exact_match=False\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>A session for the root desktop will also be opened and can be switched to by running the following:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application\x3c/td>\n<td>Desktop\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Open Application","shortdoc":"Opens a new application to given Appium server. If your application has a splash screen please supply the window name of the final window that will appear. For the capabilities of appium server and Windows please check http://appium.io/docs/en/drivers/windows","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that current page contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Text","shortdoc":"Verifies that current page contains `text`.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that current page not contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Text","shortdoc":"Verifies that current page not contains `text`.","tags":[]},{"args":[],"doc":"<p>Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.\x3c/p>\n<p>See <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> for an explanation.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Quit Application","shortdoc":"Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute when a AppiumLibrary keyword fails.\x3c/p>\n<p><span class=\"name\">keyword_name\x3c/span> is the name of a keyword (from any available libraries) that  will be executed if a AppiumLibrary keyword fails. It is not possible to use a keyword that requires arguments. Using the value \"Nothing\" will disable this feature altogether.\x3c/p>\n<p>The initial keyword to use is set in <a href=\"#Importing\" class=\"name\">importing\x3c/a>, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword. It can be used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Log Source\x3c/td>\n<td># Run <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> on failure.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Nothing\x3c/td>\n<td># Disables run-on-failure functionality and stores the previous kw name in a variable.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>${previous kw}\x3c/td>\n<td># Restore to the previous keyword.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This run-on-failure functionality only works when running tests on Python/Jython 2.4 or newer and it does not work on IronPython at all.\x3c/p>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute when a AppiumLibrary keyword fails.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>","matched":true,"name":"Save Appium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["x_offset","y_offset"],"doc":"<p>Scrolls from current position.\x3c/p>\n<p><code>x_offset\x3c/code> is the X offset to scroll to.\x3c/p>\n<p><code>y_offset\x3c/code> is the Y offset to scroll to.\x3c/p>","matched":true,"name":"Scroll","shortdoc":"Scrolls from current position.","tags":[]},{"args":["locator","x_offset","y_offset"],"doc":"<p>Scrolls starting from <code>locator\x3c/code>.\x3c/p>\n<p><code>x_offset\x3c/code> is the X offset to scroll to.\x3c/p>\n<p><code>y_offset\x3c/code> is the Y offset to scroll to.\x3c/p>","matched":true,"name":"Scroll From Element","shortdoc":"Scrolls starting from ``locator``.","tags":[]},{"args":["list_locator","element_locator","skip_to_desktop=False"],"doc":"<p>Selects the <code>element_locator\x3c/code> from the combobox found by <code>list_locator\x3c/code>.\x3c/p>\n<p>The keyword first checks the current application for the combobox list elements. If it is not found it will switch to the desktop session to look for the elements as many windows applications house the actual combobox items in a pane off of the desktop. <code>skip_to_desktop\x3c/code> can be set to <code>True\x3c/code> in order to go straight to the desktop session. This provides good time savings when dealing with a large application.\x3c/p>","matched":true,"name":"Select Element From ComboBox","shortdoc":"Selects the ``element_locator`` from the combobox found by ``list_locator``.","tags":[]},{"args":["*args"],"doc":"<p>Context clicks the first element and then selects N number of elements in the order they are given. This is useful for working though a nested context menu listing of elements.\x3c/p>\n<p>On failure this keyword will attempt to select the elements from the desktop session due to the nature of some pop-out menus in Windows.\x3c/p>","matched":true,"name":"Select Elements From Context Menu","shortdoc":"Context clicks the first element and then selects N number of elements in the order they are given. This is useful for working though a nested context menu listing of elements.","tags":[]},{"args":["*args"],"doc":"<p>Selects N number of elements in the order they are given. This is useful for working though a nested menu listing of elements.\x3c/p>\n<p>On failure this keyword will attempt to select the elements from the desktop session due to the nature of some pop-out menus in Windows.\x3c/p>","matched":true,"name":"Select Elements From Menu","shortdoc":"Selects N number of elements in the order they are given. This is useful for working though a nested menu listing of elements.","tags":[]},{"args":["*argv"],"doc":"<p>Sends the desired keys in <code>argv\x3c/code>.\x3c/p>\n<p>A list of special key codes can be found <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">here\x3c/a>\x3c/p>\n<p>Note that when sending in a modifier key (Ctrl, Alt, Shift) you will need to send the key again to release it.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Send Keys\x3c/td>\n<td>a\x3c/td>\n<td>b\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Send Keys\x3c/td>\n<td>\\ue00\x3c/td>\n<td>p\x3c/td>\n<td>\\ue00\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Send Keys","shortdoc":"Sends the desired keys in ``argv``.","tags":[]},{"args":["locator","*argv"],"doc":"<p>Sends the desired keys in <code>argv\x3c/code> to <code>locator\x3c/code>.\x3c/p>\n<p>A list of special key codes can be found <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">here\x3c/a>\x3c/p>\n<p>Note that when sending in a modifier key (Ctrl, Alt, Shift) you will need to send the key again to release it.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Send Keys To Element\x3c/td>\n<td>locator\x3c/td>\n<td>a\x3c/td>\n<td>b\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Send Keys To Element\x3c/td>\n<td>locator\x3c/td>\n<td>\\ue00\x3c/td>\n<td>p\x3c/td>\n<td>\\ue00\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Send Keys To Element","shortdoc":"Sends the desired keys in ``argv`` to ``locator``.","tags":[]},{"args":["seconds"],"doc":"<p>Sets the timeout in seconds used by various keywords.\x3c/p>\n<p>There are several <span class=\"name\">Wait ...\x3c/span> keywords that take timeout as an argument. All of these timeout arguments are optional. The timeout used by all of them can be set globally using this keyword.\x3c/p>\n<p>The previous timeout value is returned by this keyword and can be used to set the old value back later. The default timeout is 5 seconds, but it can be altered in <a href=\"#Importing\" class=\"name\">importing\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td>Set Appium Timeout\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open page that loads slowly\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Appium Timeout\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Appium Timeout","shortdoc":"Sets the timeout in seconds used by various keywords.","tags":[]},{"args":["time_limit=180s","**options"],"doc":"<p>Starts an asynchronous Screen Recording for the current open application.\x3c/p>\n<p><code>timeLimit\x3c/code> sets the actual time limit of the recorded video (defaulting to 180 seconds).\x3c/p>\n<p><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> is used hand in hand with <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>. See <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a> for more details.\x3c/p>\n<p>Keyword requires Appium to be used.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Start Screen Recording","shortdoc":"Starts an asynchronous Screen Recording for the current open application.","tags":[]},{"args":["filename=None","**options"],"doc":"<p>Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).\x3c/p>\n<p>Requires an active or exhausted Screen Recording Session. See <a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> for more details.\x3c/p>\n<h4>Optional Args\x3c/h4>\n<ul>\n<li><code>remotePath\x3c/code> The path to the remote location, where the resulting video should be              uploaded. The following protocols are supported <i>http/https\x3c/i>, ftp. Null or empty                  string value (the default setting) means the content of resulting file should                       be encoded as Base64 and passed as the endpoint response value. An                                  exception will be thrown if the generated media file is too big to fit                              into the available process memory.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>username\x3c/code> The name of the user for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>password\x3c/code> The password for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>method\x3c/code> The http multipart upload method name. The <i>PUT\x3c/i> one is used by default.\x3c/li>\n\x3c/ul>\n<p>Keyword requires Appium to be used.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Stop Screen Recording","shortdoc":"Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches the active application by index or alias.\x3c/p>\n<p><span class=\"name\">index_or_alias\x3c/span> is either application index (an integer) or alias (a string). Index is got as the return value of <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>.\x3c/p>\n<p>This keyword returns the index of the previous active application, which can be used to switch back to that application later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${appium1}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>${appium2}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp2\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>sendHello\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>${appium1}\x3c/td>\n<td># Switch using index\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>ackHello\x3c/td>\n<td># Executed on appium running at localhost:4723\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>MyApp2\x3c/td>\n<td># Switch using alias\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Page Should Contain Text\x3c/td>\n<td>ackHello Received\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application","shortdoc":"Switches the active application by index or alias.","tags":[]},{"args":["remote_url","window_name","alias=None","timeout=5","exact_match=True","**kwargs"],"doc":"<p>Switches to a currently opened window by <code>window_name\x3c/code>. For the capabilities of appium server and Windows, Please check <a href=\"http://appium.io/docs/en/drivers/windows\">http://appium.io/docs/en/drivers/windows\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>window_name\x3c/td>\n<td>Yes\x3c/td>\n<td>Window name you wish to attach\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>No\x3c/td>\n<td>alias\x3c/td>\n\x3c/tr>\n<tr>\n<td>timeout\x3c/td>\n<td>No\x3c/td>\n<td>timeout to connect\x3c/td>\n\x3c/tr>\n<tr>\n<td>exact_match\x3c/td>\n<td>No\x3c/td>\n<td>Set to False if window_name does not need to match exactly\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application By Name\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=Windows\x3c/td>\n<td>deviceName=Windows\x3c/td>\n<td>window_name=MyApplication\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application By Name\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>window_name=MyApp\x3c/td>\n<td>exact_match=False\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>A session for the root desktop will also be opened and can be switched to by running the following:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Switch Application\x3c/td>\n<td>Desktop\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application By Name","shortdoc":"Switches to a currently opened window by ``window_name``. For the capabilities of appium server and Windows, Please check http://appium.io/docs/en/drivers/windows | *Option*            | *Man.* | *Description*                         | | remote_url          | Yes    | Appium server url                     | | window_name         | Yes    | Window name you wish to attach        | | alias               | No     | alias                                 | | timeout             | No     | timeout to connect                    | | exact_match         | No     | Set to False if window_name does not need to match exactly       |","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1"],"doc":"<p>Tap element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used for multiple times of tap on that element\x3c/li>\n\x3c/ul>","matched":true,"name":"Tap","shortdoc":"Tap element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","loglevel=INFO"],"doc":"<p>Verifies that element identified with text is visible.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Text Should Be Visible","shortdoc":"Verifies that element identified with text is visible.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and then clear the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Clear Text","shortdoc":"Wait for and then clear the text field identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>Use <a href=\"#Wait%20For%20And%20Mouse%20Over%20And%20Click%20Element\" class=\"name\">Wait For And Mouse Over And Click Element\x3c/a> if this keyword gives issues in the application.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"Wait for and click the element identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and double tap the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Double Tap","shortdoc":"Wait for and double tap the element identified by ``locator``.","tags":[]},{"args":["locator","x_offset","y_offset","speed","timeout=None","error=None"],"doc":"<p>Wait for and flick from element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Flick From Element","shortdoc":"Wait for and flick from element identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Password","shortdoc":"Wait for and type the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given <code>locator\x3c/code> into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"Wait for and type the given ``locator`` into text field identified by ``locator``.","tags":[]},{"args":["locator","duration=10000","timeout=None","error=None"],"doc":"<p>Wait for and long press the element identified by <code>locator\x3c/code> with optional duration.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Long Press","shortdoc":"Wait for and long press the element identified by ``locator`` with optional duration.","tags":[]},{"args":["locator","timeout=None","error=None","double_click=False","x_offset=0","y_offset=0"],"doc":"<p>Waits for, moves the mouse over, and clicks the given <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p><code>double_click\x3c/code> can be used to click twice.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Wait For And Mouse Over And Click Element","shortdoc":"Waits for, moves the mouse over, and clicks the given ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None","x_offset=0","y_offset=0"],"doc":"<p>Waits for and moves the mouse over the given <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p><code>x_offset\x3c/code> and <code>y_offset\x3c/code> can be used to move to a specific coordinate.\x3c/p>","matched":true,"name":"Wait For And Mouse Over Element","shortdoc":"Waits for and moves the mouse over the given ``locator``.","tags":[]},{"args":["locator","x_offset","y_offset","timeout=None","error=None"],"doc":"<p>Wait for and scroll from element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Scroll From Element","shortdoc":"Wait for and scroll from element identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and tap the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Tap","shortdoc":"Wait for and tap the element identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until element specified with ``locator`` contains ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Contains\" class=\"name\">Wait Until Element Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until element specified with ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is disabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Disabled","shortdoc":"Waits until element specified with ``locator`` is disabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until element specified with ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> is visible.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element is visible. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <span class=\"name\">Wait For Condition\x3c/span> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until element specified with `locator` is visible.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the text appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until `text` appears on current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until element specified with `locator` appears on current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the <span class=\"name\">text\x3c/span> disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until `text` disappears from current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until element specified with `locator` disappears from current page.","tags":[]},{"args":["xpath","count","error=None","loglevel=INFO"],"doc":"<p>Verifies that the page contains the given number of elements located by the given <code>xpath\x3c/code>.\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> for explanation about <code>loglevel\x3c/code> argument.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Xpath Should Match X Times","shortdoc":"Verifies that the page contains the given number of elements located by the given ``xpath``.","tags":[]}],"name":"Desktop_Library","named_args":true,"scope":"GLOBAL","version":"2.7.3"};
 </script>
 <title></title>
 </head>
diff --git a/docs/GUILibraryDocumentation.html b/docs/GUILibraryDocumentation.html
index 56b2e0bf..46e0e344 100644
--- a/docs/GUILibraryDocumentation.html
+++ b/docs/GUILibraryDocumentation.html
@@ -614,7 +614,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba GUI Library\x3c/p>\n<p>This class inherits from the SeleniumLibrary Class, and expands it with some commonly used keywords. For more information on SeleniumLibrary please visit: <a href=\"https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html\">https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html\x3c/a>\x3c/p>","generated":"2020-12-07 15:44:02","inits":[{"args":["timeout=5.0","implicit_wait=0.0","run_on_failure=Save Selenium Screenshot","screenshot_root_directory=None","plugins=None","event_firing_webdriver=None"],"doc":"<p>GUILibrary can be imported with several optional arguments.\x3c/p>\n<ul>\n<li><code>timeout\x3c/code>: Default value for <span class=\"name\">timeouts\x3c/span> used with <code>Wait ...\x3c/code> keywords.\x3c/li>\n<li><code>implicit_wait\x3c/code>: Default value for <span class=\"name\">implicit wait\x3c/span> used when locating elements.\x3c/li>\n<li><code>run_on_failure\x3c/code>: Default action for the <span class=\"name\">run-on-failure functionality\x3c/span>.\x3c/li>\n<li><code>screenshot_root_directory\x3c/code>: Path to folder where possible screenshots are created or EMBED. See <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> keyword for further details about EMBED. If not given, the directory where the log file is written is used.\x3c/li>\n<li><code>plugins\x3c/code>: Allows extending the GUILibrary with external Python classes.\x3c/li>\n<li><code>event_firing_webdriver\x3c/code>: Class for wrapping Selenium with <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver\">EventFiringWebDriver\x3c/a>\x3c/li>\n\x3c/ul>","matched":true,"name":"Init","shortdoc":"GUILibrary can be imported with several optional arguments.","tags":[]}],"keywords":[{"args":["name","value","path=None","domain=None","secure=None","expiry=None"],"doc":"<p>Adds a cookie to your current session.\x3c/p>\n<p><code>name\x3c/code> and <code>value\x3c/code> are required, <code>path\x3c/code>, <code>domain\x3c/code>, <code>secure\x3c/code> and <code>expiry\x3c/code> are optional.  Expiry supports the same formats as the <a href=\"http://robotframework.org/robotframework/latest/libraries/DateTime.html\">DateTime\x3c/a> library or an epoch timestamp.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>domain=example.com\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=2027-09-28 16:21:35\x3c/td>\n<td># Expiry as timestamp.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=1822137695\x3c/td>\n<td># Expiry as epoch seconds.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Prior to SeleniumLibrary 3.0 setting expiry did not work.\x3c/p>","matched":true,"name":"Add Cookie","shortdoc":"Adds a cookie to your current session.","tags":[]},{"args":["strategy_name","strategy_keyword","persist=False"],"doc":"<p>Adds a custom location strategy.\x3c/p>\n<p>See <span class=\"name\">Custom locators\x3c/span> for information on how to create and use custom strategies. <a href=\"#Remove%20Location%20Strategy\" class=\"name\">Remove Location Strategy\x3c/a> can be used to remove a registered strategy.\x3c/p>\n<p>Location strategies are automatically removed after leaving the current scope by default. Setting <code>persist\x3c/code> to a true value (see <span class=\"name\">Boolean arguments\x3c/span>) will cause the location strategy to stay registered throughout the life of the test.\x3c/p>","matched":true,"name":"Add Location Strategy","shortdoc":"Adds a custom location strategy.","tags":[]},{"args":["text=","action=ACCEPT","timeout=None"],"doc":"<p>Verifies that an alert is present and by default, accepts it.\x3c/p>\n<p>Fails if no alert is present. If <code>text\x3c/code> is a non-empty string, then it is used to verify alert's message. The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p><code>action\x3c/code> and <code>timeout\x3c/code> arguments are new in SeleniumLibrary 3.0. In earlier versions, the alert was always accepted and a timeout was hardcoded to one second.\x3c/p>","matched":true,"name":"Alert Should Be Present","shortdoc":"Verifies that an alert is present and by default, accepts it.","tags":[]},{"args":["action=ACCEPT","timeout=0"],"doc":"<p>Verifies that no alert is present.\x3c/p>\n<p>If the alert actually exists, the <code>action\x3c/code> argument determines how it should be handled. By default, the alert is accepted, but it can be also dismissed or left open the same way as with the <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. By default, is not waited for the alert at all, but a custom time can be given if alert may be delayed. See the <span class=\"name\">time format\x3c/span> section for information about the syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Alert Should Not Be Present","shortdoc":"Verifies that no alert is present.","tags":[]},{"args":["locator","id"],"doc":"<p>Assigns a temporary <code>id\x3c/code> to the element specified by <code>locator\x3c/code>.\x3c/p>\n<p>This is mainly useful if the locator is complicated and/or slow XPath expression and it is needed multiple times. Identifier expires when the page is reloaded.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Assign%20Id%20To%20Element\" class=\"name\">Assign ID to Element\x3c/a>\x3c/td>\n<td>//ul[@class='example' and ./li[contains(., 'Stuff')]]\x3c/td>\n<td>my id\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>my id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Assign Id To Element","shortdoc":"Assigns a temporary ``id`` to the element specified by ``locator``.","tags":[]},{"args":["locator","filename=selenium-element-screenshot-{index}.png"],"doc":"<p>Captures a screenshot from the element identified by <code>locator\x3c/code> and embeds it into log file.\x3c/p>\n<p>See <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a> for details about <code>filename\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>An absolute path to the created element screenshot is returned.\x3c/p>\n<p>Support for capturing the screenshot from an element has limited support among browser vendors. Please check the browser vendor driver documentation does the browser support capturing a screenshot from an element.\x3c/p>\n<p>New in SeleniumLibrary 3.3. Support for EMBED is new in SeleniumLibrary 4.2.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>${OUTPUTDIR}/id_image_id-1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Capture Element Screenshot","shortdoc":"Captures a screenshot from the element identified by ``locator`` and embeds it into log file.","tags":[]},{"args":["filename=selenium-screenshot-{index}.png"],"doc":"<p>Takes a screenshot of the current page and embeds it into a log file.\x3c/p>\n<p><code>filename\x3c/code> argument specifies the name of the file to write the screenshot into. The directory where screenshots are saved can be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library or by using the <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> keyword. If the directory is not configured, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p>If <code>filename\x3c/code> equals to EMBED (case insensitive), then screenshot is embedded as Base64 image to the log.html. In this case file is not created in the filesystem.\x3c/p>\n<p>Starting from SeleniumLibrary 1.8, if <code>filename\x3c/code> contains marker <code>{index}\x3c/code>, it will be automatically replaced with an unique running index, preventing files to be overwritten. Indices start from 1, and how they are represented can be customized using Python's <a href=\"https://docs.python.org/3/library/string.html#format-string-syntax\">format string syntax\x3c/a>.\x3c/p>\n<p>An absolute path to the created screenshot file is returned or if <code>filename\x3c/code>  equals to EMBED, word <span class=\"name\">EMBED\x3c/span> is returned.\x3c/p>\n<p>Support for EMBED is new in SeleniumLibrary 4.2\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td>${path} =\x3c/td>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-2.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${path}\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_with_index_{index}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_with_index_1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>formatted_index_{index:03}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/formatted_index_001.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Not Exist\x3c/span>\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into a log file.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is selected/checked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Checkbox Should Be Selected","shortdoc":"Verifies checkbox ``locator`` is selected/checked.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not selected/checked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Checkbox Should Not Be Selected","shortdoc":"Verifies checkbox ``locator`` is not selected/checked.","tags":[]},{"args":["locator","file_path"],"doc":"<p>Inputs the <code>file_path\x3c/code> into the file input field <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is most often used to input files into upload forms. The keyword does not check <code>file_path\x3c/code> is the file or folder available on the machine where tests are executed. If the <code>file_path\x3c/code> points at a file and when using Selenium Grid, Selenium will <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.command.html?highlight=upload#selenium.webdriver.remote.command.Command.UPLOAD_FILE\">magically\x3c/a>, transfer the file from the machine where the tests are executed to the Selenium Grid node where the browser is running. Then Selenium will send the file path, from the nodes file system, to the browser.\x3c/p>\n<p>That <code>file_path\x3c/code> is not checked, is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Choose%20File\" class=\"name\">Choose File\x3c/a>\x3c/td>\n<td>my_upload_field\x3c/td>\n<td>${CURDIR}/trades.csv\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Choose File","shortdoc":"Inputs the ``file_path`` into the file input field ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Clears the value of the text-input-element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Clear Element Text","shortdoc":"Clears the value of the text-input-element identified by ``locator``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks the button identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Clicks the button identified by ``locator``.","tags":[]},{"args":["locator","modifier=False","action_chain=False"],"doc":"<p>Click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>modifier\x3c/code> argument can be used to pass <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys\">Selenium Keys\x3c/a> when clicking the element. The <span class=\"name\">+\x3c/span> can be used as a separator for different Selenium Keys. The <span class=\"name\">CTRL\x3c/span> is internally translated to the <span class=\"name\">CONTROL\x3c/span> key. The <code>modifier\x3c/code> is space and case insensitive, example \"alt\" and \" aLt \" are supported formats to <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.ALT\">ALT key\x3c/a> . If <code>modifier\x3c/code> does not match to Selenium Keys, keyword fails.\x3c/p>\n<p>If <code>action_chain\x3c/code> argument is true, see <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean argument, then keyword uses ActionChain based click instead of the &lt;web_element&gt;.click() function. If both <code>action_chain\x3c/code> and <code>modifier\x3c/code> are defined, the click will be performed using <code>modifier\x3c/code> and <code>action_chain\x3c/code> will be ignored.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>\x3c/td>\n<td># Would click element without any modifiers.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>CTRL\x3c/td>\n<td># Would click element with CTLR key pressed down.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>CTRL+ALT\x3c/td>\n<td># Would click element with CTLR and ALT keys pressed down.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>action_chain=True\x3c/td>\n<td># Clicks the button using an Selenium  ActionChains\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.2 The <code>action_chain\x3c/code> argument is new in SeleniumLibrary 4.1\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click the element identified by ``locator``.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Click the element <code>locator\x3c/code> at <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>The Cursor is moved and the center of the element and x/y coordinates are calculated from that point.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Click Element At Coordinates","shortdoc":"Click the element ``locator`` at ``xoffset/yoffset``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Image","shortdoc":"Clicks an image identified by ``locator``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Link","shortdoc":"Clicks a link identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Closes all open browsers and resets the browser cache.\x3c/p>\n<p>After this keyword, new indexes returned from <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword are reset to 1.\x3c/p>\n<p>This keyword should be used in test or suite teardown to make sure all browsers are closed.\x3c/p>","matched":true,"name":"Close All Browsers","shortdoc":"Closes all open browsers and resets the browser cache.","tags":[]},{"args":[],"doc":"<p>Closes the current browser.\x3c/p>","matched":true,"name":"Close Browser","shortdoc":"Closes the current browser.","tags":[]},{"args":[],"doc":"<p>Closes currently opened and selected browser window/tab.\x3c/p>","matched":true,"name":"Close Window","shortdoc":"Closes currently opened and selected browser window/tab.","tags":[]},{"args":["locator"],"doc":"<p>Will cover elements identified by <code>locator\x3c/code> with a blue div without breaking page layout.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.3.0\x3c/p>\n<p>Example: |<a href=\"#Cover%20Element\" class=\"name\">Cover Element\x3c/a> | css:div#container |\x3c/p>","matched":true,"name":"Cover Element","shortdoc":"Will cover elements identified by ``locator`` with a blue div without breaking page layout.","tags":[]},{"args":["keys","values"],"doc":"<p>This keyword returns a dictionary, given a list of keys and a list of values of the same length.\x3c/p>\n<p>keys: (array of strings) A list of keys to be assigned to a dictionary.\x3c/p>\n<p>values: (array of strings,integers,dictionaries,etc) A list of values to be assigned to a dictionary.\x3c/p>\n<p>return: (dictionary) A dictionary with the mapped key-value pairs.\x3c/p>","matched":true,"name":"Create Dictionary From Keys And Values Lists","shortdoc":"This keyword returns a dictionary, given a list of keys and a list of values of the same length.","tags":[]},{"args":["driver_name","alias=None","kwargs={}","**init_kwargs"],"doc":"<p>Creates an instance of Selenium WebDriver.\x3c/p>\n<p>Like <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>, but allows passing arguments to the created WebDriver instance directly. This keyword should only be used if the functionality provided by <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> is not adequate.\x3c/p>\n<p><code>driver_name\x3c/code> must be a WebDriver implementation name like Firefox, Chrome, Ie, Opera, Safari, PhantomJS, or Remote.\x3c/p>\n<p>The initialized WebDriver can be configured either with a Python dictionary <code>kwargs\x3c/code> or by using keyword arguments <code>**init_kwargs\x3c/code>. These arguments are passed directly to WebDriver without any processing. See <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/api.html\">Selenium API documentation\x3c/a> for details about the supported arguments.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td># Use proxy with Firefox\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy}=\x3c/td>\n<td><span class=\"name\">Evaluate\x3c/span>\x3c/td>\n<td>selenium.webdriver.Proxy()\x3c/td>\n<td>modules=selenium, selenium.webdriver\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy.http_proxy}=\x3c/td>\n<td><span class=\"name\">Set Variable\x3c/span>\x3c/td>\n<td>localhost:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>proxy=${proxy}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Use proxy with PhantomJS\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${service args}=\x3c/td>\n<td><span class=\"name\">Create List\x3c/span>\x3c/td>\n<td>--proxy=192.168.132.104:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>PhantomJS\x3c/td>\n<td>service_args=${service args}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Returns the index of this browser instance which can be used later to switch back to it. Index starts from 1 and is reset back to it when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> keyword is used. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for an example.\x3c/p>","matched":true,"name":"Create Webdriver","shortdoc":"Creates an instance of Selenium WebDriver.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that the current frame contains <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Current Frame Contains\x3c/span>.\x3c/p>","matched":true,"name":"Current Frame Should Contain","shortdoc":"Verifies that the current frame contains ``text``.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that the current frame does not contain <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Current Frame Should Not Contain","shortdoc":"Verifies that the current frame does not contain ``text``.","tags":[]},{"args":[],"doc":"<p>Deletes all cookies.\x3c/p>","matched":true,"name":"Delete All Cookies","shortdoc":"Deletes all cookies.","tags":[]},{"args":["name"],"doc":"<p>Deletes the cookie matching <code>name\x3c/code>.\x3c/p>\n<p>If the cookie is not found, nothing happens.\x3c/p>","matched":true,"name":"Delete Cookie","shortdoc":"Deletes the cookie matching ``name``.","tags":[]},{"args":["locator"],"doc":"<p>Double clicks the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Double Click Element","shortdoc":"Double clicks the element identified by ``locator``.","tags":[]},{"args":["locator","target"],"doc":"<p>Drags the element identified by <code>locator\x3c/code> into the <code>target\x3c/code> element.\x3c/p>\n<p>The <code>locator\x3c/code> argument is the locator of the dragged element and the <code>target\x3c/code> is the locator of the target. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop\" class=\"name\">Drag And Drop\x3c/a>\x3c/td>\n<td>css:div#element\x3c/td>\n<td>css:div.target\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element identified by ``locator`` into the ``target`` element.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Drags the element identified with <code>locator\x3c/code> by <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The element will be moved by <code>xoffset\x3c/code> and <code>yoffset\x3c/code>, each of which is a negative or positive number specifying the offset.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop%20By%20Offset\" class=\"name\">Drag And Drop By Offset\x3c/a>\x3c/td>\n<td>myElem\x3c/td>\n<td>50\x3c/td>\n<td>-35\x3c/td>\n<td># Move myElem 50px right and 35px down\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element identified with ``locator`` by ``xoffset/yoffset``.","tags":[]},{"args":["locator","attribute","expected","message=None"],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains expected attribute value.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example: <a href=\"#Element%20Attribute%20Value%20Should%20Be\" class=\"name\">Element Attribute Value Should Be\x3c/a> | css:img | href | value\x3c/p>\n<p>New in SeleniumLibrary 3.2.\x3c/p>","matched":true,"name":"Element Attribute Value Should Be","shortdoc":"Verifies element identified by ``locator`` contains expected attribute value.","tags":[]},{"args":["locator","attribute","expected_value"],"doc":"<p>Get the CSS attribute value of an element and compare it to an expected value. This would be the values within the 'style' tag.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>attribute: (string) The attribute you wish to get the value for.\x3c/p>\n<p>expected_value: (string) The expected attribute value to be compared against the actual attribute value\x3c/p>","matched":true,"name":"Element CSS Attribute Value Should Be","shortdoc":"Get the CSS attribute value of an element and compare it to an expected value. This would be the values within the 'style' tag.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is disabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified by ``locator`` is disabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is enabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified by ``locator`` is enabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is focused.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Element Should Be Focused","shortdoc":"Verifies that element identified by ``locator`` is focused.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is visible.\x3c/p>\n<p>Herein, visible means that the element is logically visible, not optically visible in the current browser viewport. For example, an element that carries <code>display:none\x3c/code> is not logically visible, so using this keyword on that element would fail.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is visible.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False. New in SeleniumLibrary 3.1.\x3c/p>\n<p><code>ignore_case\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a> if you want to match the exact text, not a substring.\x3c/p>","matched":true,"name":"Element Should Contain","shortdoc":"Verifies that element ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is NOT visible.\x3c/p>\n<p>Passes if the element does not exists. See <a href=\"#Element%20Should%20Be%20Visible\" class=\"name\">Element Should Be Visible\x3c/a> for more information about visibility and supported arguments.\x3c/p>","matched":true,"name":"Element Should Not Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is NOT visible.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p><code>ignore_case\x3c/code> argument new in SeleniumLibrary 3.1.\x3c/p>","matched":true,"name":"Element Should Not Contain","shortdoc":"Verifies that element ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains exact the text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p><code>ignore_case\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Use <a href=\"#Element%20Should%20Contain\" class=\"name\">Element Should Contain\x3c/a> if a substring match is desired.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies that element ``locator`` contains exact the text ``expected``.","tags":[]},{"args":["locator","not_expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> does not contain exact the text <code>not_expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p>New in SeleniumLibrary 3.1.1\x3c/p>","matched":true,"name":"Element Text Should Not Be","shortdoc":"Verifies that element ``locator`` does not contain exact the text ``not_expected``.","tags":[]},{"args":["locator","expected_value"],"doc":"<p>Assert that the value attribute of a web element is equal to a given value\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>expected_value: (string) A string or int value to be compared against the actual web element value\x3c/p>","matched":true,"name":"Element Value Should Be Equal","shortdoc":"Assert that the value attribute of a web element is equal to a given value","tags":[]},{"args":["locator","expected_value"],"doc":"<p>Assert that the value attribute of a web element is not equal to a given value\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>expected_value: (string) A string or int value to be compared against the actual web element value\x3c/p>","matched":true,"name":"Element Value Should Not Be Equal","shortdoc":"Assert that the value attribute of a web element is not equal to a given value","tags":[]},{"args":["*code"],"doc":"<p>Executes asynchronous JavaScript code with possible arguments.\x3c/p>\n<p>Similar to <a href=\"#Execute%20Javascript\" class=\"name\">Execute Javascript\x3c/a> except that scripts executed with this keyword must explicitly signal they are finished by invoking the provided callback. This callback is always injected into the executed function as the last argument.\x3c/p>\n<p>Scripts must complete within the script timeout or this keyword will fail. See the <span class=\"name\">Timeout\x3c/span> section for more information.\x3c/p>\n<p>Starting from SeleniumLibrary 3.2 it is possible to provide JavaScript <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.execute_async_script\">arguments\x3c/a> as part of <code>code\x3c/code> argument. See <a href=\"#Execute%20Javascript\" class=\"name\">Execute Javascript\x3c/a> for more details.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>var callback = arguments[arguments.length - 1]; window.setTimeout(callback, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/async_js_to_execute.js\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${result} =\x3c/td>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>var callback = arguments[arguments.length - 1];\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>function answer(){callback(\"text\");};\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>window.setTimeout(answer, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${result}\x3c/td>\n<td>text\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Async Javascript","shortdoc":"Executes asynchronous JavaScript code with possible arguments.","tags":[]},{"args":["*code"],"doc":"<p>Executes the given JavaScript code with possible arguments.\x3c/p>\n<p><code>code\x3c/code> may be divided into multiple cells in the test data and <code>code\x3c/code> may contain multiple lines of code and arguments. In that case, the JavaScript code parts are concatenated together without adding spaces and optional arguments are separated from <code>code\x3c/code>.\x3c/p>\n<p>If <code>code\x3c/code> is a path to an existing file, the JavaScript to execute will be read from that file. Forward slashes work as a path separator on all operating systems.\x3c/p>\n<p>The JavaScript executes in the context of the currently selected frame or window as the body of an anonymous function. Use <code>window\x3c/code> to refer to the window of your application and <code>document\x3c/code> to refer to the document object of the current frame or window, e.g. <code>document.getElementById('example')\x3c/code>.\x3c/p>\n<p>This keyword returns whatever the executed JavaScript code returns. Return values are converted to the appropriate Python types.\x3c/p>\n<p>Starting from SeleniumLibrary 3.2 it is possible to provide JavaScript <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.execute_script\">arguments\x3c/a> as part of <code>code\x3c/code> argument. The JavaScript code and arguments must be separated with <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers and must be used exactly with this format. If the Javascript code is first, then the <span class=\"name\">JAVASCRIPT\x3c/span> marker is optional. The order of <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers can be swapped, but if <span class=\"name\">ARGUMENTS\x3c/span> is the first marker, then <span class=\"name\">JAVASCRIPT\x3c/span> marker is mandatory. It is only allowed to use <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers only one time in the <code>code\x3c/code> argument.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>window.myFunc('arg1', 'arg2')\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/js_to_execute.js\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>alert(arguments[0]);\x3c/td>\n<td>ARGUMENTS\x3c/td>\n<td>123\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>ARGUMENTS\x3c/td>\n<td>123\x3c/td>\n<td>JAVASCRIPT\x3c/td>\n<td>alert(arguments[0]);\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Javascript","shortdoc":"Executes the given JavaScript code with possible arguments.","tags":[]},{"args":["locator","text","loglevel=TRACE"],"doc":"<p>Verifies that frame identified by <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Frame Should Contain","shortdoc":"Verifies that frame identified by ``locator`` contains ``text``.","tags":[]},{"args":[],"doc":"<p>Returns a list containing ids of all links found in current page.\x3c/p>\n<p>If a link has no id, an empty string will be in the list instead.\x3c/p>","matched":true,"name":"Get All Links","shortdoc":"Returns a list containing ids of all links found in current page.","tags":[]},{"args":[],"doc":"<p>Returns aliases of all active browser that has an alias as NormalizedDict. The dictionary contains the aliases as keys and the index as value. This can be accessed as dictionary <code>${aliases.key}\x3c/code> or as list <code>@{aliases}[0]\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"https://example.com\">https://example.com\x3c/a>\x3c/td>\n<td>alias=BrowserA\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"https://example.com\">https://example.com\x3c/a>\x3c/td>\n<td>alias=BrowserB\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>&amp;{aliases}\x3c/td>\n<td><a href=\"#Get%20Browser%20Aliases\" class=\"name\">Get Browser Aliases\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># &amp;{aliases} = { BrowserA=1|BrowserB=2 }\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Log\x3c/span>\x3c/td>\n<td>${aliases.BrowserA}\x3c/td>\n<td>\x3c/td>\n<td># logs <code>1\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${alias}\x3c/td>\n<td>IN\x3c/td>\n<td>@{aliases}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td><span class=\"name\">Log\x3c/span>\x3c/td>\n<td>${alias}\x3c/td>\n<td># logs <code>BrowserA\x3c/code> and <code>BrowserB\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Get Browser Aliases","shortdoc":"Returns aliases of all active browser that has an alias as NormalizedDict. The dictionary contains the aliases as keys and the index as value. This can be accessed as dictionary ``${aliases.key}`` or as list ``@{aliases}[0]``.","tags":[]},{"args":[],"doc":"<p>Returns index of all active browser as list.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{browser_ids}=\x3c/td>\n<td>Get Browser Ids\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${id}\x3c/td>\n<td>IN\x3c/td>\n<td>@{browser_ids}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>@{window_titles}=\x3c/td>\n<td>Get Window Titles\x3c/td>\n<td>browser=${id}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>Browser ${id} has these windows: ${window_titles}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Get Browser Ids","shortdoc":"Returns index of all active browser as list.","tags":[]},{"args":["name"],"doc":"<p>Returns information of cookie with <code>name\x3c/code> as an object.\x3c/p>\n<p>If no cookie is found with <code>name\x3c/code>, keyword fails. The cookie object contains details about the cookie. Attributes available in the object are documented in the table below.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Attribute\x3c/th>\n<th>Explanation\x3c/th>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>The name of a cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>value\x3c/td>\n<td>Value of the cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>path\x3c/td>\n<td>Indicates a URL path, for example <code>/\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td>domain\x3c/td>\n<td>The domain, the cookie is visible to.\x3c/td>\n\x3c/tr>\n<tr>\n<td>secure\x3c/td>\n<td>When true, the cookie is only used with HTTPS connections.\x3c/td>\n\x3c/tr>\n<tr>\n<td>httpOnly\x3c/td>\n<td>When true, the cookie is not accessible via JavaScript.\x3c/td>\n\x3c/tr>\n<tr>\n<td>expiry\x3c/td>\n<td>Python datetime object indicating when the cookie expires.\x3c/td>\n\x3c/tr>\n<tr>\n<td>extra\x3c/td>\n<td>Possible attributes outside of the WebDriver specification\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See the <a href=\"https://w3c.github.io/webdriver/#cookies\">WebDriver specification\x3c/a> for details about the cookie information. Notice that <code>expiry\x3c/code> is specified as a <a href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\">datetime object\x3c/a>, not as seconds since Unix Epoch like WebDriver natively does.\x3c/p>\n<p>In some cases, example when running a browser in the cloud, it is possible that the cookie contains other attributes than is defined in the <a href=\"https://w3c.github.io/webdriver/#cookies\">WebDriver specification\x3c/a>. These other attributes are available in an <code>extra\x3c/code> attribute in the cookie object and it contains a dictionary of the other attributes. The <code>extra\x3c/code> attribute is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td>${cookie} =\x3c/td>\n<td><a href=\"#Get%20Cookie\" class=\"name\">Get Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.name}\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.value}\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${cookie.expiry.year} &gt; 2017\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get Cookie","shortdoc":"Returns information of cookie with ``name`` as an object.","tags":[]},{"args":["as_dict=False"],"doc":"<p>Returns all cookies of the current page.\x3c/p>\n<p>If <code>as_dict\x3c/code> argument evaluates as false, see <span class=\"name\">Boolean arguments\x3c/span> for more details, then cookie information is returned as a single string in format <code>name1=value1; name2=value2; name3=value3\x3c/code>. When <code>as_dict\x3c/code> argument evaluates as true, cookie information is returned as Robot Framework dictionary format. The string format can be used, for example, for logging purposes or in headers when sending HTTP requests. The dictionary format is helpful when the result can be passed to requests library's Create Session keyword's optional cookies parameter.\x3c/p>\n<p>The <span class=\"name\">` as_dict\x3c/span>` argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Get Cookies","shortdoc":"Returns all cookies of the current page.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Returns the value of <code>attribute\x3c/code> from the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${id}=\x3c/td>\n<td><a href=\"#Get%20Element%20Attribute\" class=\"name\">Get Element Attribute\x3c/a>\x3c/td>\n<td>css:h1\x3c/td>\n<td>id\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Passing attribute name as part of the <code>locator\x3c/code> was removed in SeleniumLibrary 3.2. The explicit <code>attribute\x3c/code> argument should be used instead.\x3c/p>","matched":true,"name":"Get Element Attribute","shortdoc":"Returns the value of ``attribute`` from the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the number of elements matching <code>locator\x3c/code>.\x3c/p>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument. Keyword will always return an integer.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${count} =\x3c/td>\n<td><a href=\"#Get%20Element%20Count\" class=\"name\">Get Element Count\x3c/a>\x3c/td>\n<td>name:div_name\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${count} &gt; 2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get Element Count","shortdoc":"Returns the number of elements matching ``locator``.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get the CSS attribute value of an element. This would be the values within the 'style' tag.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>attribute: (string) The attribute you wish to get the value for.\x3c/p>","matched":true,"name":"Get Element CSS Attribute Value","shortdoc":"Get the CSS attribute value of an element. This would be the values within the 'style' tag.","tags":[]},{"args":["locator"],"doc":"<p>Returns width and height of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Both width and height are returned as integers.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height} =\x3c/td>\n<td><a href=\"#Get%20Element%20Size\" class=\"name\">Get Element Size\x3c/a>\x3c/td>\n<td>css:div#container\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Size","shortdoc":"Returns width and height of the element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the horizontal position of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the left side of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Vertical%20Position\" class=\"name\">Get Vertical Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Horizontal Position","shortdoc":"Returns the horizontal position of the element identified by ``locator``.","tags":[]},{"args":["locator","values=False"],"doc":"<p>Returns all labels or values of selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Returns visible labels by default, but values can be returned by setting the <code>values\x3c/code> argument to a true value (see <span class=\"name\">Boolean arguments\x3c/span>).\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${labels} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>mylist\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${values} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>css:#example select\x3c/td>\n<td>values=True\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Support to return values is new in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get List Items","shortdoc":"Returns all labels or values of selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the current browser window URL.\x3c/p>","matched":true,"name":"Get Location","shortdoc":"Returns the current browser window URL.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs URLs of all windows of the selected browser.\x3c/p>\n<p><b>Browser Scope:\x3c/b>\x3c/p>\n<p>The <code>browser\x3c/code> argument specifies the browser that shall return its windows information.\x3c/p>\n<ul>\n<li><code>browser\x3c/code> can be <code>index_or_alias\x3c/code> like in <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If <code>browser\x3c/code> is <code>CURRENT\x3c/code> (default, case-insensitive) the currently active browser is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If <code>browser\x3c/code> is <code>ALL\x3c/code> (case-insensitive) the window information of all windows of all opened browsers are returned.\x3c/li>\n\x3c/ul>","matched":true,"name":"Get Locations","shortdoc":"Returns and logs URLs of all windows of the selected browser.","tags":[]},{"args":["locator"],"doc":"<p>This keyword grabs the labels from a React-Select list. See <a href=\"https://react-select.com/home\">https://react-select.com/home\x3c/a> for more information on React-Select components.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>","matched":true,"name":"Get React List Labels","shortdoc":"This keyword grabs the labels from a React-Select list. See https://react-select.com/home for more information on React-Select components.","tags":[]},{"args":["locator"],"doc":"<p>Returns the label of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, the label of the first option is returned.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Label","shortdoc":"Returns the label of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns labels of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, returns an empty list if there are no selections. In earlier versions, this caused an error.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Labels","shortdoc":"Returns labels of selected options from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the value of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, the value of the first option is returned.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Value","shortdoc":"Returns the value of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns values of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, returns an empty list if there are no selections. In earlier versions, this caused an error.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Values","shortdoc":"Returns values of selected options from selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Gets the implicit wait value used by Selenium.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Implicit wait\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Implicit Wait","shortdoc":"Gets the implicit wait value used by Selenium.","tags":[]},{"args":[],"doc":"<p>Gets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Selenium Speed\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Speed","shortdoc":"Gets the delay that is waited after each Selenium command.","tags":[]},{"args":[],"doc":"<p>Gets the timeout that is used by various keywords.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Timeout\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Timeout","shortdoc":"Gets the timeout that is used by various keywords.","tags":[]},{"args":[],"doc":"<p>Returns the currently active browser session id.\x3c/p>\n<p>New in SeleniumLibrary 3.2\x3c/p>","matched":true,"name":"Get Session Id","shortdoc":"Returns the currently active browser session id.","tags":[]},{"args":[],"doc":"<p>Returns the entire HTML source of the current page or frame.\x3c/p>","matched":true,"name":"Get Source","shortdoc":"Returns the entire HTML source of the current page or frame.","tags":[]},{"args":["locator","row","column","loglevel=TRACE"],"doc":"<p>Returns contents of a table cell.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its cell found using <code>row\x3c/code> and <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Both row and column indexes start from 1, and header and footer rows are included in the count. It is possible to refer to rows and columns from the end by using negative indexes so that -1 is the last row/column, -2 is the second last, and so on.\x3c/p>\n<p>All <code>&lt;th&gt;\x3c/code> and <code>&lt;td&gt;\x3c/code> elements anywhere in the table are considered to be cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Get Table Cell","shortdoc":"Returns contents of a table cell.","tags":[]},{"args":["locator"],"doc":"<p>Returns the text value of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Text","shortdoc":"Returns the text value of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the HTML text of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of strings) A list of strings extracted from the web elements.\x3c/p>","matched":true,"name":"Get Text From Web Elements List","shortdoc":"This keyword extracts the HTML text of a list of web elements, and returns a list.","tags":[]},{"args":[],"doc":"<p>Returns the title of the current page.\x3c/p>","matched":true,"name":"Get Title","shortdoc":"Returns the title of the current page.","tags":[]},{"args":["locator"],"doc":"<p>Returns the value attribute of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Value","shortdoc":"Returns the value attribute of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the HTML value of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of strings) A list of strings extracted from the web elements.\x3c/p>","matched":true,"name":"Get Values From Web Elements List","shortdoc":"This keyword extracts the HTML value of a list of web elements, and returns a list.","tags":[]},{"args":["locator"],"doc":"<p>Returns the vertical position of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the top of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Horizontal%20Position\" class=\"name\">Get Horizontal Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Vertical Position","shortdoc":"Returns the vertical position of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the vertical position in pixels of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of integers) A list of integers of the vertical pixel positions for the provided web elements.\x3c/p>","matched":true,"name":"Get Vertical Position From Web Elements List","shortdoc":"This keyword extracts the vertical position in pixels of a list of web elements, and returns a list.","tags":[]},{"args":["locator"],"doc":"<p>Returns the first WebElement matching the given <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get WebElement","shortdoc":"Returns the first WebElement matching the given ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns a list of WebElement objects matching the <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, the keyword returns an empty list if there are no matching elements. In previous releases, the keyword failed in this case.\x3c/p>","matched":true,"name":"Get WebElements","shortdoc":"Returns a list of WebElement objects matching the ``locator``.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns all child window handles of the selected browser as a list.\x3c/p>\n<p>Can be used as a list of windows to exclude with <a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0, this keyword was named <span class=\"name\">List Windows\x3c/span>.\x3c/p>","matched":true,"name":"Get Window Handles","shortdoc":"Returns all child window handles of the selected browser as a list.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs id attributes of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Identifiers","shortdoc":"Returns and logs id attributes of all windows of the selected browser.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs names of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Names","shortdoc":"Returns and logs names of all windows of the selected browser.","tags":[]},{"args":[],"doc":"<p>Returns current window position.\x3c/p>\n<p>The position is relative to the top left corner of the screen. Returned values are integers. See also <a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${x}\x3c/td>\n<td>${y}=\x3c/td>\n<td><a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Position","shortdoc":"Returns current window position.","tags":[]},{"args":["inner=False"],"doc":"<p>Returns current window width and height as integers.\x3c/p>\n<p>See also <a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>.\x3c/p>\n<p>If <code>inner\x3c/code> parameter is set to True, keyword returns HTML DOM window.innerWidth and window.innerHeight properties. See <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean arguments. The <code>inner\x3c/code> is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height}=\x3c/td>\n<td><a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${width}\x3c/td>\n<td>${height}=\x3c/td>\n<td><a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>\x3c/td>\n<td>True\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Size","shortdoc":"Returns current window width and height as integers.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs titles of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Titles","shortdoc":"Returns and logs titles of all windows of the selected browser.","tags":[]},{"args":[],"doc":"<p>Simulates the user clicking the back button on their browser.\x3c/p>","matched":true,"name":"Go Back","shortdoc":"Simulates the user clicking the back button on their browser.","tags":[]},{"args":["url"],"doc":"<p>Navigates the current browser window to the provided <code>url\x3c/code>.\x3c/p>","matched":true,"name":"Go To","shortdoc":"Navigates the current browser window to the provided ``url``.","tags":[]},{"args":["action=ACCEPT","timeout=None"],"doc":"<p>Handles the current alert and returns its message.\x3c/p>\n<p>By default, the alert is accepted, but this can be controlled with the <code>action\x3c/code> argument that supports the following case-insensitive values:\x3c/p>\n<ul>\n<li><code>ACCEPT\x3c/code>: Accept the alert i.e. press <code>Ok\x3c/code>. Default.\x3c/li>\n<li><code>DISMISS\x3c/code>: Dismiss the alert i.e. press <code>Cancel\x3c/code>.\x3c/li>\n<li><code>LEAVE\x3c/code>: Leave the alert open.\x3c/li>\n\x3c/ul>\n<p>The <code>timeout\x3c/code> argument specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td># Accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>action=DISMISS\x3c/td>\n<td>\x3c/td>\n<td># Dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>timeout=10 s\x3c/td>\n<td>\x3c/td>\n<td># Use custom timeout and accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>DISMISS\x3c/td>\n<td>1 min\x3c/td>\n<td># Use custom timeout and dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td># Accept alert and get its message.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>LEAVE\x3c/td>\n<td># Leave alert open and get its message.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Handle Alert","shortdoc":"Handles the current alert and returns its message.","tags":[]},{"args":["locator","password","clear=True"],"doc":"<p>Types the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. See <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> for <code>clear\x3c/code> argument details.\x3c/p>\n<p>Difference compared to <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password on the INFO level. Notice that if you use the keyword like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>password\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>the password is shown as a normal keyword argument. A way to avoid that is using variables like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>${PASSWORD}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Please notice that Robot Framework logs all arguments using the TRACE level and tests must not be executed using level below DEBUG if the password should not be logged in any format.\x3c/p>\n<p>The <span class=\"name\">clear\x3c/span> argument is new in SeleniumLibrary 4.0. Hiding password logging from Selenium logs is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","clear=True"],"doc":"<p>Types the given <code>text\x3c/code> into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>When <code>clear\x3c/code> is true, the input element is cleared before the text is typed into the element. When false, the previous text is not cleared from the element. Use <a href=\"#Input%20Password\" class=\"name\">Input Password\x3c/a> if you do not want the given <code>text\x3c/code> to be logged.\x3c/p>\n<p>If <a href=\"https://github.com/SeleniumHQ/selenium/wiki/Grid2\">Selenium Grid\x3c/a> is used and the <code>text\x3c/code> argument points to a file in the file system, then this keyword prevents the Selenium to transfer the file to the Selenium Grid hub. Instead, this keyword will send the <code>text\x3c/code> string as is to the element. If a file should be transferred to the hub and upload should be performed, please use <a href=\"#Choose%20File\" class=\"name\">Choose File\x3c/a> keyword.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. See the <span class=\"name\">Boolean arguments\x3c/span> section how Boolean values are handled.\x3c/p>\n<p>Disabling the file upload the Selenium Grid node and the <span class=\"name\">clear\x3c/span> argument are new in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given ``text`` into the text field identified by ``locator``.","tags":[]},{"args":["text","action=ACCEPT","timeout=None"],"doc":"<p>Types the given <code>text\x3c/code> into an input field in an alert.\x3c/p>\n<p>The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Input Text Into Alert","shortdoc":"Types the given ``text`` into an input field in an alert.","tags":[]},{"args":["locator","*expected"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has <code>expected\x3c/code> options selected.\x3c/p>\n<p>It is possible to give expected options both as visible labels and as values. Starting from SeleniumLibrary 3.0, mixing labels and values is not possible. Order of the selected options is not validated.\x3c/p>\n<p>If no expected options are given, validates that the list has no selections. A more explicit alternative is using <a href=\"#List%20Should%20Have%20No%20Selections\" class=\"name\">List Should Have No Selections\x3c/a>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>gender\x3c/td>\n<td>Female\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>interests\x3c/td>\n<td>Test Automation\x3c/td>\n<td>Python\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"List Selection Should Be","shortdoc":"Verifies selection list ``locator`` has ``expected`` options selected.","tags":[]},{"args":["locator"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has no options selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"List Should Have No Selections","shortdoc":"Verifies selection list ``locator`` has no options selected.","tags":[]},{"args":["url","message=None"],"doc":"<p>Verifies that the current URL is exactly <code>url\x3c/code>.\x3c/p>\n<p>The <code>url\x3c/code> argument contains the exact url that should exist in browser.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.2.0.\x3c/p>","matched":true,"name":"Location Should Be","shortdoc":"Verifies that the current URL is exactly ``url``.","tags":[]},{"args":["expected","message=None"],"doc":"<p>Verifies that the current URL contains <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument contains the expected value in url.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.2.0.\x3c/p>","matched":true,"name":"Location Should Contain","shortdoc":"Verifies that the current URL contains ``expected``.","tags":[]},{"args":["locator","x","message=None","loglevel=TRACE"],"doc":"<p><b>DEPRECATED in SeleniumLibrary 4.0.\x3c/b>, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument instead.\x3c/p>","matched":true,"name":"Locator Should Match X Times","shortdoc":"*DEPRECATED in SeleniumLibrary 4.0.*, use `Page Should Contain Element` with ``limit`` argument instead.","tags":[]},{"args":[],"doc":"<p>Logs and returns the current browser window URL.\x3c/p>","matched":true,"name":"Log Location","shortdoc":"Logs and returns the current browser window URL.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the HTML source of the current page or frame.\x3c/p>\n<p>The <code>loglevel\x3c/code> argument defines the used log level. Valid log levels are <code>WARN\x3c/code>, <code>INFO\x3c/code> (default), <code>DEBUG\x3c/code>, <code>TRACE\x3c/code> and <code>NONE\x3c/code> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the HTML source of the current page or frame.","tags":[]},{"args":[],"doc":"<p>Logs and returns the title of the current page.\x3c/p>","matched":true,"name":"Log Title","shortdoc":"Logs and returns the title of the current page.","tags":[]},{"args":[],"doc":"<p>Maximizes current browser window.\x3c/p>","matched":true,"name":"Maximize Browser Window","shortdoc":"Maximizes current browser window.","tags":[]},{"args":["locator"],"doc":"<p>Simulates pressing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The element is pressed without releasing the mouse button.\x3c/p>\n<p>See also the more specific keywords <a href=\"#Mouse%20Down%20On%20Image\" class=\"name\">Mouse Down On Image\x3c/a> and <a href=\"#Mouse%20Down%20On%20Link\" class=\"name\">Mouse Down On Link\x3c/a>.\x3c/p>","matched":true,"name":"Mouse Down","shortdoc":"Simulates pressing the left mouse button on the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>","matched":true,"name":"Mouse Down On Image","shortdoc":"Simulates a mouse down event on an image identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>","matched":true,"name":"Mouse Down On Link","shortdoc":"Simulates a mouse down event on a link identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates moving the mouse away from the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Out","shortdoc":"Simulates moving the mouse away from the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates hovering the mouse over the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Over","shortdoc":"Simulates hovering the mouse over the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates releasing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Up","shortdoc":"Simulates releasing the left mouse button on the element ``locator``.","tags":[]},{"args":["url=None","browser=firefox","alias=None","remote_url=False","desired_capabilities=None","ff_profile_dir=None","options=None","service_log_path=None","executable_path=None"],"doc":"<p>Opens a new browser instance to the optional <code>url\x3c/code>.\x3c/p>\n<p>The <code>browser\x3c/code> argument specifies which browser to use. The supported browsers are listed in the table below. The browser names are case-insensitive and some browsers have multiple supported names.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Browser\x3c/th>\n<th>Name(s)\x3c/th>\n\x3c/tr>\n<tr>\n<td>Firefox\x3c/td>\n<td>firefox, ff\x3c/td>\n\x3c/tr>\n<tr>\n<td>Google Chrome\x3c/td>\n<td>googlechrome, chrome, gc\x3c/td>\n\x3c/tr>\n<tr>\n<td>Headless Firefox\x3c/td>\n<td>headlessfirefox\x3c/td>\n\x3c/tr>\n<tr>\n<td>Headless Chrome\x3c/td>\n<td>headlesschrome\x3c/td>\n\x3c/tr>\n<tr>\n<td>Internet Explorer\x3c/td>\n<td>internetexplorer, ie\x3c/td>\n\x3c/tr>\n<tr>\n<td>Edge\x3c/td>\n<td>edge\x3c/td>\n\x3c/tr>\n<tr>\n<td>Safari\x3c/td>\n<td>safari\x3c/td>\n\x3c/tr>\n<tr>\n<td>Opera\x3c/td>\n<td>opera\x3c/td>\n\x3c/tr>\n<tr>\n<td>Android\x3c/td>\n<td>android\x3c/td>\n\x3c/tr>\n<tr>\n<td>Iphone\x3c/td>\n<td>iphone\x3c/td>\n\x3c/tr>\n<tr>\n<td>PhantomJS\x3c/td>\n<td>phantomjs\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit\x3c/td>\n<td>htmlunit\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit with Javascript\x3c/td>\n<td>htmlunitwithjs\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>To be able to actually use one of these browsers, you need to have a matching Selenium browser driver available. See the <a href=\"https://github.com/robotframework/SeleniumLibrary#browser-drivers\">project documentation\x3c/a> for more details. Headless Firefox and Headless Chrome are new additions in SeleniumLibrary 3.1.0 and require Selenium 3.8.0 or newer.\x3c/p>\n<p>After opening the browser, it is possible to use optional <code>url\x3c/code> to navigate the browser to the desired address.\x3c/p>\n<p>Optional <code>alias\x3c/code> is an alias given for this browser instance and it can be used for switching between browsers. When same <code>alias\x3c/code> is given with two <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keywords, the first keyword will open a new browser, but the second one will switch to the already opened browser and will not open a new browser. The <code>alias\x3c/code> definition overrules <code>browser\x3c/code> definition. When same <code>alias\x3c/code> is used but a different <code>browser\x3c/code> is defined, then switch to a browser with same alias is done and new browser is not opened. An alternative approach for switching is using an index returned by this keyword. These indices start from 1, are incremented when new browsers are opened, and reset back to 1 when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> is called. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>Optional <code>remote_url\x3c/code> is the URL for a <a href=\"https://github.com/SeleniumHQ/selenium/wiki/Grid2\">Selenium Grid\x3c/a>.\x3c/p>\n<p>Optional <code>desired_capabilities\x3c/code> can be used to configure, for example, logging preferences for a browser or a browser and operating system when using <a href=\"http://saucelabs.com\">Sauce Labs\x3c/a>. Desired capabilities can be given either as a Python dictionary or as a string in the format <code>key1:value1,key2:value2\x3c/code>. <a href=\"https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities\">Selenium documentation\x3c/a> lists possible capabilities that can be enabled.\x3c/p>\n<p>Optional <code>ff_profile_dir\x3c/code> is the path to the Firefox profile directory if you wish to overwrite the default profile Selenium uses. Notice that prior to SeleniumLibrary 3.0, the library contained its own profile that was used by default. The <code>ff_profile_dir\x3c/code> can also be an instance of the <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.firefox_profile.html\">selenium.webdriver.FirefoxProfile\x3c/a> . As a third option, it is possible to use <span class=\"name\">FirefoxProfile\x3c/span> methods and attributes to define the profile using methods and attributes in the same way as with <code>options\x3c/code> argument. Example: It is possible to use FirefoxProfile <span class=\"name\">set_preference\x3c/span> to define different profile settings. See <code>options\x3c/code> argument documentation in below how to handle backslash escaping.\x3c/p>\n<p>Optional <code>options\x3c/code> argument allows defining browser specific Selenium options. Example for Chrome, the <code>options\x3c/code> argument allows defining the following <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">methods and attributes\x3c/a> and for Firefox these <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.options.html?highlight=firefox#selenium.webdriver.firefox.options.Options\">methods and attributes\x3c/a> are available. Please note that not all browsers, supported by the SeleniumLibrary, have Selenium options available. Therefore please consult the Selenium documentation which browsers do support the Selenium options. If <code>browser\x3c/code> argument is <span class=\"name\">android\x3c/span> then <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">Chrome options\x3c/a> is used. Selenium options are also supported, when <code>remote_url\x3c/code> argument is used.\x3c/p>\n<p>The SeleniumLibrary <code>options\x3c/code> argument accepts Selenium options in two different formats: as a string and as Python object which is an instance of the Selenium options class.\x3c/p>\n<p>The string format allows defining Selenium options methods or attributes and their arguments in Robot Framework test data. The method and attributes names are case and space sensitive and must match to the Selenium options methods and attributes names. When defining a method, it must be defined in a similar way as in python: method name, opening parenthesis, zero to many arguments and closing parenthesis. If there is a need to define multiple arguments for a single method, arguments must be separated with comma, just like in Python. Example: <span class=\"name\">add_argument(\"--headless\")\x3c/span> or <span class=\"name\">add_experimental_option(\"key\", \"value\")\x3c/span>. Attributes are defined in a similar way as in Python: attribute name, equal sign, and attribute value. Example, <span class=\"name\">headless=True\x3c/span>. Multiple methods and attributes must be separated by a semicolon. Example: <span class=\"name\">add_argument(\"--headless\");add_argument(\"--start-maximized\")\x3c/span>.\x3c/p>\n<p>Arguments allow defining Python data types and arguments are evaluated by using Python <a href=\"https://docs.python.org/3/library/ast.html#ast.literal_eval\">ast.literal_eval\x3c/a>. Strings must be quoted with single or double quotes, example \"value\" or 'value'. It is also possible to define other Python builtin data types, example <span class=\"name\">True\x3c/span> or <span class=\"name\">None\x3c/span>, by not using quotes around the arguments.\x3c/p>\n<p>The string format is space friendly. Usually, spaces do not alter the defining methods or attributes. There are two exceptions. In some Robot Framework test data formats, two or more spaces are considered as cell separator and instead of defining a single argument, two or more arguments may be defined. Spaces in string arguments are not removed and are left as is. Example <span class=\"name\">add_argument ( \"--headless\" )\x3c/span> is same as <span class=\"name\">add_argument(\"--headless\")\x3c/span>. But <span class=\"name\">add_argument(\" --headless \")\x3c/span> is not same same as <span class=\"name\">add_argument ( \"--headless\" )\x3c/span>, because spaces inside of quotes are not removed. Please note that if options string contains backslash, example a Windows OS path, the backslash needs escaping both in Robot Framework data and in Python side. This means single backslash must be writen using four backslash characters. Example, Windows path: \"C:\\path\\to\\profile\" must be written as \"C:\\\\\\\\path\\\\\\to\\\\\\\\profile\". Another way to write backslash is use Python <a href=\"https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals\">raw strings\x3c/a> and example write: r\"C:\\\\path\\\\to\\\\profile\".\x3c/p>\n<p>As last format, <code>options\x3c/code> argument also supports receiving the Selenium options as Python class instance. In this case, the instance is used as-is and the SeleniumLibrary will not convert the instance to other formats. For example, if the following code return value is saved to <span class=\"name\">${options}\x3c/span> variable in the Robot Framework data:\x3c/p>\n<pre>\noptions = webdriver.ChromeOptions()\noptions.add_argument('--disable-dev-shm-usage')\nreturn options\n\x3c/pre>\n<p>Then the <span class=\"name\">${options}\x3c/span> variable can be used as an argument to <code>options\x3c/code>.\x3c/p>\n<p>Example the <code>options\x3c/code> argument can be used to launch Chomium-based applications which utilize the <a href=\"https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver\">Chromium Embedded Framework\x3c/a> . To lauch Chomium-based application, use <code>options\x3c/code> to define <span class=\"name\">binary_location\x3c/span> attribute and use <span class=\"name\">add_argument\x3c/span> method to define <span class=\"name\">remote-debugging-port\x3c/span> port for the application. Once the browser is opened, the test can interact with the embedded web-content of the system under test.\x3c/p>\n<p>Optional <code>service_log_path\x3c/code> argument defines the name of the file where to write the browser driver logs. If the <code>service_log_path\x3c/code>  argument contain a  marker <code>{index}\x3c/code>, it will be automatically replaced with unique running index preventing files to be overwritten. Indices start's from 1, and how they are represented can be customized using Python's <a href=\"https://docs.python.org/3/library/string.html#format-string-syntax\">format string syntax\x3c/a>.\x3c/p>\n<p>Optional <code>executable_path\x3c/code> argument defines the path to the driver executable, example to a chromedriver or a geckodriver. If not defined it is assumed the executable is in the <a href=\"https://en.wikipedia.org/wiki/PATH_(variable)\">$PATH\x3c/a>.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>alias=Firefox\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Edge\x3c/td>\n<td>remote_url=http://127.0.0.1:4444/wd/hub\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>about:blank\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>browser=Chrome\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Alias examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${1_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=Chrome\x3c/td>\n<td># Opens new browser because alias is new.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${2_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>\x3c/td>\n<td># Opens new browser because alias is not defined.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${3_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=Chrome\x3c/td>\n<td># Switches to the browser with Chrome alias.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${4_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=${1_index}\x3c/td>\n<td># Switches to the browser with Chrome alias.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${1_index}\x3c/td>\n<td>${3_index}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${1_index}\x3c/td>\n<td>${4_index}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${2_index}\x3c/td>\n<td>${2}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Example when using <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">Chrome options\x3c/a> method:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=add_argument(\"--disable-popup-blocking\"); add_argument(\"--ignore-certificate-errors\")\x3c/td>\n<td># Sting format.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${options} =\x3c/td>\n<td>Get Options\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td># Selenium options instance.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=${options}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=binary_location=\"/path/to/binary\";add_argument(\"remote-debugging-port=port\")\x3c/td>\n<td># Start Chomium-based application.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=binary_location=r\"C:\\\\path\\\\to\\\\binary\"\x3c/td>\n<td># Windows OS path escaping.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Example for FirefoxProfile\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=/path/to/profile\x3c/td>\n<td># Using profile from disk.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=${FirefoxProfile_instance}\x3c/td>\n<td># Using instance of FirefoxProfile.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=set_preference(\"key\", \"value\");set_preference(\"other\", \"setting\")\x3c/td>\n<td># Defining profile using FirefoxProfile mehtods.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If the provided configuration options are not enough, it is possible to use <a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a> to customize browser initialization even more.\x3c/p>\n<p>Applying <code>desired_capabilities\x3c/code> argument also for local browser is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Using <code>alias\x3c/code> to decide, is the new browser opened is new in SeleniumLibrary 4.0. The <code>options\x3c/code> and <code>service_log_path\x3c/code> are new in SeleniumLibrary 4.0. Support for <code>ff_profile_dir\x3c/code> accepting an instance of the <span class=\"name\">selenium.webdriver.FirefoxProfile\x3c/span> and support defining FirefoxProfile with methods and attributes are new in SeleniumLibrary 4.0.\x3c/p>\n<p>Making <code>url\x3c/code> optional is new in SeleniumLibrary 4.1.\x3c/p>\n<p>The <code>executable_path\x3c/code> argument is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Open Browser","shortdoc":"Opens a new browser instance to the optional ``url``.","tags":[]},{"args":["locator"],"doc":"<p>Opens the context menu on the element identified by <code>locator\x3c/code>.\x3c/p>","matched":true,"name":"Open Context Menu","shortdoc":"Opens the context menu on the element identified by ``locator``.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that current page contains <code>text\x3c/code>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <code>loglevel\x3c/code> argument. Valid log levels are <code>DEBUG\x3c/code>, <code>INFO\x3c/code> (default), <code>WARN\x3c/code>, and <code>NONE\x3c/code>. If the log level is <code>NONE\x3c/code> or below the current active log level the source will not be logged.\x3c/p>","matched":true,"name":"Page Should Contain","shortdoc":"Verifies that current page contains ``text``.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Button","shortdoc":"Verifies button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is found from the current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is found from the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE","limit=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> is found on the current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should contain. When <code>limit\x3c/code> is <code>None\x3c/code> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Examples assumes that locator matches to two elements.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=1\x3c/td>\n<td># Keyword fails.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=2\x3c/td>\n<td># Keyword passes.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=none\x3c/td>\n<td># None is considered one or more.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>\x3c/td>\n<td># Same as above.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>limit\x3c/code> argument is new in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that element ``locator`` is found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Image","shortdoc":"Verifies image identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Link","shortdoc":"Verifies link identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain List","shortdoc":"Verifies selection list ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies text field <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Textfield","shortdoc":"Verifies text field ``locator`` is found from current page.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies the current page does not contain <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Page Should Not Contain","shortdoc":"Verifies the current page does not contain ``text``.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Button","shortdoc":"Verifies button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not found from the current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is not found from the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies that element <code>locator\x3c/code> is not found on the current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that element ``locator`` is not found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Image","shortdoc":"Verifies image identified by ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Link","shortdoc":"Verifies link identified by ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain List","shortdoc":"Verifies selection list ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies text field <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Textfield","shortdoc":"Verifies text field ``locator`` is not found from current page.","tags":[]},{"args":["locator","key"],"doc":"<p><b>DEPRECATED in SeleniumLibrary 4.0.\x3c/b> use <a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a> instead.\x3c/p>","matched":true,"name":"Press Key","shortdoc":"*DEPRECATED in SeleniumLibrary 4.0.* use `Press Keys` instead.","tags":[]},{"args":["locator=None","*keys"],"doc":"<p>Simulates the user pressing key(s) to an element or on the active browser.\x3c/p>\n<p>If <code>locator\x3c/code> evaluates as false, see <span class=\"name\">Boolean arguments\x3c/span> for more details, then the <code>keys\x3c/code> are sent to the currently active browser. Otherwise element is searched and <code>keys\x3c/code> are send to the element identified by the <code>locator\x3c/code>. In later case, keyword fails if element is not found. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>keys\x3c/code> arguments can contain one or many strings, but it can not be empty. <code>keys\x3c/code> can also be a combination of <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">Selenium Keys\x3c/a> and strings or a single Selenium Key. If Selenium Key is combined with strings, Selenium key and strings must be separated by the <span class=\"name\">+\x3c/span> character, like in <span class=\"name\">CONTROL+c\x3c/span>. Selenium Keys are space and case sensitive and Selenium Keys are not parsed inside of the string. Example AALTO, would send string <span class=\"name\">AALTO\x3c/span> and <span class=\"name\">ALT\x3c/span> not parsed inside of the string. But <span class=\"name\">A+ALT+O\x3c/span> would found Selenium ALT key from the <code>keys\x3c/code> argument. It also possible to press many Selenium Keys down at the same time, example 'ALT+ARROW_DOWN`.\x3c/p>\n<p>If Selenium Keys are detected in the <code>keys\x3c/code> argument, keyword will press the Selenium Key down, send the strings and then release the Selenium Key. If keyword needs to send a Selenium Key as a string, then each character must be separated with <span class=\"name\">+\x3c/span> character, example <span class=\"name\">E+N+D\x3c/span>.\x3c/p>\n<p><span class=\"name\">CTRL\x3c/span> is alias for <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.CONTROL\">Selenium CONTROL\x3c/a> and ESC is alias for <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.ESCAPE\">Selenium ESCAPE\x3c/a>\x3c/p>\n<p>New in SeleniumLibrary 3.3\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>AAAAA\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"AAAAA\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>BBBBB\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"BBBBB\" to currently active browser.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>E+N+D\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"END\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>XXX\x3c/td>\n<td>YY\x3c/td>\n<td># Sends strings \"XXX\" and \"YY\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>XXX+YY\x3c/td>\n<td>\x3c/td>\n<td># Same as above.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>ALT+ARROW_DOWN\x3c/td>\n<td>\x3c/td>\n<td># Pressing \"ALT\" key down, then pressing ARROW_DOWN and then releasing both keys.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>ALT\x3c/td>\n<td>ARROW_DOWN\x3c/td>\n<td># Pressing \"ALT\" key and then pressing ARROW_DOWN.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>CTRL+c\x3c/td>\n<td>\x3c/td>\n<td># Pressing CTRL key down, sends string \"c\" and then releases CTRL key.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>button\x3c/td>\n<td>RETURN\x3c/td>\n<td>\x3c/td>\n<td># Pressing \"ENTER\" key to element.\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Press Keys","shortdoc":"Simulates the user pressing key(s) to an element or on the active browser.","tags":[]},{"args":["group_name","value"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> is set to <code>value\x3c/code>.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Be Set To","shortdoc":"Verifies radio button group ``group_name`` is set to ``value``.","tags":[]},{"args":["group_name"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> has no selection.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Not Be Selected","shortdoc":"Verifies radio button group ``group_name`` has no selection.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute, when a SeleniumLibrary keyword fails.\x3c/p>\n<p><code>keyword\x3c/code> is the name of a keyword that will be executed if a SeleniumLibrary keyword fails. It is possible to use any available keyword, including user keywords or keywords from other libraries, but the keyword must not take any arguments.\x3c/p>\n<p>The initial keyword to use is set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>It is possible to use string <code>NOTHING\x3c/code> or <code>NONE\x3c/code>, case-insensitively, as well as Python <code>None\x3c/code> to disable this feature altogether.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword or Python <code>None\x3c/code> if this functionality was previously disabled. The return value can be always used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>Log Source\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>NONE\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>${previous kw}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Changes in SeleniumLibrary 3.0:\x3c/p>\n<ul>\n<li>Possible to use string <code>NONE\x3c/code> or Python <code>None\x3c/code> to disable the functionality.\x3c/li>\n<li>Return Python <code>None\x3c/code> when the functionality was disabled earlier. In previous versions special value <code>No Keyword\x3c/code> was returned and it could not be used to restore the original state.\x3c/li>\n\x3c/ul>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute, when a SeleniumLibrary keyword fails.","tags":[]},{"args":[],"doc":"<p>Simulates user reloading page.\x3c/p>","matched":true,"name":"Reload Page","shortdoc":"Simulates user reloading page.","tags":[]},{"args":["strategy_name"],"doc":"<p>Removes a previously added custom location strategy.\x3c/p>\n<p>See <span class=\"name\">Custom locators\x3c/span> for information on how to create and use custom strategies.\x3c/p>","matched":true,"name":"Remove Location Strategy","shortdoc":"Removes a previously added custom location strategy.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>\n<p>If <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> has been set to <code>EMBED\x3c/code> then the screenshot will be embedded into the report\x3c/p>","matched":true,"name":"Save Selenium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls the element identified by <code>locator\x3c/code> into view.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.2.0\x3c/p>","matched":true,"name":"Scroll Element Into View","shortdoc":"Scrolls the element identified by ``locator`` into view.","tags":[]},{"args":[],"doc":"<p>This keyword scrolls down to the bottom of the page, if jquery is not available it will scroll 20000 pixels\x3c/p>","matched":true,"name":"Scroll To Bottom Of Page","shortdoc":"This keyword scrolls down to the bottom of the page, if jquery is not available it will scroll 20000 pixels","tags":[]},{"args":["locator"],"doc":"<p>Selects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select All From List","shortdoc":"Selects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Selects the checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if checkbox is already selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select Checkbox","shortdoc":"Selects the checkbox identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Sets frame identified by <code>locator\x3c/code> as the current frame.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Works both with frames and iframes. Use <a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a> to cancel the frame selection and return to the main frame.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>top-frame\x3c/td>\n<td># Select frame with id or name 'top-frame'\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Click link 'example' in the selected frame\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Back to main frame.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>//iframe[@name='xxx']\x3c/td>\n<td># Select frame using xpath\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Frame","shortdoc":"Sets frame identified by ``locator`` as the current frame.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Index","shortdoc":"Selects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Label","shortdoc":"Selects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Value","shortdoc":"Selects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["*locators"],"doc":"<p>Selects a frame nested in other frames\x3c/p>\n<p>locators: (list) A list of selenium locators(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>Example (Selects iframe3 after traversing iframe1 and iframe2):\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Nested%20Frame\" class=\"name\">Select Nested Frame\x3c/a>\x3c/td>\n<td>id-iframe1\x3c/td>\n<td>id=iframe2\x3c/td>\n<td>id=iframe3\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Nested Frame","shortdoc":"Selects a frame nested in other frames","tags":[]},{"args":["group_name","value"],"doc":"<p>Sets the radio button group <code>group_name\x3c/code> to <code>value\x3c/code>.\x3c/p>\n<p>The radio button to be selected is located by two arguments:\x3c/p>\n<ul>\n<li><code>group_name\x3c/code> is the name of the radio button group.\x3c/li>\n<li><code>value\x3c/code> is the <code>id\x3c/code> or <code>value\x3c/code> attribute of the actual radio button.\x3c/li>\n\x3c/ul>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>size\x3c/td>\n<td>XL\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>contact\x3c/td>\n<td>email\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Radio Button","shortdoc":"Sets the radio button group ``group_name`` to ``value``.","tags":[]},{"args":["locator=MAIN","timeout=None"],"doc":"<p>DEPRECATED in SeleniumLibrary 4.0. , use <a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a> instead.\x3c/p>","matched":true,"name":"Select Window","shortdoc":"DEPRECATED in SeleniumLibrary 4.0. , use `Switch Window` instead.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>Same as <a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a> but only affects the current browser.\x3c/p>","matched":true,"name":"Set Browser Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["locator"],"doc":"<p>Sets the focus to the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Focus\x3c/span>.\x3c/p>","matched":true,"name":"Set Focus To Element","shortdoc":"Sets the focus to the element identified by ``locator``.","tags":[]},{"args":["path"],"doc":"<p>Sets the directory for captured screenshots.\x3c/p>\n<p><code>path\x3c/code> argument specifies the absolute path to a directory where the screenshots should be written to. If the directory does not exist, it will be created. The directory can also be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. If it is not configured anywhere, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p>If <code>path\x3c/code> equals to EMBED (case insensitive) and <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a> or <a href=\"#Capture%20Element%20Screenshot\" class=\"name\">capture Element Screenshot\x3c/a> keywords filename argument is not changed from the default value, then the page or element screenshot is embedded as Base64 image to the log.html.\x3c/p>\n<p>The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>Returning the previous value is new in SeleniumLibrary 3.0. The persist argument was removed in SeleniumLibrary 3.2 and EMBED is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Set Screenshot Directory","shortdoc":"Sets the directory for captured screenshots.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>This keyword sets the implicit wait for all opened browsers. Use <a href=\"#Set%20Browser%20Implicit%20Wait\" class=\"name\">Set Browser Implicit Wait\x3c/a> to set it only to the current browser.\x3c/p>\n<p>See the <span class=\"name\">Implicit wait\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig wait} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>10 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Perform AJAX call that is slow\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>${orig wait}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["value"],"doc":"<p>Sets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <span class=\"name\">Selenium Speed\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Selenium%20Speed\" class=\"name\">Set Selenium Speed\x3c/a>\x3c/td>\n<td>0.5 seconds\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Speed","shortdoc":"Sets the delay that is waited after each Selenium command.","tags":[]},{"args":["value"],"doc":"<p>Sets the timeout that is used by various keywords.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <span class=\"name\">Timeout\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Open page that loads slowly\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Timeout","shortdoc":"Sets the timeout that is used by various keywords.","tags":[]},{"args":["x","y"],"doc":"<p>Sets window position using <code>x\x3c/code> and <code>y\x3c/code> coordinates.\x3c/p>\n<p>The position is relative to the top left corner of the screen, but some browsers exclude possible task bar set by the operating system from the calculation. The actual position may thus be different with different browsers.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>\x3c/td>\n<td>100\x3c/td>\n<td>200\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Position","shortdoc":"Sets window position using ``x`` and ``y`` coordinates.","tags":[]},{"args":["width","height","inner=False"],"doc":"<p>Sets current windows size to given <code>width\x3c/code> and <code>height\x3c/code>.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>.\x3c/p>\n<p>Browsers have a limit on their minimum size. Trying to set them smaller will cause the actual size to be bigger than the requested size.\x3c/p>\n<p>If <code>inner\x3c/code> parameter is set to True, keyword sets the necessary window width and height to have the desired HTML DOM <i>window.innerWidth\x3c/i> and <i>window.innerHeight\x3c/i>. See <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean arguments.\x3c/p>\n<p>The <code>inner\x3c/code> argument is new since SeleniumLibrary 4.0.\x3c/p>\n<p>This <code>inner\x3c/code> argument does not support Frames. If a frame is selected, switch to default before running this.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>\x3c/td>\n<td>800\x3c/td>\n<td>600\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>\x3c/td>\n<td>800\x3c/td>\n<td>600\x3c/td>\n<td>True\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Size","shortdoc":"Sets current windows size to given ``width`` and ``height``.","tags":[]},{"args":["locator","event"],"doc":"<p>Simulates <code>event\x3c/code> on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is useful if element has <code>OnEvent\x3c/code> handler that needs to be explicitly invoked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Simulate\x3c/span>.\x3c/p>","matched":true,"name":"Simulate Event","shortdoc":"Simulates ``event`` on the element identified by ``locator``.","tags":[]},{"args":["locator=None"],"doc":"<p>Submits a form identified by <code>locator\x3c/code>.\x3c/p>\n<p>If <code>locator\x3c/code> is not given, first form on the page is submitted.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Submit Form","shortdoc":"Submits a form identified by ``locator``.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches between active browsers using <code>index_or_alias\x3c/code>.\x3c/p>\n<p>Indices are returned by the <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword and aliases can be given to it explicitly. Indices start from 1.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>ff\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>ie\x3c/td>\n<td>alias=second\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>1\x3c/td>\n<td># index\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>I'm feeling lucky\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>second\x3c/td>\n<td># alias\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>More Yahoo!\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Above example expects that there was no other open browsers when opening the first one because it used index <code>1\x3c/code> when switching to it later. If you are not sure about that, you can store the index into a variable as below.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Do something ...\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>${index}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Browser","shortdoc":"Switches between active browsers using ``index_or_alias``.","tags":[]},{"args":["locator=MAIN","timeout=None","browser=CURRENT"],"doc":"<p>Switches to browser window matching <code>locator\x3c/code>.\x3c/p>\n<p>If the window is found, all subsequent commands use the selected window, until this keyword is used again. If the window is not found, this keyword fails. The previous windows handle is returned and can be used to switch back to it later.\x3c/p>\n<p>Notice that alerts should be handled with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> or other alert related keywords.\x3c/p>\n<p>The <code>locator\x3c/code> can be specified using different strategies somewhat similarly as when <span class=\"name\">locating elements\x3c/span> on pages.\x3c/p>\n<ul>\n<li>By default, the <code>locator\x3c/code> is matched against window handle, name, title, and URL. Matching is done in that order and the first matching window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>The <code>locator\x3c/code> can specify an explicit strategy by using the format <code>strategy:value\x3c/code> (recommended) or <code>strategy=value\x3c/code>. Supported strategies are <code>name\x3c/code>, <code>title\x3c/code>, and <code>url\x3c/code>. These matches windows using their name, title, or URL, respectively. Additionally, <code>default\x3c/code> can be used to explicitly use the default strategy explained above.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>NEW\x3c/code> (case-insensitive), the latest opened window is selected. It is an error if this is the same as the current window.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>MAIN\x3c/code> (default, case-insensitive), the main window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>CURRENT\x3c/code> (case-insensitive), nothing is done. This effectively just returns the current window handle.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is not a string, it is expected to be a list of window handles <i>to exclude\x3c/i>. Such a list of excluded windows can be got from <a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a> before doing an action that opens a new window.\x3c/li>\n\x3c/ul>\n<p>The <code>timeout\x3c/code> is used to specify how long keyword will poll to select the new window. The <code>timeout\x3c/code> is new in SeleniumLibrary 3.2.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup1\x3c/td>\n<td>\x3c/td>\n<td># Open new window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td>\x3c/td>\n<td># Select window using default strategy\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Button\" class=\"name\">Click Button\x3c/a>\x3c/td>\n<td>popup2\x3c/td>\n<td>\x3c/td>\n<td># Open another window\x3c/td>\n\x3c/tr>\n<tr>\n<td>${handle} =\x3c/td>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>NEW\x3c/td>\n<td># Select latest opened window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 2\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>${handle}\x3c/td>\n<td>\x3c/td>\n<td># Select window using handle\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>MAIN\x3c/td>\n<td>\x3c/td>\n<td># Select the main window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Main\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${excludes} =\x3c/td>\n<td><a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Get list of current windows\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup3\x3c/td>\n<td>\x3c/td>\n<td># Open one more window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>${excludes}\x3c/td>\n<td>\x3c/td>\n<td># Select window using excludes\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 3\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>browser\x3c/code> argument allows with <code>index_or_alias\x3c/code> to implicitly switch to a specific browser when switching to a window. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/p>\n<ul>\n<li>If the <code>browser\x3c/code> is <code>CURRENT\x3c/code> (case-insensitive), no other browser is selected.\x3c/li>\n\x3c/ul>\n<p><b>NOTE:\x3c/b>\x3c/p>\n<ul>\n<li>The <code>strategy:value\x3c/code> syntax is only supported by SeleniumLibrary 3.0 and newer.\x3c/li>\n<li>Prior to SeleniumLibrary 3.0 matching windows by name, title and URL was case-insensitive.\x3c/li>\n<li>Earlier versions supported aliases <code>None\x3c/code>, <code>null\x3c/code> and the empty string for selecting the main window, and alias <code>self\x3c/code> for selecting the current window. Support for these aliases was removed in SeleniumLibrary 3.2.\x3c/li>\n\x3c/ul>","matched":true,"name":"Switch Window","shortdoc":"Switches to browser window matching ``locator``.","tags":[]},{"args":["locator","row","column","expected","loglevel=TRACE"],"doc":"<p>Verifies table cell contains text <code>expected\x3c/code>.\x3c/p>\n<p>See <a href=\"#Get%20Table%20Cell\" class=\"name\">Get Table Cell\x3c/a> that this keyword uses internally for an explanation about accepted arguments.\x3c/p>","matched":true,"name":"Table Cell Should Contain","shortdoc":"Verifies table cell contains text ``expected``.","tags":[]},{"args":["locator","column","expected","loglevel=TRACE"],"doc":"<p>Verifies table column contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Column indexes start from 1. It is possible to refer to columns from the end by using negative indexes so that -1 is the last column, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple columns, those merged cells count as a single column.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Column Should Contain","shortdoc":"Verifies table column contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table footer contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;td&gt;\x3c/code> element inside <code>&lt;tfoot&gt;\x3c/code> element is considered to be part of the footer.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Footer Should Contain","shortdoc":"Verifies table footer contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table header contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;th&gt;\x3c/code> element anywhere in the table is considered to be part of the header.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Header Should Contain","shortdoc":"Verifies table header contains text ``expected``.","tags":[]},{"args":["locator","row","expected","loglevel=TRACE"],"doc":"<p>Verifies that table row contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Row indexes start from 1. It is possible to refer to rows from the end by using negative indexes so that -1 is the last row, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple rows, a match only occurs for the uppermost row of those merged cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Row Should Contain","shortdoc":"Verifies that table row contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Should Contain","shortdoc":"Verifies table contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Should Contain","shortdoc":"Verifies text area ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Value Should Be","shortdoc":"Verifies text area ``locator`` has exactly text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Should Contain","shortdoc":"Verifies text field ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Value Should Be","shortdoc":"Verifies text field ``locator`` has exactly text ``expected``.","tags":[]},{"args":["title","message=None"],"doc":"<p>Verifies that the current page title equals <code>title\x3c/code>.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>","matched":true,"name":"Title Should Be","shortdoc":"Verifies that the current page title equals ``title``.","tags":[]},{"args":["string","number_of_characters"],"doc":"<p>Truncates a given string to a certain amount of the given number of characters parameter.\x3c/p>\n<p>string: (string) Original String number_of_characters: (integer) Truncation index return: (string) A truncated String\x3c/p>","matched":true,"name":"Truncate String","shortdoc":"Truncates a given string to a certain amount of the given number of characters parameter.","tags":[]},{"args":["locator"],"doc":"<p>Unselects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Unselect All From List","shortdoc":"Unselects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first unselects the current iFrame, then executes a wait for and select frame for a new iFrame.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Unselect And Select Frame","shortdoc":"This is a series of chained Selenium keywords, that first unselects the current iFrame, then executes a wait for and select frame for a new iFrame.","tags":[]},{"args":["locator"],"doc":"<p>Removes the selection of checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if the checkbox is not selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect Checkbox","shortdoc":"Removes the selection of checkbox identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Sets the main frame as the current frame.\x3c/p>\n<p>In practice cancels the previous <a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a> call.\x3c/p>","matched":true,"name":"Unselect Frame","shortdoc":"Sets the main frame as the current frame.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0. This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Index","shortdoc":"Unselects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Label","shortdoc":"Unselects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Value","shortdoc":"Unselects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that tries to find a web element first, and then clicks it. If the element fails to be clicked, it will scroll to the bottom of the page and try again.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"This is a series of chained Selenium keywords, that tries to find a web element first, and then clicks it. If the element fails to be clicked, it will scroll to the bottom of the page and try again.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be on the DOM, executes Focus on it, then it waits for it to be visible.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Focus On Element","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be on the DOM, executes Focus on it, then it waits for it to be visible.","tags":[]},{"args":["locator","text","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that tries to find a web element first, and then input text. If the element fails to typed into, it will scroll to the bottom of the page and try again.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>text: (string) Text to be typed into the input field. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"This is a series of chained Selenium keywords, that tries to find a web element first, and then input text. If the element fails to typed into, it will scroll to the bottom of the page and try again.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, then executes a mouse over command on it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Mouse Over","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, then executes a mouse over command on it.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, executes a mouse over command on it, and it finally clicks it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Mouse Over And Click","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, executes a mouse over command on it, and it finally clicks it.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, then selects it if it's a checkbox.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Checkbox","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, then selects it if it's a checkbox.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits until an iFrame exists in the page, and then selects it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Frame","shortdoc":"This is a series of chained Selenium keywords, that first waits until an iFrame exists in the page, and then selects it.","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s).\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s).","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the index of the item(s) web element.\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List By Index","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the index of the item(s) web element.","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the value attribute of the item(s) web element.\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List By Value","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the value attribute of the item(s) web element.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, used to wait until a window with the title argument exists, then it selects that window.\x3c/p>\n<p>title: (string) The title of the window you are waiting for. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Window","shortdoc":"This is a series of chained Selenium keywords, used to wait until a window with the title argument exists, then it selects that window.","tags":[]},{"args":["condition","timeout=None","error=None"],"doc":"<p>Waits until <code>condition\x3c/code> is true or <code>timeout\x3c/code> expires.\x3c/p>\n<p>The condition can be arbitrary JavaScript expression but it must return a value to be evaluated. See <a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a> for information about accessing content on pages.\x3c/p>\n<p>Fails if the timeout expires before the condition becomes true. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return document.title == \"New Title\"\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return jQuery.active == 0\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>style = document.querySelector('h1').style; return style.background == \"red\" &amp;&amp; style.color == \"white\"\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Wait For Condition","shortdoc":"Waits until ``condition`` is true or ``timeout`` expires.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until the element ``locator`` contains ``text``.","tags":[]},{"args":["locator","expected_value","timeout=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> appears on the current page and contains value. Fails if <code>timeout\x3c/code> expires before the element appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Wait Until Element Contains Value","shortdoc":"Waits until the element ``locator`` appears on the current page and contains value. Fails if ``timeout`` expires before the element appears. See the `Timeouts` section for more information about using timeouts and their default value and the `Locating elements` section for details about the locator syntax.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until the element ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Element is considered enabled if it is not disabled nor read-only.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is enabled. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Considering read-only elements to be disabled is a new feature in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until the element ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is not visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is not visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Not Visible","shortdoc":"Waits until the element ``locator`` is not visible.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until the element ``locator`` is visible.","tags":[]},{"args":[],"doc":"<p>This keyword polls the jQuery.active flag, to track execution of AJAX requests. The web application needs to have jQuery in order for this to work.\x3c/p>","matched":true,"name":"Wait Until Javascript Is Complete","shortdoc":"This keyword polls the jQuery.active flag, to track execution of AJAX requests. The web application needs to have jQuery in order for this to work.","tags":[]},{"args":["expected","timeout=None","message=None"],"doc":"<p>Waits until the current URL contains <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument contains the expected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location contains. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Wait Until Location Contains","shortdoc":"Waits until the current URL contains ``expected``.","tags":[]},{"args":["location","timeout=None","message=None"],"doc":"<p>Waits until the current URL does not contains <code>location\x3c/code>.\x3c/p>\n<p>The <code>location\x3c/code> argument contains value not expected in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location not contains. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.3\x3c/p>","matched":true,"name":"Wait Until Location Does Not Contain","shortdoc":"Waits until the current URL does not contains ``location``.","tags":[]},{"args":["expected","timeout=None","message=None"],"doc":"<p>Waits until the current URL is <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument is the expected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location is. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Wait Until Location Is","shortdoc":"Waits until the current URL is ``expected``.","tags":[]},{"args":["location","timeout=None","message=None"],"doc":"<p>Waits until the current URL is not <code>location\x3c/code>.\x3c/p>\n<p>The <code>location\x3c/code> argument is the unexpected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location is not. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.3\x3c/p>","matched":true,"name":"Wait Until Location Is Not","shortdoc":"Waits until the current URL is not ``location``.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> appears on the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until ``text`` appears on the current page.","tags":[]},{"args":["locator","timeout=None","error=None","limit=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> appears on the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should contain. When <code>limit\x3c/code> is <span class=\"name\">None\x3c/span> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.\x3c/p>\n<p><code>limit\x3c/code> is new in SeleniumLibrary 4.4\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until the element ``locator`` appears on the current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> disappears from the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until ``text`` disappears from the current page.","tags":[]},{"args":["locator","timeout=None","error=None","limit=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> disappears from the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should not contain. When <code>limit\x3c/code> is <span class=\"name\">None\x3c/span> (default) page can`t contain any elements. When limit is a number, page must not contain same number of elements.\x3c/p>\n<p><code>limit\x3c/code> is new in SeleniumLibrary 4.4\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until the element ``locator`` disappears from the current page.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, used to wait until a window with the title no longer exists.\x3c/p>\n<p>title: (string) The title of the window you are expecting to close. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait Until Window Closes","shortdoc":"This is a series of chained Selenium keywords, used to wait until a window with the title no longer exists.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>Used to get the titles of the current browser windows, then verify that the provided window title is among them.\x3c/p>\n<p>title: (string) The title of the window you are waiting for.\x3c/p>\n<p>timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait Until Window Opens","shortdoc":"Used to get the titles of the current browser windows, then verify that the provided window title is among them.","tags":[]},{"args":["title"],"doc":"<p>This is a series of chained Selenium keywords, used to check that a window with the title no longer exists.\x3c/p>\n<p>title: (string) The title of the window you are expecting to be closed.\x3c/p>","matched":true,"name":"Window Should Not Be Open","shortdoc":"This is a series of chained Selenium keywords, used to check that a window with the title no longer exists.","tags":[]}],"name":"GUI_Library","named_args":true,"scope":"GLOBAL","version":"2.7.1"};
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba GUI Library\x3c/p>\n<p>This class inherits from the SeleniumLibrary Class, and expands it with some commonly used keywords. For more information on SeleniumLibrary please visit: <a href=\"https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html\">https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html\x3c/a>\x3c/p>","generated":"2021-02-11 14:20:12","inits":[{"args":["timeout=5.0","implicit_wait=0.0","run_on_failure=Save Selenium Screenshot","screenshot_root_directory=None","plugins=None","event_firing_webdriver=None"],"doc":"<p>GUILibrary can be imported with several optional arguments.\x3c/p>\n<ul>\n<li><code>timeout\x3c/code>: Default value for <span class=\"name\">timeouts\x3c/span> used with <code>Wait ...\x3c/code> keywords.\x3c/li>\n<li><code>implicit_wait\x3c/code>: Default value for <span class=\"name\">implicit wait\x3c/span> used when locating elements.\x3c/li>\n<li><code>run_on_failure\x3c/code>: Default action for the <span class=\"name\">run-on-failure functionality\x3c/span>.\x3c/li>\n<li><code>screenshot_root_directory\x3c/code>: Path to folder where possible screenshots are created or EMBED. See <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> keyword for further details about EMBED. If not given, the directory where the log file is written is used.\x3c/li>\n<li><code>plugins\x3c/code>: Allows extending the GUILibrary with external Python classes.\x3c/li>\n<li><code>event_firing_webdriver\x3c/code>: Class for wrapping Selenium with <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.event_firing_webdriver.html#module-selenium.webdriver.support.event_firing_webdriver\">EventFiringWebDriver\x3c/a>\x3c/li>\n\x3c/ul>","matched":true,"name":"Init","shortdoc":"GUILibrary can be imported with several optional arguments.","tags":[]}],"keywords":[{"args":["name","value","path=None","domain=None","secure=None","expiry=None"],"doc":"<p>Adds a cookie to your current session.\x3c/p>\n<p><code>name\x3c/code> and <code>value\x3c/code> are required, <code>path\x3c/code>, <code>domain\x3c/code>, <code>secure\x3c/code> and <code>expiry\x3c/code> are optional.  Expiry supports the same formats as the <a href=\"http://robotframework.org/robotframework/latest/libraries/DateTime.html\">DateTime\x3c/a> library or an epoch timestamp.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>domain=example.com\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=2027-09-28 16:21:35\x3c/td>\n<td># Expiry as timestamp.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n<td>expiry=1822137695\x3c/td>\n<td># Expiry as epoch seconds.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Prior to SeleniumLibrary 3.0 setting expiry did not work.\x3c/p>","matched":true,"name":"Add Cookie","shortdoc":"Adds a cookie to your current session.","tags":[]},{"args":["strategy_name","strategy_keyword","persist=False"],"doc":"<p>Adds a custom location strategy.\x3c/p>\n<p>See <span class=\"name\">Custom locators\x3c/span> for information on how to create and use custom strategies. <a href=\"#Remove%20Location%20Strategy\" class=\"name\">Remove Location Strategy\x3c/a> can be used to remove a registered strategy.\x3c/p>\n<p>Location strategies are automatically removed after leaving the current scope by default. Setting <code>persist\x3c/code> to a true value (see <span class=\"name\">Boolean arguments\x3c/span>) will cause the location strategy to stay registered throughout the life of the test.\x3c/p>","matched":true,"name":"Add Location Strategy","shortdoc":"Adds a custom location strategy.","tags":[]},{"args":["text=","action=ACCEPT","timeout=None"],"doc":"<p>Verifies that an alert is present and by default, accepts it.\x3c/p>\n<p>Fails if no alert is present. If <code>text\x3c/code> is a non-empty string, then it is used to verify alert's message. The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p><code>action\x3c/code> and <code>timeout\x3c/code> arguments are new in SeleniumLibrary 3.0. In earlier versions, the alert was always accepted and a timeout was hardcoded to one second.\x3c/p>","matched":true,"name":"Alert Should Be Present","shortdoc":"Verifies that an alert is present and by default, accepts it.","tags":[]},{"args":["action=ACCEPT","timeout=0"],"doc":"<p>Verifies that no alert is present.\x3c/p>\n<p>If the alert actually exists, the <code>action\x3c/code> argument determines how it should be handled. By default, the alert is accepted, but it can be also dismissed or left open the same way as with the <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> keyword.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. By default, is not waited for the alert at all, but a custom time can be given if alert may be delayed. See the <span class=\"name\">time format\x3c/span> section for information about the syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Alert Should Not Be Present","shortdoc":"Verifies that no alert is present.","tags":[]},{"args":["locator","id"],"doc":"<p>Assigns a temporary <code>id\x3c/code> to the element specified by <code>locator\x3c/code>.\x3c/p>\n<p>This is mainly useful if the locator is complicated and/or slow XPath expression and it is needed multiple times. Identifier expires when the page is reloaded.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Assign%20Id%20To%20Element\" class=\"name\">Assign ID to Element\x3c/a>\x3c/td>\n<td>//ul[@class='example' and ./li[contains(., 'Stuff')]]\x3c/td>\n<td>my id\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>my id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Assign Id To Element","shortdoc":"Assigns a temporary ``id`` to the element specified by ``locator``.","tags":[]},{"args":["locator","filename=selenium-element-screenshot-{index}.png"],"doc":"<p>Captures a screenshot from the element identified by <code>locator\x3c/code> and embeds it into log file.\x3c/p>\n<p>See <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a> for details about <code>filename\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>An absolute path to the created element screenshot is returned.\x3c/p>\n<p>Support for capturing the screenshot from an element has limited support among browser vendors. Please check the browser vendor driver documentation does the browser support capturing a screenshot from an element.\x3c/p>\n<p>New in SeleniumLibrary 3.3. Support for EMBED is new in SeleniumLibrary 4.2.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>${OUTPUTDIR}/id_image_id-1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Element%20Screenshot\" class=\"name\">Capture Element Screenshot\x3c/a>\x3c/td>\n<td>id:image_id\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Capture Element Screenshot","shortdoc":"Captures a screenshot from the element identified by ``locator`` and embeds it into log file.","tags":[]},{"args":["filename=selenium-screenshot-{index}.png"],"doc":"<p>Takes a screenshot of the current page and embeds it into a log file.\x3c/p>\n<p><code>filename\x3c/code> argument specifies the name of the file to write the screenshot into. The directory where screenshots are saved can be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library or by using the <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> keyword. If the directory is not configured, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p>If <code>filename\x3c/code> equals to EMBED (case insensitive), then screenshot is embedded as Base64 image to the log.html. In this case file is not created in the filesystem.\x3c/p>\n<p>Starting from SeleniumLibrary 1.8, if <code>filename\x3c/code> contains marker <code>{index}\x3c/code>, it will be automatically replaced with an unique running index, preventing files to be overwritten. Indices start from 1, and how they are represented can be customized using Python's <a href=\"https://docs.python.org/3/library/string.html#format-string-syntax\">format string syntax\x3c/a>.\x3c/p>\n<p>An absolute path to the created screenshot file is returned or if <code>filename\x3c/code>  equals to EMBED, word <span class=\"name\">EMBED\x3c/span> is returned.\x3c/p>\n<p>Support for EMBED is new in SeleniumLibrary 4.2\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td>${path} =\x3c/td>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/selenium-screenshot-2.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${path}\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_name.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>custom_with_index_{index}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/custom_with_index_1.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>formatted_index_{index:03}.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Exist\x3c/span>\x3c/td>\n<td>${OUTPUTDIR}/formatted_index_001.png\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">File Should Not Exist\x3c/span>\x3c/td>\n<td>EMBED\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into a log file.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is selected/checked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Checkbox Should Be Selected","shortdoc":"Verifies checkbox ``locator`` is selected/checked.","tags":[]},{"args":["locator"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not selected/checked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Checkbox Should Not Be Selected","shortdoc":"Verifies checkbox ``locator`` is not selected/checked.","tags":[]},{"args":["locator","file_path"],"doc":"<p>Inputs the <code>file_path\x3c/code> into the file input field <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is most often used to input files into upload forms. The keyword does not check <code>file_path\x3c/code> is the file or folder available on the machine where tests are executed. If the <code>file_path\x3c/code> points at a file and when using Selenium Grid, Selenium will <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.command.html?highlight=upload#selenium.webdriver.remote.command.Command.UPLOAD_FILE\">magically\x3c/a>, transfer the file from the machine where the tests are executed to the Selenium Grid node where the browser is running. Then Selenium will send the file path, from the nodes file system, to the browser.\x3c/p>\n<p>That <code>file_path\x3c/code> is not checked, is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Choose%20File\" class=\"name\">Choose File\x3c/a>\x3c/td>\n<td>my_upload_field\x3c/td>\n<td>${CURDIR}/trades.csv\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Choose File","shortdoc":"Inputs the ``file_path`` into the file input field ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Clears the value of the text-input-element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Clear Element Text","shortdoc":"Clears the value of the text-input-element identified by ``locator``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks the button identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Clicks the button identified by ``locator``.","tags":[]},{"args":["locator","modifier=False","action_chain=False"],"doc":"<p>Click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>modifier\x3c/code> argument can be used to pass <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys\">Selenium Keys\x3c/a> when clicking the element. The <span class=\"name\">+\x3c/span> can be used as a separator for different Selenium Keys. The <span class=\"name\">CTRL\x3c/span> is internally translated to the <span class=\"name\">CONTROL\x3c/span> key. The <code>modifier\x3c/code> is space and case insensitive, example \"alt\" and \" aLt \" are supported formats to <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.ALT\">ALT key\x3c/a> . If <code>modifier\x3c/code> does not match to Selenium Keys, keyword fails.\x3c/p>\n<p>If <code>action_chain\x3c/code> argument is true, see <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean argument, then keyword uses ActionChain based click instead of the &lt;web_element&gt;.click() function. If both <code>action_chain\x3c/code> and <code>modifier\x3c/code> are defined, the click will be performed using <code>modifier\x3c/code> and <code>action_chain\x3c/code> will be ignored.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>\x3c/td>\n<td># Would click element without any modifiers.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>CTRL\x3c/td>\n<td># Would click element with CTLR key pressed down.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>CTRL+ALT\x3c/td>\n<td># Would click element with CTLR and ALT keys pressed down.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>id:button\x3c/td>\n<td>action_chain=True\x3c/td>\n<td># Clicks the button using an Selenium  ActionChains\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.2 The <code>action_chain\x3c/code> argument is new in SeleniumLibrary 4.1\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click the element identified by ``locator``.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Click the element <code>locator\x3c/code> at <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>The Cursor is moved and the center of the element and x/y coordinates are calculated from that point.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Click Element At Coordinates","shortdoc":"Click the element ``locator`` at ``xoffset/yoffset``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Image","shortdoc":"Clicks an image identified by ``locator``.","tags":[]},{"args":["locator","modifier=False"],"doc":"<p>Clicks a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See the <a href=\"#Click%20Element\" class=\"name\">Click Element\x3c/a> keyword for details about the <code>modifier\x3c/code> argument.\x3c/p>\n<p>The <code>modifier\x3c/code> argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Click Link","shortdoc":"Clicks a link identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Closes all open browsers and resets the browser cache.\x3c/p>\n<p>After this keyword, new indexes returned from <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword are reset to 1.\x3c/p>\n<p>This keyword should be used in test or suite teardown to make sure all browsers are closed.\x3c/p>","matched":true,"name":"Close All Browsers","shortdoc":"Closes all open browsers and resets the browser cache.","tags":[]},{"args":[],"doc":"<p>Closes the current browser.\x3c/p>","matched":true,"name":"Close Browser","shortdoc":"Closes the current browser.","tags":[]},{"args":[],"doc":"<p>Closes currently opened and selected browser window/tab.\x3c/p>","matched":true,"name":"Close Window","shortdoc":"Closes currently opened and selected browser window/tab.","tags":[]},{"args":["locator"],"doc":"<p>Will cover elements identified by <code>locator\x3c/code> with a blue div without breaking page layout.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.3.0\x3c/p>\n<p>Example: |<a href=\"#Cover%20Element\" class=\"name\">Cover Element\x3c/a> | css:div#container |\x3c/p>","matched":true,"name":"Cover Element","shortdoc":"Will cover elements identified by ``locator`` with a blue div without breaking page layout.","tags":[]},{"args":["keys","values"],"doc":"<p>This keyword returns a dictionary, given a list of keys and a list of values of the same length.\x3c/p>\n<p>keys: (array of strings) A list of keys to be assigned to a dictionary.\x3c/p>\n<p>values: (array of strings,integers,dictionaries,etc) A list of values to be assigned to a dictionary.\x3c/p>\n<p>return: (dictionary) A dictionary with the mapped key-value pairs.\x3c/p>","matched":true,"name":"Create Dictionary From Keys And Values Lists","shortdoc":"This keyword returns a dictionary, given a list of keys and a list of values of the same length.","tags":[]},{"args":["driver_name","alias=None","kwargs={}","**init_kwargs"],"doc":"<p>Creates an instance of Selenium WebDriver.\x3c/p>\n<p>Like <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>, but allows passing arguments to the created WebDriver instance directly. This keyword should only be used if the functionality provided by <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> is not adequate.\x3c/p>\n<p><code>driver_name\x3c/code> must be a WebDriver implementation name like Firefox, Chrome, Ie, Opera, Safari, PhantomJS, or Remote.\x3c/p>\n<p>The initialized WebDriver can be configured either with a Python dictionary <code>kwargs\x3c/code> or by using keyword arguments <code>**init_kwargs\x3c/code>. These arguments are passed directly to WebDriver without any processing. See <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/api.html\">Selenium API documentation\x3c/a> for details about the supported arguments.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td># Use proxy with Firefox\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy}=\x3c/td>\n<td><span class=\"name\">Evaluate\x3c/span>\x3c/td>\n<td>selenium.webdriver.Proxy()\x3c/td>\n<td>modules=selenium, selenium.webdriver\x3c/td>\n\x3c/tr>\n<tr>\n<td>${proxy.http_proxy}=\x3c/td>\n<td><span class=\"name\">Set Variable\x3c/span>\x3c/td>\n<td>localhost:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>proxy=${proxy}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Use proxy with PhantomJS\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${service args}=\x3c/td>\n<td><span class=\"name\">Create List\x3c/span>\x3c/td>\n<td>--proxy=192.168.132.104:8888\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a>\x3c/td>\n<td>PhantomJS\x3c/td>\n<td>service_args=${service args}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Returns the index of this browser instance which can be used later to switch back to it. Index starts from 1 and is reset back to it when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> keyword is used. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for an example.\x3c/p>","matched":true,"name":"Create Webdriver","shortdoc":"Creates an instance of Selenium WebDriver.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that the current frame contains <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Current Frame Contains\x3c/span>.\x3c/p>","matched":true,"name":"Current Frame Should Contain","shortdoc":"Verifies that the current frame contains ``text``.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that the current frame does not contain <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Current Frame Should Not Contain","shortdoc":"Verifies that the current frame does not contain ``text``.","tags":[]},{"args":[],"doc":"<p>Deletes all cookies.\x3c/p>","matched":true,"name":"Delete All Cookies","shortdoc":"Deletes all cookies.","tags":[]},{"args":["name"],"doc":"<p>Deletes the cookie matching <code>name\x3c/code>.\x3c/p>\n<p>If the cookie is not found, nothing happens.\x3c/p>","matched":true,"name":"Delete Cookie","shortdoc":"Deletes the cookie matching ``name``.","tags":[]},{"args":["locator"],"doc":"<p>Double clicks the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Double Click Element","shortdoc":"Double clicks the element identified by ``locator``.","tags":[]},{"args":["locator","target"],"doc":"<p>Drags the element identified by <code>locator\x3c/code> into the <code>target\x3c/code> element.\x3c/p>\n<p>The <code>locator\x3c/code> argument is the locator of the dragged element and the <code>target\x3c/code> is the locator of the target. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop\" class=\"name\">Drag And Drop\x3c/a>\x3c/td>\n<td>css:div#element\x3c/td>\n<td>css:div.target\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element identified by ``locator`` into the ``target`` element.","tags":[]},{"args":["locator","xoffset","yoffset"],"doc":"<p>Drags the element identified with <code>locator\x3c/code> by <code>xoffset/yoffset\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The element will be moved by <code>xoffset\x3c/code> and <code>yoffset\x3c/code>, each of which is a negative or positive number specifying the offset.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Drag%20And%20Drop%20By%20Offset\" class=\"name\">Drag And Drop By Offset\x3c/a>\x3c/td>\n<td>myElem\x3c/td>\n<td>50\x3c/td>\n<td>-35\x3c/td>\n<td># Move myElem 50px right and 35px down\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element identified with ``locator`` by ``xoffset/yoffset``.","tags":[]},{"args":["locator","attribute","expected","message=None"],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains expected attribute value.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example: <a href=\"#Element%20Attribute%20Value%20Should%20Be\" class=\"name\">Element Attribute Value Should Be\x3c/a> | css:img | href | value\x3c/p>\n<p>New in SeleniumLibrary 3.2.\x3c/p>","matched":true,"name":"Element Attribute Value Should Be","shortdoc":"Verifies element identified by ``locator`` contains expected attribute value.","tags":[]},{"args":["locator","attribute","expected_value"],"doc":"<p>Get the CSS attribute value of an element and compare it to an expected value. This would be the values within the 'style' tag.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>attribute: (string) The attribute you wish to get the value for.\x3c/p>\n<p>expected_value: (string) The expected attribute value to be compared against the actual attribute value\x3c/p>","matched":true,"name":"Element CSS Attribute Value Should Be","shortdoc":"Get the CSS attribute value of an element and compare it to an expected value. This would be the values within the 'style' tag.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is disabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified by ``locator`` is disabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is enabled.\x3c/p>\n<p>This keyword considers also elements that are read-only to be disabled.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified by ``locator`` is enabled.","tags":[]},{"args":["locator"],"doc":"<p>Verifies that element identified by <code>locator\x3c/code> is focused.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Element Should Be Focused","shortdoc":"Verifies that element identified by ``locator`` is focused.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is visible.\x3c/p>\n<p>Herein, visible means that the element is logically visible, not optically visible in the current browser viewport. For example, an element that carries <code>display:none\x3c/code> is not logically visible, so using this keyword on that element would fail.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is visible.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False. New in SeleniumLibrary 3.1.\x3c/p>\n<p><code>ignore_case\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a> if you want to match the exact text, not a substring.\x3c/p>","matched":true,"name":"Element Should Contain","shortdoc":"Verifies that element ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","message=None"],"doc":"<p>Verifies that the element identified by <code>locator\x3c/code> is NOT visible.\x3c/p>\n<p>Passes if the element does not exists. See <a href=\"#Element%20Should%20Be%20Visible\" class=\"name\">Element Should Be Visible\x3c/a> for more information about visibility and supported arguments.\x3c/p>","matched":true,"name":"Element Should Not Be Visible","shortdoc":"Verifies that the element identified by ``locator`` is NOT visible.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p><code>ignore_case\x3c/code> argument new in SeleniumLibrary 3.1.\x3c/p>","matched":true,"name":"Element Should Not Contain","shortdoc":"Verifies that element ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> contains exact the text <code>expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p><code>ignore_case\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Use <a href=\"#Element%20Should%20Contain\" class=\"name\">Element Should Contain\x3c/a> if a substring match is desired.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies that element ``locator`` contains exact the text ``expected``.","tags":[]},{"args":["locator","not_expected","message=None","ignore_case=False"],"doc":"<p>Verifies that element <code>locator\x3c/code> does not contain exact the text <code>not_expected\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>ignore_case\x3c/code> argument can be set to True to compare case insensitive, default is False.\x3c/p>\n<p>New in SeleniumLibrary 3.1.1\x3c/p>","matched":true,"name":"Element Text Should Not Be","shortdoc":"Verifies that element ``locator`` does not contain exact the text ``not_expected``.","tags":[]},{"args":["locator","expected_value"],"doc":"<p>Assert that the value attribute of a web element is equal to a given value\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>expected_value: (string) A string or int value to be compared against the actual web element value\x3c/p>","matched":true,"name":"Element Value Should Be Equal","shortdoc":"Assert that the value attribute of a web element is equal to a given value","tags":[]},{"args":["locator","expected_value"],"doc":"<p>Assert that the value attribute of a web element is not equal to a given value\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>expected_value: (string) A string or int value to be compared against the actual web element value\x3c/p>","matched":true,"name":"Element Value Should Not Be Equal","shortdoc":"Assert that the value attribute of a web element is not equal to a given value","tags":[]},{"args":["*code"],"doc":"<p>Executes asynchronous JavaScript code with possible arguments.\x3c/p>\n<p>Similar to <a href=\"#Execute%20Javascript\" class=\"name\">Execute Javascript\x3c/a> except that scripts executed with this keyword must explicitly signal they are finished by invoking the provided callback. This callback is always injected into the executed function as the last argument.\x3c/p>\n<p>Scripts must complete within the script timeout or this keyword will fail. See the <span class=\"name\">Timeout\x3c/span> section for more information.\x3c/p>\n<p>Starting from SeleniumLibrary 3.2 it is possible to provide JavaScript <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.execute_async_script\">arguments\x3c/a> as part of <code>code\x3c/code> argument. See <a href=\"#Execute%20Javascript\" class=\"name\">Execute Javascript\x3c/a> for more details.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>var callback = arguments[arguments.length - 1]; window.setTimeout(callback, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/async_js_to_execute.js\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${result} =\x3c/td>\n<td><a href=\"#Execute%20Async%20Javascript\" class=\"name\">Execute Async JavaScript\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>var callback = arguments[arguments.length - 1];\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>function answer(){callback(\"text\");};\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>...\x3c/td>\n<td>window.setTimeout(answer, 2000);\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${result}\x3c/td>\n<td>text\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Async Javascript","shortdoc":"Executes asynchronous JavaScript code with possible arguments.","tags":[]},{"args":["*code"],"doc":"<p>Executes the given JavaScript code with possible arguments.\x3c/p>\n<p><code>code\x3c/code> may be divided into multiple cells in the test data and <code>code\x3c/code> may contain multiple lines of code and arguments. In that case, the JavaScript code parts are concatenated together without adding spaces and optional arguments are separated from <code>code\x3c/code>.\x3c/p>\n<p>If <code>code\x3c/code> is a path to an existing file, the JavaScript to execute will be read from that file. Forward slashes work as a path separator on all operating systems.\x3c/p>\n<p>The JavaScript executes in the context of the currently selected frame or window as the body of an anonymous function. Use <code>window\x3c/code> to refer to the window of your application and <code>document\x3c/code> to refer to the document object of the current frame or window, e.g. <code>document.getElementById('example')\x3c/code>.\x3c/p>\n<p>This keyword returns whatever the executed JavaScript code returns. Return values are converted to the appropriate Python types.\x3c/p>\n<p>Starting from SeleniumLibrary 3.2 it is possible to provide JavaScript <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.execute_script\">arguments\x3c/a> as part of <code>code\x3c/code> argument. The JavaScript code and arguments must be separated with <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers and must be used exactly with this format. If the Javascript code is first, then the <span class=\"name\">JAVASCRIPT\x3c/span> marker is optional. The order of <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers can be swapped, but if <span class=\"name\">ARGUMENTS\x3c/span> is the first marker, then <span class=\"name\">JAVASCRIPT\x3c/span> marker is mandatory. It is only allowed to use <span class=\"name\">JAVASCRIPT\x3c/span> and <span class=\"name\">ARGUMENTS\x3c/span> markers only one time in the <code>code\x3c/code> argument.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>window.myFunc('arg1', 'arg2')\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>${CURDIR}/js_to_execute.js\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>alert(arguments[0]);\x3c/td>\n<td>ARGUMENTS\x3c/td>\n<td>123\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a>\x3c/td>\n<td>ARGUMENTS\x3c/td>\n<td>123\x3c/td>\n<td>JAVASCRIPT\x3c/td>\n<td>alert(arguments[0]);\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Execute Javascript","shortdoc":"Executes the given JavaScript code with possible arguments.","tags":[]},{"args":["locator","text","loglevel=TRACE"],"doc":"<p>Verifies that frame identified by <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Frame Should Contain","shortdoc":"Verifies that frame identified by ``locator`` contains ``text``.","tags":[]},{"args":[],"doc":"<p>Returns a list containing ids of all links found in current page.\x3c/p>\n<p>If a link has no id, an empty string will be in the list instead.\x3c/p>","matched":true,"name":"Get All Links","shortdoc":"Returns a list containing ids of all links found in current page.","tags":[]},{"args":[],"doc":"<p>Returns aliases of all active browser that has an alias as NormalizedDict. The dictionary contains the aliases as keys and the index as value. This can be accessed as dictionary <code>${aliases.key}\x3c/code> or as list <code>@{aliases}[0]\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"https://example.com\">https://example.com\x3c/a>\x3c/td>\n<td>alias=BrowserA\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"https://example.com\">https://example.com\x3c/a>\x3c/td>\n<td>alias=BrowserB\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>&amp;{aliases}\x3c/td>\n<td><a href=\"#Get%20Browser%20Aliases\" class=\"name\">Get Browser Aliases\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># &amp;{aliases} = { BrowserA=1|BrowserB=2 }\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Log\x3c/span>\x3c/td>\n<td>${aliases.BrowserA}\x3c/td>\n<td>\x3c/td>\n<td># logs <code>1\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${alias}\x3c/td>\n<td>IN\x3c/td>\n<td>@{aliases}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td><span class=\"name\">Log\x3c/span>\x3c/td>\n<td>${alias}\x3c/td>\n<td># logs <code>BrowserA\x3c/code> and <code>BrowserB\x3c/code>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Get Browser Aliases","shortdoc":"Returns aliases of all active browser that has an alias as NormalizedDict. The dictionary contains the aliases as keys and the index as value. This can be accessed as dictionary ``${aliases.key}`` or as list ``@{aliases}[0]``.","tags":[]},{"args":[],"doc":"<p>Returns index of all active browser as list.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{browser_ids}=\x3c/td>\n<td>Get Browser Ids\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>FOR\x3c/td>\n<td>${id}\x3c/td>\n<td>IN\x3c/td>\n<td>@{browser_ids}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>@{window_titles}=\x3c/td>\n<td>Get Window Titles\x3c/td>\n<td>browser=${id}\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Log\x3c/td>\n<td>Browser ${id} has these windows: ${window_titles}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>END\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Get Browser Ids","shortdoc":"Returns index of all active browser as list.","tags":[]},{"args":["name"],"doc":"<p>Returns information of cookie with <code>name\x3c/code> as an object.\x3c/p>\n<p>If no cookie is found with <code>name\x3c/code>, keyword fails. The cookie object contains details about the cookie. Attributes available in the object are documented in the table below.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Attribute\x3c/th>\n<th>Explanation\x3c/th>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>The name of a cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>value\x3c/td>\n<td>Value of the cookie.\x3c/td>\n\x3c/tr>\n<tr>\n<td>path\x3c/td>\n<td>Indicates a URL path, for example <code>/\x3c/code>.\x3c/td>\n\x3c/tr>\n<tr>\n<td>domain\x3c/td>\n<td>The domain, the cookie is visible to.\x3c/td>\n\x3c/tr>\n<tr>\n<td>secure\x3c/td>\n<td>When true, the cookie is only used with HTTPS connections.\x3c/td>\n\x3c/tr>\n<tr>\n<td>httpOnly\x3c/td>\n<td>When true, the cookie is not accessible via JavaScript.\x3c/td>\n\x3c/tr>\n<tr>\n<td>expiry\x3c/td>\n<td>Python datetime object indicating when the cookie expires.\x3c/td>\n\x3c/tr>\n<tr>\n<td>extra\x3c/td>\n<td>Possible attributes outside of the WebDriver specification\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See the <a href=\"https://w3c.github.io/webdriver/#cookies\">WebDriver specification\x3c/a> for details about the cookie information. Notice that <code>expiry\x3c/code> is specified as a <a href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\">datetime object\x3c/a>, not as seconds since Unix Epoch like WebDriver natively does.\x3c/p>\n<p>In some cases, example when running a browser in the cloud, it is possible that the cookie contains other attributes than is defined in the <a href=\"https://w3c.github.io/webdriver/#cookies\">WebDriver specification\x3c/a>. These other attributes are available in an <code>extra\x3c/code> attribute in the cookie object and it contains a dictionary of the other attributes. The <code>extra\x3c/code> attribute is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Add%20Cookie\" class=\"name\">Add Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td>${cookie} =\x3c/td>\n<td><a href=\"#Get%20Cookie\" class=\"name\">Get Cookie\x3c/a>\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.name}\x3c/td>\n<td>foo\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be Equal\x3c/span>\x3c/td>\n<td>${cookie.value}\x3c/td>\n<td>bar\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${cookie.expiry.year} &gt; 2017\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get Cookie","shortdoc":"Returns information of cookie with ``name`` as an object.","tags":[]},{"args":["as_dict=False"],"doc":"<p>Returns all cookies of the current page.\x3c/p>\n<p>If <code>as_dict\x3c/code> argument evaluates as false, see <span class=\"name\">Boolean arguments\x3c/span> for more details, then cookie information is returned as a single string in format <code>name1=value1; name2=value2; name3=value3\x3c/code>. When <code>as_dict\x3c/code> argument evaluates as true, cookie information is returned as Robot Framework dictionary format. The string format can be used, for example, for logging purposes or in headers when sending HTTP requests. The dictionary format is helpful when the result can be passed to requests library's Create Session keyword's optional cookies parameter.\x3c/p>\n<p>The <span class=\"name\">` as_dict\x3c/span>` argument is new in SeleniumLibrary 3.3\x3c/p>","matched":true,"name":"Get Cookies","shortdoc":"Returns all cookies of the current page.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Returns the value of <code>attribute\x3c/code> from the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${id}=\x3c/td>\n<td><a href=\"#Get%20Element%20Attribute\" class=\"name\">Get Element Attribute\x3c/a>\x3c/td>\n<td>css:h1\x3c/td>\n<td>id\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Passing attribute name as part of the <code>locator\x3c/code> was removed in SeleniumLibrary 3.2. The explicit <code>attribute\x3c/code> argument should be used instead.\x3c/p>","matched":true,"name":"Get Element Attribute","shortdoc":"Returns the value of ``attribute`` from the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the number of elements matching <code>locator\x3c/code>.\x3c/p>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument. Keyword will always return an integer.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${count} =\x3c/td>\n<td><a href=\"#Get%20Element%20Count\" class=\"name\">Get Element Count\x3c/a>\x3c/td>\n<td>name:div_name\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Should Be True\x3c/span>\x3c/td>\n<td>${count} &gt; 2\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get Element Count","shortdoc":"Returns the number of elements matching ``locator``.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get the CSS attribute value of an element. This would be the values within the 'style' tag.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>attribute: (string) The attribute you wish to get the value for.\x3c/p>","matched":true,"name":"Get Element CSS Attribute Value","shortdoc":"Get the CSS attribute value of an element. This would be the values within the 'style' tag.","tags":[]},{"args":["locator"],"doc":"<p>Returns width and height of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Both width and height are returned as integers.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height} =\x3c/td>\n<td><a href=\"#Get%20Element%20Size\" class=\"name\">Get Element Size\x3c/a>\x3c/td>\n<td>css:div#container\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Size","shortdoc":"Returns width and height of the element identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the horizontal position of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the left side of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Vertical%20Position\" class=\"name\">Get Vertical Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Horizontal Position","shortdoc":"Returns the horizontal position of the element identified by ``locator``.","tags":[]},{"args":["locator","values=False"],"doc":"<p>Returns all labels or values of selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Returns visible labels by default, but values can be returned by setting the <code>values\x3c/code> argument to a true value (see <span class=\"name\">Boolean arguments\x3c/span>).\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${labels} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>mylist\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${values} =\x3c/td>\n<td><a href=\"#Get%20List%20Items\" class=\"name\">Get List Items\x3c/a>\x3c/td>\n<td>css:#example select\x3c/td>\n<td>values=True\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Support to return values is new in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Get List Items","shortdoc":"Returns all labels or values of selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Returns the current browser window URL.\x3c/p>","matched":true,"name":"Get Location","shortdoc":"Returns the current browser window URL.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs URLs of all windows of the selected browser.\x3c/p>\n<p><b>Browser Scope:\x3c/b>\x3c/p>\n<p>The <code>browser\x3c/code> argument specifies the browser that shall return its windows information.\x3c/p>\n<ul>\n<li><code>browser\x3c/code> can be <code>index_or_alias\x3c/code> like in <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If <code>browser\x3c/code> is <code>CURRENT\x3c/code> (default, case-insensitive) the currently active browser is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If <code>browser\x3c/code> is <code>ALL\x3c/code> (case-insensitive) the window information of all windows of all opened browsers are returned.\x3c/li>\n\x3c/ul>","matched":true,"name":"Get Locations","shortdoc":"Returns and logs URLs of all windows of the selected browser.","tags":[]},{"args":["locator"],"doc":"<p>This keyword grabs the labels from a React-Select list. See <a href=\"https://react-select.com/home\">https://react-select.com/home\x3c/a> for more information on React-Select components.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>","matched":true,"name":"Get React List Labels","shortdoc":"This keyword grabs the labels from a React-Select list. See https://react-select.com/home for more information on React-Select components.","tags":[]},{"args":["locator"],"doc":"<p>Returns the label of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, the label of the first option is returned.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Label","shortdoc":"Returns the label of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns labels of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, returns an empty list if there are no selections. In earlier versions, this caused an error.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Labels","shortdoc":"Returns labels of selected options from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns the value of selected option from selection list <code>locator\x3c/code>.\x3c/p>\n<p>If there are multiple selected options, the value of the first option is returned.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Value","shortdoc":"Returns the value of selected option from selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns values of selected options from selection list <code>locator\x3c/code>.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, returns an empty list if there are no selections. In earlier versions, this caused an error.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Selected List Values","shortdoc":"Returns values of selected options from selection list ``locator``.","tags":[]},{"args":[],"doc":"<p>Gets the implicit wait value used by Selenium.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Implicit wait\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Implicit Wait","shortdoc":"Gets the implicit wait value used by Selenium.","tags":[]},{"args":[],"doc":"<p>Gets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Selenium Speed\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Speed","shortdoc":"Gets the delay that is waited after each Selenium command.","tags":[]},{"args":[],"doc":"<p>Gets the timeout that is used by various keywords.\x3c/p>\n<p>The value is returned as a human-readable string like <code>1 second\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Timeout\x3c/span> section above for more information.\x3c/p>","matched":true,"name":"Get Selenium Timeout","shortdoc":"Gets the timeout that is used by various keywords.","tags":[]},{"args":[],"doc":"<p>Returns the currently active browser session id.\x3c/p>\n<p>New in SeleniumLibrary 3.2\x3c/p>","matched":true,"name":"Get Session Id","shortdoc":"Returns the currently active browser session id.","tags":[]},{"args":[],"doc":"<p>Returns the entire HTML source of the current page or frame.\x3c/p>","matched":true,"name":"Get Source","shortdoc":"Returns the entire HTML source of the current page or frame.","tags":[]},{"args":["locator","row","column","loglevel=TRACE"],"doc":"<p>Returns contents of a table cell.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its cell found using <code>row\x3c/code> and <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Both row and column indexes start from 1, and header and footer rows are included in the count. It is possible to refer to rows and columns from the end by using negative indexes so that -1 is the last row/column, -2 is the second last, and so on.\x3c/p>\n<p>All <code>&lt;th&gt;\x3c/code> and <code>&lt;td&gt;\x3c/code> elements anywhere in the table are considered to be cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Get Table Cell","shortdoc":"Returns contents of a table cell.","tags":[]},{"args":["locator"],"doc":"<p>Returns the text value of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Text","shortdoc":"Returns the text value of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the HTML text of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of strings) A list of strings extracted from the web elements.\x3c/p>","matched":true,"name":"Get Text From Web Elements List","shortdoc":"This keyword extracts the HTML text of a list of web elements, and returns a list.","tags":[]},{"args":[],"doc":"<p>Returns the title of the current page.\x3c/p>","matched":true,"name":"Get Title","shortdoc":"Returns the title of the current page.","tags":[]},{"args":["locator"],"doc":"<p>Returns the value attribute of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get Value","shortdoc":"Returns the value attribute of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the HTML value of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of strings) A list of strings extracted from the web elements.\x3c/p>","matched":true,"name":"Get Values From Web Elements List","shortdoc":"This keyword extracts the HTML value of a list of web elements, and returns a list.","tags":[]},{"args":["locator"],"doc":"<p>Returns the vertical position of the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The position is returned in pixels off the top of the page, as an integer.\x3c/p>\n<p>See also <a href=\"#Get%20Horizontal%20Position\" class=\"name\">Get Horizontal Position\x3c/a>.\x3c/p>","matched":true,"name":"Get Vertical Position","shortdoc":"Returns the vertical position of the element identified by ``locator``.","tags":[]},{"args":["web_elements_list"],"doc":"<p>This keyword extracts the vertical position in pixels of a list of web elements, and returns a list.\x3c/p>\n<p>web_elements_list: (array of selenium web elements) A selenium web element objects list.\x3c/p>\n<p>return: (array of integers) A list of integers of the vertical pixel positions for the provided web elements.\x3c/p>","matched":true,"name":"Get Vertical Position From Web Elements List","shortdoc":"This keyword extracts the vertical position in pixels of a list of web elements, and returns a list.","tags":[]},{"args":["locator"],"doc":"<p>Returns the first WebElement matching the given <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Get WebElement","shortdoc":"Returns the first WebElement matching the given ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns a list of WebElement objects matching the <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Starting from SeleniumLibrary 3.0, the keyword returns an empty list if there are no matching elements. In previous releases, the keyword failed in this case.\x3c/p>","matched":true,"name":"Get WebElements","shortdoc":"Returns a list of WebElement objects matching the ``locator``.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns all child window handles of the selected browser as a list.\x3c/p>\n<p>Can be used as a list of windows to exclude with <a href=\"#Select%20Window\" class=\"name\">Select Window\x3c/a>.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0, this keyword was named <span class=\"name\">List Windows\x3c/span>.\x3c/p>","matched":true,"name":"Get Window Handles","shortdoc":"Returns all child window handles of the selected browser as a list.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs id attributes of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Identifiers","shortdoc":"Returns and logs id attributes of all windows of the selected browser.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs names of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Names","shortdoc":"Returns and logs names of all windows of the selected browser.","tags":[]},{"args":[],"doc":"<p>Returns current window position.\x3c/p>\n<p>The position is relative to the top left corner of the screen. Returned values are integers. See also <a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${x}\x3c/td>\n<td>${y}=\x3c/td>\n<td><a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Position","shortdoc":"Returns current window position.","tags":[]},{"args":["inner=False"],"doc":"<p>Returns current window width and height as integers.\x3c/p>\n<p>See also <a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>.\x3c/p>\n<p>If <code>inner\x3c/code> parameter is set to True, keyword returns HTML DOM window.innerWidth and window.innerHeight properties. See <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean arguments. The <code>inner\x3c/code> is new in SeleniumLibrary 4.0.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>${height}=\x3c/td>\n<td><a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${width}\x3c/td>\n<td>${height}=\x3c/td>\n<td><a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>\x3c/td>\n<td>True\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Window Size","shortdoc":"Returns current window width and height as integers.","tags":[]},{"args":["browser=CURRENT"],"doc":"<p>Returns and logs titles of all windows of the selected browser.\x3c/p>\n<p>How to select the <code>browser\x3c/code> scope of this keyword, see <a href=\"#Get%20Locations\" class=\"name\">Get Locations\x3c/a>.\x3c/p>","matched":true,"name":"Get Window Titles","shortdoc":"Returns and logs titles of all windows of the selected browser.","tags":[]},{"args":[],"doc":"<p>Simulates the user clicking the back button on their browser.\x3c/p>","matched":true,"name":"Go Back","shortdoc":"Simulates the user clicking the back button on their browser.","tags":[]},{"args":["url"],"doc":"<p>Navigates the current browser window to the provided <code>url\x3c/code>.\x3c/p>","matched":true,"name":"Go To","shortdoc":"Navigates the current browser window to the provided ``url``.","tags":[]},{"args":["action=ACCEPT","timeout=None"],"doc":"<p>Handles the current alert and returns its message.\x3c/p>\n<p>By default, the alert is accepted, but this can be controlled with the <code>action\x3c/code> argument that supports the following case-insensitive values:\x3c/p>\n<ul>\n<li><code>ACCEPT\x3c/code>: Accept the alert i.e. press <code>Ok\x3c/code>. Default.\x3c/li>\n<li><code>DISMISS\x3c/code>: Dismiss the alert i.e. press <code>Cancel\x3c/code>.\x3c/li>\n<li><code>LEAVE\x3c/code>: Leave the alert open.\x3c/li>\n\x3c/ul>\n<p>The <code>timeout\x3c/code> argument specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td># Accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>action=DISMISS\x3c/td>\n<td>\x3c/td>\n<td># Dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>timeout=10 s\x3c/td>\n<td>\x3c/td>\n<td># Use custom timeout and accept alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Handle Alert\x3c/td>\n<td>DISMISS\x3c/td>\n<td>1 min\x3c/td>\n<td># Use custom timeout and dismiss alert.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>\x3c/td>\n<td># Accept alert and get its message.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${message} =\x3c/td>\n<td>Handle Alert\x3c/td>\n<td>LEAVE\x3c/td>\n<td># Leave alert open and get its message.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Handle Alert","shortdoc":"Handles the current alert and returns its message.","tags":[]},{"args":["locator","password","clear=True"],"doc":"<p>Types the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. See <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> for <code>clear\x3c/code> argument details.\x3c/p>\n<p>Difference compared to <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password on the INFO level. Notice that if you use the keyword like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>password\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>the password is shown as a normal keyword argument. A way to avoid that is using variables like\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Input Password\x3c/td>\n<td>password_field\x3c/td>\n<td>${PASSWORD}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Please notice that Robot Framework logs all arguments using the TRACE level and tests must not be executed using level below DEBUG if the password should not be logged in any format.\x3c/p>\n<p>The <span class=\"name\">clear\x3c/span> argument is new in SeleniumLibrary 4.0. Hiding password logging from Selenium logs is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","clear=True"],"doc":"<p>Types the given <code>text\x3c/code> into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>When <code>clear\x3c/code> is true, the input element is cleared before the text is typed into the element. When false, the previous text is not cleared from the element. Use <a href=\"#Input%20Password\" class=\"name\">Input Password\x3c/a> if you do not want the given <code>text\x3c/code> to be logged.\x3c/p>\n<p>If <a href=\"https://github.com/SeleniumHQ/selenium/wiki/Grid2\">Selenium Grid\x3c/a> is used and the <code>text\x3c/code> argument points to a file in the file system, then this keyword prevents the Selenium to transfer the file to the Selenium Grid hub. Instead, this keyword will send the <code>text\x3c/code> string as is to the element. If a file should be transferred to the hub and upload should be performed, please use <a href=\"#Choose%20File\" class=\"name\">Choose File\x3c/a> keyword.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. See the <span class=\"name\">Boolean arguments\x3c/span> section how Boolean values are handled.\x3c/p>\n<p>Disabling the file upload the Selenium Grid node and the <span class=\"name\">clear\x3c/span> argument are new in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given ``text`` into the text field identified by ``locator``.","tags":[]},{"args":["text","action=ACCEPT","timeout=None"],"doc":"<p>Types the given <code>text\x3c/code> into an input field in an alert.\x3c/p>\n<p>The alert is accepted by default, but that behavior can be controlled by using the <code>action\x3c/code> argument same way as with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a>.\x3c/p>\n<p><code>timeout\x3c/code> specifies how long to wait for the alert to appear. If it is not given, the global default <span class=\"name\">timeout\x3c/span> is used instead.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Input Text Into Alert","shortdoc":"Types the given ``text`` into an input field in an alert.","tags":[]},{"args":["locator","*expected"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has <code>expected\x3c/code> options selected.\x3c/p>\n<p>It is possible to give expected options both as visible labels and as values. Starting from SeleniumLibrary 3.0, mixing labels and values is not possible. Order of the selected options is not validated.\x3c/p>\n<p>If no expected options are given, validates that the list has no selections. A more explicit alternative is using <a href=\"#List%20Should%20Have%20No%20Selections\" class=\"name\">List Should Have No Selections\x3c/a>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>gender\x3c/td>\n<td>Female\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#List%20Selection%20Should%20Be\" class=\"name\">List Selection Should Be\x3c/a>\x3c/td>\n<td>interests\x3c/td>\n<td>Test Automation\x3c/td>\n<td>Python\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"List Selection Should Be","shortdoc":"Verifies selection list ``locator`` has ``expected`` options selected.","tags":[]},{"args":["locator"],"doc":"<p>Verifies selection list <code>locator\x3c/code> has no options selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"List Should Have No Selections","shortdoc":"Verifies selection list ``locator`` has no options selected.","tags":[]},{"args":["url","message=None"],"doc":"<p>Verifies that the current URL is exactly <code>url\x3c/code>.\x3c/p>\n<p>The <code>url\x3c/code> argument contains the exact url that should exist in browser.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.2.0.\x3c/p>","matched":true,"name":"Location Should Be","shortdoc":"Verifies that the current URL is exactly ``url``.","tags":[]},{"args":["expected","message=None"],"doc":"<p>Verifies that the current URL contains <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument contains the expected value in url.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.2.0.\x3c/p>","matched":true,"name":"Location Should Contain","shortdoc":"Verifies that the current URL contains ``expected``.","tags":[]},{"args":["locator","x","message=None","loglevel=TRACE"],"doc":"<p><b>DEPRECATED in SeleniumLibrary 4.0.\x3c/b>, use <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> with <code>limit\x3c/code> argument instead.\x3c/p>","matched":true,"name":"Locator Should Match X Times","shortdoc":"*DEPRECATED in SeleniumLibrary 4.0.*, use `Page Should Contain Element` with ``limit`` argument instead.","tags":[]},{"args":[],"doc":"<p>Logs and returns the current browser window URL.\x3c/p>","matched":true,"name":"Log Location","shortdoc":"Logs and returns the current browser window URL.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the HTML source of the current page or frame.\x3c/p>\n<p>The <code>loglevel\x3c/code> argument defines the used log level. Valid log levels are <code>WARN\x3c/code>, <code>INFO\x3c/code> (default), <code>DEBUG\x3c/code>, <code>TRACE\x3c/code> and <code>NONE\x3c/code> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the HTML source of the current page or frame.","tags":[]},{"args":[],"doc":"<p>Logs and returns the title of the current page.\x3c/p>","matched":true,"name":"Log Title","shortdoc":"Logs and returns the title of the current page.","tags":[]},{"args":[],"doc":"<p>Maximizes current browser window.\x3c/p>","matched":true,"name":"Maximize Browser Window","shortdoc":"Maximizes current browser window.","tags":[]},{"args":["locator"],"doc":"<p>Simulates pressing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The element is pressed without releasing the mouse button.\x3c/p>\n<p>See also the more specific keywords <a href=\"#Mouse%20Down%20On%20Image\" class=\"name\">Mouse Down On Image\x3c/a> and <a href=\"#Mouse%20Down%20On%20Link\" class=\"name\">Mouse Down On Link\x3c/a>.\x3c/p>","matched":true,"name":"Mouse Down","shortdoc":"Simulates pressing the left mouse button on the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on an image identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>","matched":true,"name":"Mouse Down On Image","shortdoc":"Simulates a mouse down event on an image identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates a mouse down event on a link identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>","matched":true,"name":"Mouse Down On Link","shortdoc":"Simulates a mouse down event on a link identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates moving the mouse away from the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Out","shortdoc":"Simulates moving the mouse away from the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates hovering the mouse over the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Over","shortdoc":"Simulates hovering the mouse over the element ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Simulates releasing the left mouse button on the element <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Mouse Up","shortdoc":"Simulates releasing the left mouse button on the element ``locator``.","tags":[]},{"args":["url=None","browser=firefox","alias=None","remote_url=False","desired_capabilities=None","ff_profile_dir=None","options=None","service_log_path=None","executable_path=None"],"doc":"<p>Opens a new browser instance to the optional <code>url\x3c/code>.\x3c/p>\n<p>The <code>browser\x3c/code> argument specifies which browser to use. The supported browsers are listed in the table below. The browser names are case-insensitive and some browsers have multiple supported names.\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Browser\x3c/th>\n<th>Name(s)\x3c/th>\n\x3c/tr>\n<tr>\n<td>Firefox\x3c/td>\n<td>firefox, ff\x3c/td>\n\x3c/tr>\n<tr>\n<td>Google Chrome\x3c/td>\n<td>googlechrome, chrome, gc\x3c/td>\n\x3c/tr>\n<tr>\n<td>Headless Firefox\x3c/td>\n<td>headlessfirefox\x3c/td>\n\x3c/tr>\n<tr>\n<td>Headless Chrome\x3c/td>\n<td>headlesschrome\x3c/td>\n\x3c/tr>\n<tr>\n<td>Internet Explorer\x3c/td>\n<td>internetexplorer, ie\x3c/td>\n\x3c/tr>\n<tr>\n<td>Edge\x3c/td>\n<td>edge\x3c/td>\n\x3c/tr>\n<tr>\n<td>Safari\x3c/td>\n<td>safari\x3c/td>\n\x3c/tr>\n<tr>\n<td>Opera\x3c/td>\n<td>opera\x3c/td>\n\x3c/tr>\n<tr>\n<td>Android\x3c/td>\n<td>android\x3c/td>\n\x3c/tr>\n<tr>\n<td>Iphone\x3c/td>\n<td>iphone\x3c/td>\n\x3c/tr>\n<tr>\n<td>PhantomJS\x3c/td>\n<td>phantomjs\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit\x3c/td>\n<td>htmlunit\x3c/td>\n\x3c/tr>\n<tr>\n<td>HTMLUnit with Javascript\x3c/td>\n<td>htmlunitwithjs\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>To be able to actually use one of these browsers, you need to have a matching Selenium browser driver available. See the <a href=\"https://github.com/robotframework/SeleniumLibrary#browser-drivers\">project documentation\x3c/a> for more details. Headless Firefox and Headless Chrome are new additions in SeleniumLibrary 3.1.0 and require Selenium 3.8.0 or newer.\x3c/p>\n<p>After opening the browser, it is possible to use optional <code>url\x3c/code> to navigate the browser to the desired address.\x3c/p>\n<p>Optional <code>alias\x3c/code> is an alias given for this browser instance and it can be used for switching between browsers. When same <code>alias\x3c/code> is given with two <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keywords, the first keyword will open a new browser, but the second one will switch to the already opened browser and will not open a new browser. The <code>alias\x3c/code> definition overrules <code>browser\x3c/code> definition. When same <code>alias\x3c/code> is used but a different <code>browser\x3c/code> is defined, then switch to a browser with same alias is done and new browser is not opened. An alternative approach for switching is using an index returned by this keyword. These indices start from 1, are incremented when new browsers are opened, and reset back to 1 when <a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a> is called. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a> for more information and examples.\x3c/p>\n<p>Optional <code>remote_url\x3c/code> is the URL for a <a href=\"https://github.com/SeleniumHQ/selenium/wiki/Grid2\">Selenium Grid\x3c/a>.\x3c/p>\n<p>Optional <code>desired_capabilities\x3c/code> can be used to configure, for example, logging preferences for a browser or a browser and operating system when using <a href=\"http://saucelabs.com\">Sauce Labs\x3c/a>. Desired capabilities can be given either as a Python dictionary or as a string in the format <code>key1:value1,key2:value2\x3c/code>. <a href=\"https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities\">Selenium documentation\x3c/a> lists possible capabilities that can be enabled.\x3c/p>\n<p>Optional <code>ff_profile_dir\x3c/code> is the path to the Firefox profile directory if you wish to overwrite the default profile Selenium uses. Notice that prior to SeleniumLibrary 3.0, the library contained its own profile that was used by default. The <code>ff_profile_dir\x3c/code> can also be an instance of the <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.firefox_profile.html\">selenium.webdriver.FirefoxProfile\x3c/a> . As a third option, it is possible to use <span class=\"name\">FirefoxProfile\x3c/span> methods and attributes to define the profile using methods and attributes in the same way as with <code>options\x3c/code> argument. Example: It is possible to use FirefoxProfile <span class=\"name\">set_preference\x3c/span> to define different profile settings. See <code>options\x3c/code> argument documentation in below how to handle backslash escaping.\x3c/p>\n<p>Optional <code>options\x3c/code> argument allows defining browser specific Selenium options. Example for Chrome, the <code>options\x3c/code> argument allows defining the following <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">methods and attributes\x3c/a> and for Firefox these <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.options.html?highlight=firefox#selenium.webdriver.firefox.options.Options\">methods and attributes\x3c/a> are available. Please note that not all browsers, supported by the SeleniumLibrary, have Selenium options available. Therefore please consult the Selenium documentation which browsers do support the Selenium options. If <code>browser\x3c/code> argument is <span class=\"name\">android\x3c/span> then <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">Chrome options\x3c/a> is used. Selenium options are also supported, when <code>remote_url\x3c/code> argument is used.\x3c/p>\n<p>The SeleniumLibrary <code>options\x3c/code> argument accepts Selenium options in two different formats: as a string and as Python object which is an instance of the Selenium options class.\x3c/p>\n<p>The string format allows defining Selenium options methods or attributes and their arguments in Robot Framework test data. The method and attributes names are case and space sensitive and must match to the Selenium options methods and attributes names. When defining a method, it must be defined in a similar way as in python: method name, opening parenthesis, zero to many arguments and closing parenthesis. If there is a need to define multiple arguments for a single method, arguments must be separated with comma, just like in Python. Example: <span class=\"name\">add_argument(\"--headless\")\x3c/span> or <span class=\"name\">add_experimental_option(\"key\", \"value\")\x3c/span>. Attributes are defined in a similar way as in Python: attribute name, equal sign, and attribute value. Example, <span class=\"name\">headless=True\x3c/span>. Multiple methods and attributes must be separated by a semicolon. Example: <span class=\"name\">add_argument(\"--headless\");add_argument(\"--start-maximized\")\x3c/span>.\x3c/p>\n<p>Arguments allow defining Python data types and arguments are evaluated by using Python <a href=\"https://docs.python.org/3/library/ast.html#ast.literal_eval\">ast.literal_eval\x3c/a>. Strings must be quoted with single or double quotes, example \"value\" or 'value'. It is also possible to define other Python builtin data types, example <span class=\"name\">True\x3c/span> or <span class=\"name\">None\x3c/span>, by not using quotes around the arguments.\x3c/p>\n<p>The string format is space friendly. Usually, spaces do not alter the defining methods or attributes. There are two exceptions. In some Robot Framework test data formats, two or more spaces are considered as cell separator and instead of defining a single argument, two or more arguments may be defined. Spaces in string arguments are not removed and are left as is. Example <span class=\"name\">add_argument ( \"--headless\" )\x3c/span> is same as <span class=\"name\">add_argument(\"--headless\")\x3c/span>. But <span class=\"name\">add_argument(\" --headless \")\x3c/span> is not same same as <span class=\"name\">add_argument ( \"--headless\" )\x3c/span>, because spaces inside of quotes are not removed. Please note that if options string contains backslash, example a Windows OS path, the backslash needs escaping both in Robot Framework data and in Python side. This means single backslash must be writen using four backslash characters. Example, Windows path: \"C:\\path\\to\\profile\" must be written as \"C:\\\\\\\\path\\\\\\to\\\\\\\\profile\". Another way to write backslash is use Python <a href=\"https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals\">raw strings\x3c/a> and example write: r\"C:\\\\path\\\\to\\\\profile\".\x3c/p>\n<p>As last format, <code>options\x3c/code> argument also supports receiving the Selenium options as Python class instance. In this case, the instance is used as-is and the SeleniumLibrary will not convert the instance to other formats. For example, if the following code return value is saved to <span class=\"name\">${options}\x3c/span> variable in the Robot Framework data:\x3c/p>\n<pre>\noptions = webdriver.ChromeOptions()\noptions.add_argument('--disable-dev-shm-usage')\nreturn options\n\x3c/pre>\n<p>Then the <span class=\"name\">${options}\x3c/span> variable can be used as an argument to <code>options\x3c/code>.\x3c/p>\n<p>Example the <code>options\x3c/code> argument can be used to launch Chomium-based applications which utilize the <a href=\"https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver\">Chromium Embedded Framework\x3c/a> . To lauch Chomium-based application, use <code>options\x3c/code> to define <span class=\"name\">binary_location\x3c/span> attribute and use <span class=\"name\">add_argument\x3c/span> method to define <span class=\"name\">remote-debugging-port\x3c/span> port for the application. Once the browser is opened, the test can interact with the embedded web-content of the system under test.\x3c/p>\n<p>Optional <code>service_log_path\x3c/code> argument defines the name of the file where to write the browser driver logs. If the <code>service_log_path\x3c/code>  argument contain a  marker <code>{index}\x3c/code>, it will be automatically replaced with unique running index preventing files to be overwritten. Indices start's from 1, and how they are represented can be customized using Python's <a href=\"https://docs.python.org/3/library/string.html#format-string-syntax\">format string syntax\x3c/a>.\x3c/p>\n<p>Optional <code>executable_path\x3c/code> argument defines the path to the driver executable, example to a chromedriver or a geckodriver. If not defined it is assumed the executable is in the <a href=\"https://en.wikipedia.org/wiki/PATH_(variable)\">$PATH\x3c/a>.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>alias=Firefox\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Edge\x3c/td>\n<td>remote_url=http://127.0.0.1:4444/wd/hub\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>about:blank\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>browser=Chrome\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Alias examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${1_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=Chrome\x3c/td>\n<td># Opens new browser because alias is new.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${2_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>\x3c/td>\n<td># Opens new browser because alias is not defined.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${3_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=Chrome\x3c/td>\n<td># Switches to the browser with Chrome alias.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${4_index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>alias=${1_index}\x3c/td>\n<td># Switches to the browser with Chrome alias.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${1_index}\x3c/td>\n<td>${3_index}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${1_index}\x3c/td>\n<td>${4_index}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Should Be Equal\x3c/td>\n<td>${2_index}\x3c/td>\n<td>${2}\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Example when using <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver_chrome/selenium.webdriver.chrome.options.html#selenium.webdriver.chrome.options.Options\">Chrome options\x3c/a> method:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=add_argument(\"--disable-popup-blocking\"); add_argument(\"--ignore-certificate-errors\")\x3c/td>\n<td># Sting format.\x3c/td>\n\x3c/tr>\n<tr>\n<td>${options} =\x3c/td>\n<td>Get Options\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td># Selenium options instance.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=${options}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=binary_location=\"/path/to/binary\";add_argument(\"remote-debugging-port=port\")\x3c/td>\n<td># Start Chomium-based application.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>Chrome\x3c/td>\n<td>options=binary_location=r\"C:\\\\path\\\\to\\\\binary\"\x3c/td>\n<td># Windows OS path escaping.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Example for FirefoxProfile\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=/path/to/profile\x3c/td>\n<td># Using profile from disk.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=${FirefoxProfile_instance}\x3c/td>\n<td># Using instance of FirefoxProfile.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://example.com\">http://example.com\x3c/a>\x3c/td>\n<td>Firefox\x3c/td>\n<td>ff_profile_dir=set_preference(\"key\", \"value\");set_preference(\"other\", \"setting\")\x3c/td>\n<td># Defining profile using FirefoxProfile mehtods.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If the provided configuration options are not enough, it is possible to use <a href=\"#Create%20Webdriver\" class=\"name\">Create Webdriver\x3c/a> to customize browser initialization even more.\x3c/p>\n<p>Applying <code>desired_capabilities\x3c/code> argument also for local browser is new in SeleniumLibrary 3.1.\x3c/p>\n<p>Using <code>alias\x3c/code> to decide, is the new browser opened is new in SeleniumLibrary 4.0. The <code>options\x3c/code> and <code>service_log_path\x3c/code> are new in SeleniumLibrary 4.0. Support for <code>ff_profile_dir\x3c/code> accepting an instance of the <span class=\"name\">selenium.webdriver.FirefoxProfile\x3c/span> and support defining FirefoxProfile with methods and attributes are new in SeleniumLibrary 4.0.\x3c/p>\n<p>Making <code>url\x3c/code> optional is new in SeleniumLibrary 4.1.\x3c/p>\n<p>The <code>executable_path\x3c/code> argument is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Open Browser","shortdoc":"Opens a new browser instance to the optional ``url``.","tags":[]},{"args":["locator"],"doc":"<p>Opens the context menu on the element identified by <code>locator\x3c/code>.\x3c/p>","matched":true,"name":"Open Context Menu","shortdoc":"Opens the context menu on the element identified by ``locator``.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies that current page contains <code>text\x3c/code>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <code>loglevel\x3c/code> argument. Valid log levels are <code>DEBUG\x3c/code>, <code>INFO\x3c/code> (default), <code>WARN\x3c/code>, and <code>NONE\x3c/code>. If the log level is <code>NONE\x3c/code> or below the current active log level the source will not be logged.\x3c/p>","matched":true,"name":"Page Should Contain","shortdoc":"Verifies that current page contains ``text``.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Button","shortdoc":"Verifies button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is found from the current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is found from the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE","limit=None"],"doc":"<p>Verifies that element <code>locator\x3c/code> is found on the current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should contain. When <code>limit\x3c/code> is <code>None\x3c/code> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>\n<p>Examples assumes that locator matches to two elements.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=1\x3c/td>\n<td># Keyword fails.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=2\x3c/td>\n<td># Keyword passes.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>limit=none\x3c/td>\n<td># None is considered one or more.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a>\x3c/td>\n<td>div_name\x3c/td>\n<td>\x3c/td>\n<td># Same as above.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>limit\x3c/code> argument is new in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that element ``locator`` is found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Image","shortdoc":"Verifies image identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Contain Link","shortdoc":"Verifies link identified by ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain List","shortdoc":"Verifies selection list ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies text field <code>locator\x3c/code> is found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Contain Textfield","shortdoc":"Verifies text field ``locator`` is found from current page.","tags":[]},{"args":["text","loglevel=TRACE"],"doc":"<p>Verifies the current page does not contain <code>text\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Page Should Not Contain","shortdoc":"Verifies the current page does not contain ``text``.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, buttons are searched using <code>id\x3c/code>, <code>name\x3c/code>, and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Button","shortdoc":"Verifies button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies checkbox <code>locator\x3c/code> is not found from the current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Checkbox","shortdoc":"Verifies checkbox ``locator`` is not found from the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies that element <code>locator\x3c/code> is not found on the current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that element ``locator`` is not found on the current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies image identified by <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, images are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>src\x3c/code> and <code>alt\x3c/code>.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Image","shortdoc":"Verifies image identified by ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies link identified by <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, links are searched using <code>id\x3c/code>, <code>name\x3c/code>, <code>href\x3c/code> and the link text.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>","matched":true,"name":"Page Should Not Contain Link","shortdoc":"Verifies link identified by ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies selection list <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain List","shortdoc":"Verifies selection list ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies radio button <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax. When using the default locator strategy, radio buttons are searched using <code>id\x3c/code>, <code>name\x3c/code> and <code>value\x3c/code>.\x3c/p>","matched":true,"name":"Page Should Not Contain Radio Button","shortdoc":"Verifies radio button ``locator`` is not found from current page.","tags":[]},{"args":["locator","message=None","loglevel=TRACE"],"doc":"<p>Verifies text field <code>locator\x3c/code> is not found from current page.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about <code>message\x3c/code> and <code>loglevel\x3c/code> arguments.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Page Should Not Contain Textfield","shortdoc":"Verifies text field ``locator`` is not found from current page.","tags":[]},{"args":["locator","key"],"doc":"<p><b>DEPRECATED in SeleniumLibrary 4.0.\x3c/b> use <a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a> instead.\x3c/p>","matched":true,"name":"Press Key","shortdoc":"*DEPRECATED in SeleniumLibrary 4.0.* use `Press Keys` instead.","tags":[]},{"args":["locator=None","*keys"],"doc":"<p>Simulates the user pressing key(s) to an element or on the active browser.\x3c/p>\n<p>If <code>locator\x3c/code> evaluates as false, see <span class=\"name\">Boolean arguments\x3c/span> for more details, then the <code>keys\x3c/code> are sent to the currently active browser. Otherwise element is searched and <code>keys\x3c/code> are send to the element identified by the <code>locator\x3c/code>. In later case, keyword fails if element is not found. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>keys\x3c/code> arguments can contain one or many strings, but it can not be empty. <code>keys\x3c/code> can also be a combination of <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html\">Selenium Keys\x3c/a> and strings or a single Selenium Key. If Selenium Key is combined with strings, Selenium key and strings must be separated by the <span class=\"name\">+\x3c/span> character, like in <span class=\"name\">CONTROL+c\x3c/span>. Selenium Keys are space and case sensitive and Selenium Keys are not parsed inside of the string. Example AALTO, would send string <span class=\"name\">AALTO\x3c/span> and <span class=\"name\">ALT\x3c/span> not parsed inside of the string. But <span class=\"name\">A+ALT+O\x3c/span> would found Selenium ALT key from the <code>keys\x3c/code> argument. It also possible to press many Selenium Keys down at the same time, example 'ALT+ARROW_DOWN`.\x3c/p>\n<p>If Selenium Keys are detected in the <code>keys\x3c/code> argument, keyword will press the Selenium Key down, send the strings and then release the Selenium Key. If keyword needs to send a Selenium Key as a string, then each character must be separated with <span class=\"name\">+\x3c/span> character, example <span class=\"name\">E+N+D\x3c/span>.\x3c/p>\n<p><span class=\"name\">CTRL\x3c/span> is alias for <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.CONTROL\">Selenium CONTROL\x3c/a> and ESC is alias for <a href=\"https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html#selenium.webdriver.common.keys.Keys.ESCAPE\">Selenium ESCAPE\x3c/a>\x3c/p>\n<p>New in SeleniumLibrary 3.3\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>AAAAA\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"AAAAA\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>None\x3c/td>\n<td>BBBBB\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"BBBBB\" to currently active browser.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>E+N+D\x3c/td>\n<td>\x3c/td>\n<td># Sends string \"END\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>XXX\x3c/td>\n<td>YY\x3c/td>\n<td># Sends strings \"XXX\" and \"YY\" to element.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>XXX+YY\x3c/td>\n<td>\x3c/td>\n<td># Same as above.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>ALT+ARROW_DOWN\x3c/td>\n<td>\x3c/td>\n<td># Pressing \"ALT\" key down, then pressing ARROW_DOWN and then releasing both keys.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>ALT\x3c/td>\n<td>ARROW_DOWN\x3c/td>\n<td># Pressing \"ALT\" key and then pressing ARROW_DOWN.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>text_field\x3c/td>\n<td>CTRL+c\x3c/td>\n<td>\x3c/td>\n<td># Pressing CTRL key down, sends string \"c\" and then releases CTRL key.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Press%20Keys\" class=\"name\">Press Keys\x3c/a>\x3c/td>\n<td>button\x3c/td>\n<td>RETURN\x3c/td>\n<td>\x3c/td>\n<td># Pressing \"ENTER\" key to element.\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Press Keys","shortdoc":"Simulates the user pressing key(s) to an element or on the active browser.","tags":[]},{"args":["group_name","value"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> is set to <code>value\x3c/code>.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Be Set To","shortdoc":"Verifies radio button group ``group_name`` is set to ``value``.","tags":[]},{"args":["group_name"],"doc":"<p>Verifies radio button group <code>group_name\x3c/code> has no selection.\x3c/p>\n<p><code>group_name\x3c/code> is the <code>name\x3c/code> of the radio button group.\x3c/p>","matched":true,"name":"Radio Button Should Not Be Selected","shortdoc":"Verifies radio button group ``group_name`` has no selection.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute, when a SeleniumLibrary keyword fails.\x3c/p>\n<p><code>keyword\x3c/code> is the name of a keyword that will be executed if a SeleniumLibrary keyword fails. It is possible to use any available keyword, including user keywords or keywords from other libraries, but the keyword must not take any arguments.\x3c/p>\n<p>The initial keyword to use is set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>It is possible to use string <code>NOTHING\x3c/code> or <code>NONE\x3c/code>, case-insensitively, as well as Python <code>None\x3c/code> to disable this feature altogether.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword or Python <code>None\x3c/code> if this functionality was previously disabled. The return value can be always used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>Log Source\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>NONE\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a>\x3c/td>\n<td>${previous kw}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Changes in SeleniumLibrary 3.0:\x3c/p>\n<ul>\n<li>Possible to use string <code>NONE\x3c/code> or Python <code>None\x3c/code> to disable the functionality.\x3c/li>\n<li>Return Python <code>None\x3c/code> when the functionality was disabled earlier. In previous versions special value <code>No Keyword\x3c/code> was returned and it could not be used to restore the original state.\x3c/li>\n\x3c/ul>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute, when a SeleniumLibrary keyword fails.","tags":[]},{"args":[],"doc":"<p>Simulates user reloading page.\x3c/p>","matched":true,"name":"Reload Page","shortdoc":"Simulates user reloading page.","tags":[]},{"args":["strategy_name"],"doc":"<p>Removes a previously added custom location strategy.\x3c/p>\n<p>See <span class=\"name\">Custom locators\x3c/span> for information on how to create and use custom strategies.\x3c/p>","matched":true,"name":"Remove Location Strategy","shortdoc":"Removes a previously added custom location strategy.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>\n<p>If <a href=\"#Set%20Screenshot%20Directory\" class=\"name\">Set Screenshot Directory\x3c/a> has been set to <code>EMBED\x3c/code> then the screenshot will be embedded into the report\x3c/p>","matched":true,"name":"Save Selenium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls the element identified by <code>locator\x3c/code> into view.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.2.0\x3c/p>","matched":true,"name":"Scroll Element Into View","shortdoc":"Scrolls the element identified by ``locator`` into view.","tags":[]},{"args":[],"doc":"<p>This keyword scrolls down to the bottom of the page, if jquery is not available it will scroll 20000 pixels\x3c/p>","matched":true,"name":"Scroll To Bottom Of Page","shortdoc":"This keyword scrolls down to the bottom of the page, if jquery is not available it will scroll 20000 pixels","tags":[]},{"args":["locator"],"doc":"<p>Selects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select All From List","shortdoc":"Selects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Selects the checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if checkbox is already selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select Checkbox","shortdoc":"Selects the checkbox identified by ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Sets frame identified by <code>locator\x3c/code> as the current frame.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Works both with frames and iframes. Use <a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a> to cancel the frame selection and return to the main frame.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>top-frame\x3c/td>\n<td># Select frame with id or name 'top-frame'\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td># Click link 'example' in the selected frame\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Unselect%20Frame\" class=\"name\">Unselect Frame\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Back to main frame.\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a>\x3c/td>\n<td>//iframe[@name='xxx']\x3c/td>\n<td># Select frame using xpath\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Frame","shortdoc":"Sets frame identified by ``locator`` as the current frame.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Index","shortdoc":"Selects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Label","shortdoc":"Selects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Selects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>If more than one option is given for a single-selection list, the last value will be selected. With multi-selection lists all specified options are selected, but possible old selections are not cleared.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Select From List By Value","shortdoc":"Selects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["*locators"],"doc":"<p>Selects a frame nested in other frames\x3c/p>\n<p>locators: (list) A list of selenium locators(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>Example (Selects iframe3 after traversing iframe1 and iframe2):\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Nested%20Frame\" class=\"name\">Select Nested Frame\x3c/a>\x3c/td>\n<td>id-iframe1\x3c/td>\n<td>id=iframe2\x3c/td>\n<td>id=iframe3\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Nested Frame","shortdoc":"Selects a frame nested in other frames","tags":[]},{"args":["group_name","value"],"doc":"<p>Sets the radio button group <code>group_name\x3c/code> to <code>value\x3c/code>.\x3c/p>\n<p>The radio button to be selected is located by two arguments:\x3c/p>\n<ul>\n<li><code>group_name\x3c/code> is the name of the radio button group.\x3c/li>\n<li><code>value\x3c/code> is the <code>id\x3c/code> or <code>value\x3c/code> attribute of the actual radio button.\x3c/li>\n\x3c/ul>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>size\x3c/td>\n<td>XL\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Select%20Radio%20Button\" class=\"name\">Select Radio Button\x3c/a>\x3c/td>\n<td>contact\x3c/td>\n<td>email\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Select Radio Button","shortdoc":"Sets the radio button group ``group_name`` to ``value``.","tags":[]},{"args":["locator=MAIN","timeout=None"],"doc":"<p>DEPRECATED in SeleniumLibrary 4.0. , use <a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a> instead.\x3c/p>","matched":true,"name":"Select Window","shortdoc":"DEPRECATED in SeleniumLibrary 4.0. , use `Switch Window` instead.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>Same as <a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a> but only affects the current browser.\x3c/p>","matched":true,"name":"Set Browser Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["locator"],"doc":"<p>Sets the focus to the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Focus\x3c/span>.\x3c/p>","matched":true,"name":"Set Focus To Element","shortdoc":"Sets the focus to the element identified by ``locator``.","tags":[]},{"args":["path"],"doc":"<p>Sets the directory for captured screenshots.\x3c/p>\n<p><code>path\x3c/code> argument specifies the absolute path to a directory where the screenshots should be written to. If the directory does not exist, it will be created. The directory can also be set when <a href=\"#Importing\" class=\"name\">importing\x3c/a> the library. If it is not configured anywhere, screenshots are saved to the same directory where Robot Framework's log file is written.\x3c/p>\n<p>If <code>path\x3c/code> equals to EMBED (case insensitive) and <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a> or <a href=\"#Capture%20Element%20Screenshot\" class=\"name\">capture Element Screenshot\x3c/a> keywords filename argument is not changed from the default value, then the page or element screenshot is embedded as Base64 image to the log.html.\x3c/p>\n<p>The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>Returning the previous value is new in SeleniumLibrary 3.0. The persist argument was removed in SeleniumLibrary 3.2 and EMBED is new in SeleniumLibrary 4.2.\x3c/p>","matched":true,"name":"Set Screenshot Directory","shortdoc":"Sets the directory for captured screenshots.","tags":[]},{"args":["value"],"doc":"<p>Sets the implicit wait value used by Selenium.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>This keyword sets the implicit wait for all opened browsers. Use <a href=\"#Set%20Browser%20Implicit%20Wait\" class=\"name\">Set Browser Implicit Wait\x3c/a> to set it only to the current browser.\x3c/p>\n<p>See the <span class=\"name\">Implicit wait\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig wait} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>10 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Perform AJAX call that is slow\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Implicit%20Wait\" class=\"name\">Set Selenium Implicit Wait\x3c/a>\x3c/td>\n<td>${orig wait}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Implicit Wait","shortdoc":"Sets the implicit wait value used by Selenium.","tags":[]},{"args":["value"],"doc":"<p>Sets the delay that is waited after each Selenium command.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <span class=\"name\">Selenium Speed\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Selenium%20Speed\" class=\"name\">Set Selenium Speed\x3c/a>\x3c/td>\n<td>0.5 seconds\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Speed","shortdoc":"Sets the delay that is waited after each Selenium command.","tags":[]},{"args":["value"],"doc":"<p>Sets the timeout that is used by various keywords.\x3c/p>\n<p>The value can be given as a number that is considered to be seconds or as a human-readable string like <code>1 second\x3c/code>. The previous value is returned and can be used to restore the original value later if needed.\x3c/p>\n<p>See the <span class=\"name\">Timeout\x3c/span> section above for more information.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td><span class=\"name\">Open page that loads slowly\x3c/span>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Selenium%20Timeout\" class=\"name\">Set Selenium Timeout\x3c/a>\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Selenium Timeout","shortdoc":"Sets the timeout that is used by various keywords.","tags":[]},{"args":["x","y"],"doc":"<p>Sets window position using <code>x\x3c/code> and <code>y\x3c/code> coordinates.\x3c/p>\n<p>The position is relative to the top left corner of the screen, but some browsers exclude possible task bar set by the operating system from the calculation. The actual position may thus be different with different browsers.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Position\" class=\"name\">Get Window Position\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Position\" class=\"name\">Set Window Position\x3c/a>\x3c/td>\n<td>100\x3c/td>\n<td>200\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Position","shortdoc":"Sets window position using ``x`` and ``y`` coordinates.","tags":[]},{"args":["width","height","inner=False"],"doc":"<p>Sets current windows size to given <code>width\x3c/code> and <code>height\x3c/code>.\x3c/p>\n<p>Values can be given using strings containing numbers or by using actual numbers. See also <a href=\"#Get%20Window%20Size\" class=\"name\">Get Window Size\x3c/a>.\x3c/p>\n<p>Browsers have a limit on their minimum size. Trying to set them smaller will cause the actual size to be bigger than the requested size.\x3c/p>\n<p>If <code>inner\x3c/code> parameter is set to True, keyword sets the necessary window width and height to have the desired HTML DOM <i>window.innerWidth\x3c/i> and <i>window.innerHeight\x3c/i>. See <span class=\"name\">Boolean arguments\x3c/span> for more details on how to set boolean arguments.\x3c/p>\n<p>The <code>inner\x3c/code> argument is new since SeleniumLibrary 4.0.\x3c/p>\n<p>This <code>inner\x3c/code> argument does not support Frames. If a frame is selected, switch to default before running this.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>\x3c/td>\n<td>800\x3c/td>\n<td>600\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Set%20Window%20Size\" class=\"name\">Set Window Size\x3c/a>\x3c/td>\n<td>800\x3c/td>\n<td>600\x3c/td>\n<td>True\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Window Size","shortdoc":"Sets current windows size to given ``width`` and ``height``.","tags":[]},{"args":["locator","event"],"doc":"<p>Simulates <code>event\x3c/code> on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>This keyword is useful if element has <code>OnEvent\x3c/code> handler that needs to be explicitly invoked.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Prior to SeleniumLibrary 3.0 this keyword was named <span class=\"name\">Simulate\x3c/span>.\x3c/p>","matched":true,"name":"Simulate Event","shortdoc":"Simulates ``event`` on the element identified by ``locator``.","tags":[]},{"args":["locator=None"],"doc":"<p>Submits a form identified by <code>locator\x3c/code>.\x3c/p>\n<p>If <code>locator\x3c/code> is not given, first form on the page is submitted.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Submit Form","shortdoc":"Submits a form identified by ``locator``.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches between active browsers using <code>index_or_alias\x3c/code>.\x3c/p>\n<p>Indices are returned by the <a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a> keyword and aliases can be given to it explicitly. Indices start from 1.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>ff\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>ie\x3c/td>\n<td>alias=second\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Location%20Should%20Be\" class=\"name\">Location Should Be\x3c/a>\x3c/td>\n<td><a href=\"http://yahoo.com\">http://yahoo.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>1\x3c/td>\n<td># index\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>I'm feeling lucky\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>second\x3c/td>\n<td># alias\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Page%20Should%20Contain\" class=\"name\">Page Should Contain\x3c/a>\x3c/td>\n<td>More Yahoo!\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Close%20All%20Browsers\" class=\"name\">Close All Browsers\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Above example expects that there was no other open browsers when opening the first one because it used index <code>1\x3c/code> when switching to it later. If you are not sure about that, you can store the index into a variable as below.\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${index} =\x3c/td>\n<td><a href=\"#Open%20Browser\" class=\"name\">Open Browser\x3c/a>\x3c/td>\n<td><a href=\"http://google.com\">http://google.com\x3c/a>\x3c/td>\n\x3c/tr>\n<tr>\n<td># Do something ...\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/td>\n<td>${index}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Browser","shortdoc":"Switches between active browsers using ``index_or_alias``.","tags":[]},{"args":["locator=MAIN","timeout=None","browser=CURRENT"],"doc":"<p>Switches to browser window matching <code>locator\x3c/code>.\x3c/p>\n<p>If the window is found, all subsequent commands use the selected window, until this keyword is used again. If the window is not found, this keyword fails. The previous windows handle is returned and can be used to switch back to it later.\x3c/p>\n<p>Notice that alerts should be handled with <a href=\"#Handle%20Alert\" class=\"name\">Handle Alert\x3c/a> or other alert related keywords.\x3c/p>\n<p>The <code>locator\x3c/code> can be specified using different strategies somewhat similarly as when <span class=\"name\">locating elements\x3c/span> on pages.\x3c/p>\n<ul>\n<li>By default, the <code>locator\x3c/code> is matched against window handle, name, title, and URL. Matching is done in that order and the first matching window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>The <code>locator\x3c/code> can specify an explicit strategy by using the format <code>strategy:value\x3c/code> (recommended) or <code>strategy=value\x3c/code>. Supported strategies are <code>name\x3c/code>, <code>title\x3c/code>, and <code>url\x3c/code>. These matches windows using their name, title, or URL, respectively. Additionally, <code>default\x3c/code> can be used to explicitly use the default strategy explained above.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>NEW\x3c/code> (case-insensitive), the latest opened window is selected. It is an error if this is the same as the current window.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>MAIN\x3c/code> (default, case-insensitive), the main window is selected.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is <code>CURRENT\x3c/code> (case-insensitive), nothing is done. This effectively just returns the current window handle.\x3c/li>\n\x3c/ul>\n<ul>\n<li>If the <code>locator\x3c/code> is not a string, it is expected to be a list of window handles <i>to exclude\x3c/i>. Such a list of excluded windows can be got from <a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a> before doing an action that opens a new window.\x3c/li>\n\x3c/ul>\n<p>The <code>timeout\x3c/code> is used to specify how long keyword will poll to select the new window. The <code>timeout\x3c/code> is new in SeleniumLibrary 3.2.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup1\x3c/td>\n<td>\x3c/td>\n<td># Open new window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>example\x3c/td>\n<td>\x3c/td>\n<td># Select window using default strategy\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Button\" class=\"name\">Click Button\x3c/a>\x3c/td>\n<td>popup2\x3c/td>\n<td>\x3c/td>\n<td># Open another window\x3c/td>\n\x3c/tr>\n<tr>\n<td>${handle} =\x3c/td>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>NEW\x3c/td>\n<td># Select latest opened window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 2\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>${handle}\x3c/td>\n<td>\x3c/td>\n<td># Select window using handle\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 1\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>MAIN\x3c/td>\n<td>\x3c/td>\n<td># Select the main window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Main\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${excludes} =\x3c/td>\n<td><a href=\"#Get%20Window%20Handles\" class=\"name\">Get Window Handles\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># Get list of current windows\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Click%20Link\" class=\"name\">Click Link\x3c/a>\x3c/td>\n<td>popup3\x3c/td>\n<td>\x3c/td>\n<td># Open one more window\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Switch%20Window\" class=\"name\">Switch Window\x3c/a>\x3c/td>\n<td>${excludes}\x3c/td>\n<td>\x3c/td>\n<td># Select window using excludes\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Title%20Should%20Be\" class=\"name\">Title Should Be\x3c/a>\x3c/td>\n<td>Pop-up 3\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>The <code>browser\x3c/code> argument allows with <code>index_or_alias\x3c/code> to implicitly switch to a specific browser when switching to a window. See <a href=\"#Switch%20Browser\" class=\"name\">Switch Browser\x3c/a>\x3c/p>\n<ul>\n<li>If the <code>browser\x3c/code> is <code>CURRENT\x3c/code> (case-insensitive), no other browser is selected.\x3c/li>\n\x3c/ul>\n<p><b>NOTE:\x3c/b>\x3c/p>\n<ul>\n<li>The <code>strategy:value\x3c/code> syntax is only supported by SeleniumLibrary 3.0 and newer.\x3c/li>\n<li>Prior to SeleniumLibrary 3.0 matching windows by name, title and URL was case-insensitive.\x3c/li>\n<li>Earlier versions supported aliases <code>None\x3c/code>, <code>null\x3c/code> and the empty string for selecting the main window, and alias <code>self\x3c/code> for selecting the current window. Support for these aliases was removed in SeleniumLibrary 3.2.\x3c/li>\n\x3c/ul>","matched":true,"name":"Switch Window","shortdoc":"Switches to browser window matching ``locator``.","tags":[]},{"args":["locator","row","column","expected","loglevel=TRACE"],"doc":"<p>Verifies table cell contains text <code>expected\x3c/code>.\x3c/p>\n<p>See <a href=\"#Get%20Table%20Cell\" class=\"name\">Get Table Cell\x3c/a> that this keyword uses internally for an explanation about accepted arguments.\x3c/p>","matched":true,"name":"Table Cell Should Contain","shortdoc":"Verifies table cell contains text ``expected``.","tags":[]},{"args":["locator","column","expected","loglevel=TRACE"],"doc":"<p>Verifies table column contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Column indexes start from 1. It is possible to refer to columns from the end by using negative indexes so that -1 is the last column, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple columns, those merged cells count as a single column.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Column Should Contain","shortdoc":"Verifies table column contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table footer contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;td&gt;\x3c/code> element inside <code>&lt;tfoot&gt;\x3c/code> element is considered to be part of the footer.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Footer Should Contain","shortdoc":"Verifies table footer contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table header contains text <code>expected\x3c/code>.\x3c/p>\n<p>Any <code>&lt;th&gt;\x3c/code> element anywhere in the table is considered to be part of the header.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Header Should Contain","shortdoc":"Verifies table header contains text ``expected``.","tags":[]},{"args":["locator","row","expected","loglevel=TRACE"],"doc":"<p>Verifies that table row contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument and its column found using <code>column\x3c/code>. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>Row indexes start from 1. It is possible to refer to rows from the end by using negative indexes so that -1 is the last row, -2 is the second last, and so on.\x3c/p>\n<p>If a table contains cells that span multiple rows, a match only occurs for the uppermost row of those merged cells.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Row Should Contain","shortdoc":"Verifies that table row contains text ``expected``.","tags":[]},{"args":["locator","expected","loglevel=TRACE"],"doc":"<p>Verifies table contains text <code>expected\x3c/code>.\x3c/p>\n<p>The table is located using the <code>locator\x3c/code> argument. See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>See <a href=\"#Page%20Should%20Contain%20Element\" class=\"name\">Page Should Contain Element\x3c/a> for an explanation about the <code>loglevel\x3c/code> argument.\x3c/p>","matched":true,"name":"Table Should Contain","shortdoc":"Verifies table contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Should Contain","shortdoc":"Verifies text area ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text area <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textarea Value Should Be","shortdoc":"Verifies text area ``locator`` has exactly text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Should Contain","shortdoc":"Verifies text field ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message=None"],"doc":"<p>Verifies text field <code>locator\x3c/code> has exactly text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override default error message.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Textfield Value Should Be","shortdoc":"Verifies text field ``locator`` has exactly text ``expected``.","tags":[]},{"args":["title","message=None"],"doc":"<p>Verifies that the current page title equals <code>title\x3c/code>.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p><code>message\x3c/code> argument is new in SeleniumLibrary 3.1.\x3c/p>","matched":true,"name":"Title Should Be","shortdoc":"Verifies that the current page title equals ``title``.","tags":[]},{"args":["string","number_of_characters"],"doc":"<p>Truncates a given string to a certain amount of the given number of characters parameter.\x3c/p>\n<p>string: (string) Original String number_of_characters: (integer) Truncation index return: (string) A truncated String\x3c/p>","matched":true,"name":"Truncate String","shortdoc":"Truncates a given string to a certain amount of the given number of characters parameter.","tags":[]},{"args":["locator"],"doc":"<p>Unselects all options from multi-selection list <code>locator\x3c/code>.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p>New in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Unselect All From List","shortdoc":"Unselects all options from multi-selection list ``locator``.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first unselects the current iFrame, then executes a wait for and select frame for a new iFrame.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Unselect And Select Frame","shortdoc":"This is a series of chained Selenium keywords, that first unselects the current iFrame, then executes a wait for and select frame for a new iFrame.","tags":[]},{"args":["locator"],"doc":"<p>Removes the selection of checkbox identified by <code>locator\x3c/code>.\x3c/p>\n<p>Does nothing if the checkbox is not selected.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect Checkbox","shortdoc":"Removes the selection of checkbox identified by ``locator``.","tags":[]},{"args":[],"doc":"<p>Sets the main frame as the current frame.\x3c/p>\n<p>In practice cancels the previous <a href=\"#Select%20Frame\" class=\"name\">Select Frame\x3c/a> call.\x3c/p>","matched":true,"name":"Unselect Frame","shortdoc":"Sets the main frame as the current frame.","tags":[]},{"args":["locator","*indexes"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>indexes\x3c/code>.\x3c/p>\n<p>Indexes of list options start from 0. This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Index","shortdoc":"Unselects options from selection list ``locator`` by ``indexes``.","tags":[]},{"args":["locator","*labels"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>labels\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Label","shortdoc":"Unselects options from selection list ``locator`` by ``labels``.","tags":[]},{"args":["locator","*values"],"doc":"<p>Unselects options from selection list <code>locator\x3c/code> by <code>values\x3c/code>.\x3c/p>\n<p>This keyword works only with multi-selection lists.\x3c/p>\n<p>See the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Unselect From List By Value","shortdoc":"Unselects options from selection list ``locator`` by ``values``.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that tries to find a web element first, and then clicks it. If the element fails to be clicked, it will scroll to the bottom of the page and try again.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"This is a series of chained Selenium keywords, that tries to find a web element first, and then clicks it. If the element fails to be clicked, it will scroll to the bottom of the page and try again.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be on the DOM, executes Focus on it, then it waits for it to be visible.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Focus On Element","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be on the DOM, executes Focus on it, then it waits for it to be visible.","tags":[]},{"args":["locator","text","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that tries to find a web element first, and then input text. If the element fails to typed into, it will scroll to the bottom of the page and try again.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>text: (string) Text to be typed into the input field. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"This is a series of chained Selenium keywords, that tries to find a web element first, and then input text. If the element fails to typed into, it will scroll to the bottom of the page and try again.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, then executes a mouse over command on it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Mouse Over","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, then executes a mouse over command on it.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, executes a mouse over command on it, and it finally clicks it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Mouse Over And Click","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, executes a mouse over command on it, and it finally clicks it.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for an element to be visible, then selects it if it's a checkbox.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Checkbox","shortdoc":"This is a series of chained Selenium keywords, that first waits for an element to be visible, then selects it if it's a checkbox.","tags":[]},{"args":["locator","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits until an iFrame exists in the page, and then selects it.\x3c/p>\n<p>locator: (string) A selenium locator(CSS, XPATH, ID, NAME, etc) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Frame","shortdoc":"This is a series of chained Selenium keywords, that first waits until an iFrame exists in the page, and then selects it.","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s).\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s).","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the index of the item(s) web element.\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List By Index","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the index of the item(s) web element.","tags":[]},{"args":["locator","target","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the value attribute of the item(s) web element.\x3c/p>\n<p>locator:  (string) A selenium locator(CSS, XPATH, ID, NAME, etc)\x3c/p>\n<p>target: (string, array of strings) The list item(s) to be selected (string, or list of strings) timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select From List By Value","shortdoc":"This is a series of chained Selenium keywords, that first waits for and focuses on a list element, then selects an item(s) for it using the value attribute of the item(s) web element.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, used to wait until a window with the title argument exists, then it selects that window.\x3c/p>\n<p>title: (string) The title of the window you are waiting for. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait For And Select Window","shortdoc":"This is a series of chained Selenium keywords, used to wait until a window with the title argument exists, then it selects that window.","tags":[]},{"args":["condition","timeout=None","error=None"],"doc":"<p>Waits until <code>condition\x3c/code> is true or <code>timeout\x3c/code> expires.\x3c/p>\n<p>The condition can be arbitrary JavaScript expression but it must return a value to be evaluated. See <a href=\"#Execute%20Javascript\" class=\"name\">Execute JavaScript\x3c/a> for information about accessing content on pages.\x3c/p>\n<p>Fails if the timeout expires before the condition becomes true. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return document.title == \"New Title\"\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>return jQuery.active == 0\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Wait%20For%20Condition\" class=\"name\">Wait For Condition\x3c/a>\x3c/td>\n<td>style = document.querySelector('h1').style; return style.background == \"red\" &amp;&amp; style.color == \"white\"\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Wait For Condition","shortdoc":"Waits until ``condition`` is true or ``timeout`` expires.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until the element ``locator`` contains ``text``.","tags":[]},{"args":["locator","expected_value","timeout=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> appears on the current page and contains value. Fails if <code>timeout\x3c/code> expires before the element appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>","matched":true,"name":"Wait Until Element Contains Value","shortdoc":"Waits until the element ``locator`` appears on the current page and contains value. Fails if ``timeout`` expires before the element appears. See the `Timeouts` section for more information about using timeouts and their default value and the `Locating elements` section for details about the locator syntax.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until the element ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Element is considered enabled if it is not disabled nor read-only.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is enabled. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>Considering read-only elements to be disabled is a new feature in SeleniumLibrary 3.0.\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until the element ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is not visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is not visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Not Visible","shortdoc":"Waits until the element ``locator`` is not visible.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> is visible.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element is visible. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until the element ``locator`` is visible.","tags":[]},{"args":[],"doc":"<p>This keyword polls the jQuery.active flag, to track execution of AJAX requests. The web application needs to have jQuery in order for this to work.\x3c/p>","matched":true,"name":"Wait Until Javascript Is Complete","shortdoc":"This keyword polls the jQuery.active flag, to track execution of AJAX requests. The web application needs to have jQuery in order for this to work.","tags":[]},{"args":["expected","timeout=None","message=None"],"doc":"<p>Waits until the current URL contains <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument contains the expected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location contains. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Wait Until Location Contains","shortdoc":"Waits until the current URL contains ``expected``.","tags":[]},{"args":["location","timeout=None","message=None"],"doc":"<p>Waits until the current URL does not contains <code>location\x3c/code>.\x3c/p>\n<p>The <code>location\x3c/code> argument contains value not expected in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location not contains. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.3\x3c/p>","matched":true,"name":"Wait Until Location Does Not Contain","shortdoc":"Waits until the current URL does not contains ``location``.","tags":[]},{"args":["expected","timeout=None","message=None"],"doc":"<p>Waits until the current URL is <code>expected\x3c/code>.\x3c/p>\n<p>The <code>expected\x3c/code> argument is the expected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location is. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.0\x3c/p>","matched":true,"name":"Wait Until Location Is","shortdoc":"Waits until the current URL is ``expected``.","tags":[]},{"args":["location","timeout=None","message=None"],"doc":"<p>Waits until the current URL is not <code>location\x3c/code>.\x3c/p>\n<p>The <code>location\x3c/code> argument is the unexpected value in url.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the location is not. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p>The <code>message\x3c/code> argument can be used to override the default error message.\x3c/p>\n<p>New in SeleniumLibrary 4.3\x3c/p>","matched":true,"name":"Wait Until Location Is Not","shortdoc":"Waits until the current URL is not ``location``.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> appears on the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until ``text`` appears on the current page.","tags":[]},{"args":["locator","timeout=None","error=None","limit=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> appears on the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should contain. When <code>limit\x3c/code> is <span class=\"name\">None\x3c/span> (default) page can contain one or more elements. When limit is a number, page must contain same number of elements.\x3c/p>\n<p><code>limit\x3c/code> is new in SeleniumLibrary 4.4\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until the element ``locator`` appears on the current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <code>text\x3c/code> disappears from the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the text disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until ``text`` disappears from the current page.","tags":[]},{"args":["locator","timeout=None","error=None","limit=None"],"doc":"<p>Waits until the element <code>locator\x3c/code> disappears from the current page.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element disappears. See the <span class=\"name\">Timeouts\x3c/span> section for more information about using timeouts and their default value and the <span class=\"name\">Locating elements\x3c/span> section for details about the locator syntax.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The <code>limit\x3c/code> argument can used to define how many elements the page should not contain. When <code>limit\x3c/code> is <span class=\"name\">None\x3c/span> (default) page can`t contain any elements. When limit is a number, page must not contain same number of elements.\x3c/p>\n<p><code>limit\x3c/code> is new in SeleniumLibrary 4.4\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until the element ``locator`` disappears from the current page.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>This is a series of chained Selenium keywords, used to wait until a window with the title no longer exists.\x3c/p>\n<p>title: (string) The title of the window you are expecting to close. timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait Until Window Closes","shortdoc":"This is a series of chained Selenium keywords, used to wait until a window with the title no longer exists.","tags":[]},{"args":["title","timeout=None"],"doc":"<p>Used to get the titles of the current browser windows, then verify that the provided window title is among them.\x3c/p>\n<p>title: (string) The title of the window you are waiting for.\x3c/p>\n<p>timeout: (float) Time in seconds to wait, will use global timeout if not set.\x3c/p>","matched":true,"name":"Wait Until Window Opens","shortdoc":"Used to get the titles of the current browser windows, then verify that the provided window title is among them.","tags":[]},{"args":["title"],"doc":"<p>This is a series of chained Selenium keywords, used to check that a window with the title no longer exists.\x3c/p>\n<p>title: (string) The title of the window you are expecting to be closed.\x3c/p>","matched":true,"name":"Window Should Not Be Open","shortdoc":"This is a series of chained Selenium keywords, used to check that a window with the title no longer exists.","tags":[]}],"name":"GUI_Library","named_args":true,"scope":"GLOBAL","version":"2.7.3"};
 </script>
 <title></title>
 </head>
diff --git a/docs/MobileLibraryDocumentation.html b/docs/MobileLibraryDocumentation.html
index 377b1f6a..91c128a4 100644
--- a/docs/MobileLibraryDocumentation.html
+++ b/docs/MobileLibraryDocumentation.html
@@ -614,7 +614,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba Mobile Library\x3c/p>\n<p>This class is the base Library used to generate automated Mobile Tests in the Robot Automation Framework using Appium. This Library uses and extends the robotframework-appiumlibrary.\x3c/p>\n<h2 id=\"Locating or Specifying Elements\">Locating or Specifying Elements\x3c/h2>\n<p>All keywords in MobileLibrary that need to find an element on the page take an argument, either a <code>locator\x3c/code> or a <code>webelement\x3c/code>. <code>locator\x3c/code> is a string that describes how to locate an element using a syntax specifying different location strategies. <code>webelement\x3c/code> is a variable that holds a WebElement instance, which is a representation of the element.\x3c/p>\n<h3 id=\"Using locators\">Using locators\x3c/h3>\n<p>By default, when a locator is provided, it is matched against the key attributes of the particular element type. For iOS and Android, key attribute is <code>id\x3c/code> for all elements and locating elements is easy using just the <code>id\x3c/code>. For example:\x3c/p>\n<pre>\nClick Element    id=my_element\n\x3c/pre>\n<p><code>id\x3c/code> and <code>xpath\x3c/code> are not required to be specified, however <code>xpath\x3c/code> should start with <code>//\x3c/code> else just use <code>xpath\x3c/code> locator as explained below.\x3c/p>\n<p>For example:\x3c/p>\n<pre>\nClick Element    my_element\nWait Until Page Contains Element    //*[@type=\"android.widget.EditText\"]\n\x3c/pre>\n<p>Appium additionally supports some of the <a href=\"https://w3c.github.io/webdriver/webdriver-spec.html\">Mobile JSON Wire Protocol\x3c/a> locator strategies. It is also possible to specify the approach MobileLibrary should take to find an element by specifying a lookup strategy with a locator prefix. Supported strategies are:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Strategy\x3c/b>\x3c/td>\n<td><b>Example\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n<td><b>Note\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>identifier\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> identifier=my_element\x3c/td>\n<td>Matches by @id attribute\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>id\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> id=my_element\x3c/td>\n<td>Matches by @resource-id attribute\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>accessibility_id\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> accessibility_id=button3\x3c/td>\n<td>Accessibility options utilize.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>xpath\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> xpath=//UIATableView/UIATableCell/UIAButton\x3c/td>\n<td>Matches with arbitrary XPath\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>class\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> class=UIAPickerWheel\x3c/td>\n<td>Matches by class\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>android\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> android=UiSelector().description('Apps')\x3c/td>\n<td>Matches by Android UI Automator\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>ios\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> ios=.buttons().withName('Apps')\x3c/td>\n<td>Matches by iOS UI Automation\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>nsp\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> nsp=name==\"login\"\x3c/td>\n<td>Matches by iOSNsPredicate\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>css\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> css=.green_button\x3c/td>\n<td>Matches by css in webview\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> name=my_element\x3c/td>\n<td>Matches by @name attribute\x3c/td>\n<td><b>Only valid\x3c/b> for Selendroid\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Using webelements\">Using webelements\x3c/h3>\n<p>One can pass an argument that contains a WebElement instead of a string locator. To get a WebElement, use the new <a href=\"#Get%20Webelements\" class=\"name\">Get WebElements\x3c/a> or <a href=\"#Get%20Webelement\" class=\"name\">Get WebElement\x3c/a> keyword.\x3c/p>\n<p>For example:\x3c/p>\n<pre>\n@{elements}    Get Webelements    class=UIAButton\nClick Element    @{elements}[2]\n\x3c/pre>","generated":"2020-12-07 15:44:03","inits":[{"args":["timeout=5","run_on_failure=Save Appium Screenshot"],"doc":"<p>MobileLibrary can be imported with optional arguments. <code>timeout\x3c/code> is the default timeout used to wait for all waiting actions. It can be later set with <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a>. <code>run_on_failure\x3c/code> specifies the name of a keyword (from any available libraries) to execute when a MobileLibrary keyword fails. By default <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> will be used to take a screenshot of the current page. Using the value <span class=\"name\">No Operation\x3c/span> will disable this feature altogether. See <a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a> keyword for more information about this functionality. Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Library\x3c/td>\n<td>MobileLibrary\x3c/td>\n<td>10\x3c/td>\n<td># Sets default timeout to 10 seconds\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>MobileLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>run_on_failure=No Operation\x3c/td>\n<td># Sets default timeout to 10 seconds and does nothing on failure\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Init","shortdoc":"MobileLibrary can be imported with optional arguments. ``timeout`` is the default timeout used to wait for all waiting actions. It can be later set with `Set Appium Timeout`. ``run_on_failure`` specifies the name of a keyword (from any available libraries) to execute when a MobileLibrary keyword fails. By default `Save Appium Screenshot` will be used to take a screenshot of the current page. Using the value `No Operation` will disable this feature altogether. See `Register Keyword To Run On Failure` keyword for more information about this functionality. Examples: | Library | MobileLibrary | 10 | # Sets default timeout to 10 seconds                                                                             | | Library | MobileLibrary | timeout=10 | run_on_failure=No Operation | # Sets default timeout to 10 seconds and does nothing on failure           |","tags":[]}],"keywords":[{"args":["seconds=5"],"doc":"<p>Puts the application in the background on the device for a certain duration.\x3c/p>","matched":true,"name":"Background App","shortdoc":"Puts the application in the background on the device for a certain duration.","tags":[]},{"args":["filename=None"],"doc":"<p>Takes a screenshot of the current page and embeds it into the log.\x3c/p>\n<p><span class=\"name\">filename\x3c/span> argument specifies the name of the file to write the screenshot into. If no <span class=\"name\">filename\x3c/span> is given, the screenshot is saved into file <span class=\"name\">appium-screenshot-&lt;counter&gt;.png\x3c/span> under the directory where the Robot Framework log file is written into. The <span class=\"name\">filename\x3c/span> is also considered relative to the same directory, if it is not given in absolute format.\x3c/p>\n<p><span class=\"name\">css\x3c/span> can be used to modify how the screenshot is taken. By default the bakground color is changed to avoid possible problems with background leaking when the page layout is somehow broken.\x3c/p>\n<p>See <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> for a screenshot that will be unique across reports\x3c/p>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into the log.","tags":[]},{"args":["locator"],"doc":"<p>Clears the text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Clear Text","shortdoc":"Clears the text field identified by `locator`.","tags":[]},{"args":["x=0","y=0","duration=100"],"doc":"<p>Click on a point\x3c/p>","matched":true,"name":"Click A Point","shortdoc":"Click on a point","tags":[]},{"args":["index_or_name"],"doc":"<p>Click button\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Click button","tags":[]},{"args":["locator"],"doc":"<p>Click element identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">index\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click element identified by `locator`.","tags":[]},{"args":["coordinate_X","coordinate_Y"],"doc":"<p>click element at a certain coordinate\x3c/p>","matched":true,"name":"Click Element At Coordinates","shortdoc":"click element at a certain coordinate","tags":[]},{"args":["text","exact_match=False"],"doc":"<p>Click text identified by <code>text\x3c/code>.\x3c/p>\n<p>By default tries to click first text involves given <code>text\x3c/code>, if you would like to click exactly matching text, then set <code>exact_match\x3c/code> to <span class=\"name\">True\x3c/span>.\x3c/p>\n<p>If there are multiple use  of <code>text\x3c/code> and you do not want first one, use <span class=\"name\">locator\x3c/span> with <a href=\"#Get%20Webelements\" class=\"name\">Get Web Elements\x3c/a> instead.\x3c/p>","matched":true,"name":"Click Text","shortdoc":"Click text identified by ``text``.","tags":[]},{"args":[],"doc":"<p>Closes all open applications.\x3c/p>\n<p>This keyword is meant to be used in test or suite teardown to make sure all the applications are closed before the test execution finishes.\x3c/p>\n<p>After this keyword, the application indices returned by <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> are reset and start from <span class=\"name\">1\x3c/span>.\x3c/p>","matched":true,"name":"Close All Applications","shortdoc":"Closes all open applications.","tags":[]},{"args":[],"doc":"<p>Closes the current application and also close webdriver session.\x3c/p>","matched":true,"name":"Close Application","shortdoc":"Closes the current application and also close webdriver session.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code>.\x3c/p>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator\x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates.\x3c/p>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element found with ``locator`` to the given ``x_offset`` and ``y_offset`` coordinates.","tags":[]},{"args":["locator","attr_name","match_pattern","regexp=False"],"doc":"<p>Verify that an attribute of an element matches the expected criteria.\x3c/p>\n<p>The element is identified by <i>locator\x3c/i>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements. If more than one element matches, the first element is selected.\x3c/p>\n<p>The <i>attr_name\x3c/i> is the name of the attribute within the selected element.\x3c/p>\n<p>The <i>match_pattern\x3c/i> is used for the matching, if the match_pattern is\x3c/p>\n<ul>\n<li>boolean or 'True'/'true'/'False'/'false' String then a boolean match is applied\x3c/li>\n<li>any other string is cause a string match\x3c/li>\n\x3c/ul>\n<p>The <i>regexp\x3c/i> defines whether the string match is done using regular expressions (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match%20Regexp\">Should Match Regexp\x3c/a> or string pattern match (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match\">Should Match\x3c/a>)\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>*foobar\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>f.*ar\x3c/td>\n<td>regexp = True\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>enabled\x3c/td>\n<td>True\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<pre>\n1. is a string pattern match i.e. the 'text' attribute should end with the string 'foobar'\n2. is a regular expression match i.e. the regexp 'f.*ar' should be within the 'text' attribute\n3. is a boolead match i.e. the 'enabled' attribute should be True\n\x3c/pre>\n<p><i><b>NOTE: \x3c/b>\x3c/i> On Android the supported attribute names are hard-coded in the <a href=\"https://github.com/appium/appium/blob/master/lib/devices/android/bootstrap/src/io/appium/android/bootstrap/AndroidElement.java\">AndroidElement\x3c/a> Class's getBoolAttribute() and getStringAttribute() methods. Currently supported (appium v1.4.11): <i>contentDescription, text, className, resourceId, enabled, checkable, checked, clickable, focusable, focused, longClickable, scrollable, selected, displayed\x3c/i>\x3c/p>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Some attributes can be evaluated in two different ways e.g. these evaluate the same thing:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>name\x3c/td>\n<td>txt_field_name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Name Should Be\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>txt_field_name\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Element Attribute Should Match","shortdoc":"Verify that an attribute of an element matches the expected criteria.","tags":[]},{"args":["locator","expected"],"doc":"","matched":true,"name":"Element Name Should Be","shortdoc":"","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is disabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified with locator is disabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is enabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified with locator is enabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is visible.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that element identified with locator is visible.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>If you wish to assert an exact (not a substring) match on the text of the element, use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a>.\x3c/p>\n<p>Key attributes for arbitrary elements are <code>id\x3c/code> and <code>xpath\x3c/code>. <code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Should Contain Text","shortdoc":"Verifies element identified by ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message. See <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a> for more details.\x3c/p>","matched":true,"name":"Element Should Not Contain Text","shortdoc":"Verifies element identified by ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> exactly contains text <code>expected\x3c/code>.\x3c/p>\n<p>In contrast to <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a>, this keyword does not try a substring match but an exact match on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies element identified by ``locator`` exactly contains text ``expected``.","tags":[]},{"args":["locator","expected"],"doc":"","matched":true,"name":"Element Value Should Be","shortdoc":"","tags":[]},{"args":["command","*args"],"doc":"<p>Execute ADB shell commands\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>command\x3c/i> - The ABD shell command\x3c/li>\n<li><i>args\x3c/i> - Arguments to send to command\x3c/li>\n\x3c/ul>\n<p>Returns the exit code of ADB shell.\x3c/p>\n<p>Requires server flag --relaxed-security to be set on Appium server.\x3c/p>","matched":true,"name":"Execute Adb Shell","shortdoc":"Execute ADB shell commands","tags":[]},{"args":["script"],"doc":"<p>Inject a snippet of Async-JavaScript into the page for execution in the context of the currently selected frame (Web context only).\x3c/p>\n<p>The executed script is assumed to be asynchronous and must signal that is done by invoking the provided callback, which is always provided as the final argument to the function.\x3c/p>\n<p>The value to this callback will be returned to the client.\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Execute Async Script","shortdoc":"Inject a snippet of Async-JavaScript into the page for execution in the context of the currently selected frame (Web context only).","tags":[]},{"args":["script"],"doc":"<p>Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only).\x3c/p>\n<p>The executed script is assumed to be synchronous and the result of evaluating the script is returned to the client.\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Execute Script","shortdoc":"Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only).","tags":[]},{"args":[],"doc":"<p>Retrieves the current activity on the device.\x3c/p>\n<p>Android only.\x3c/p>","matched":true,"name":"Get Activity","shortdoc":"Retrieves the current activity on the device.","tags":[]},{"args":[],"doc":"<p>Returns the current session ID as a reference\x3c/p>","matched":true,"name":"Get Appium SessionId","shortdoc":"Returns the current session ID as a reference","tags":[]},{"args":[],"doc":"<p>Gets the timeout in seconds that is used by various keywords.\x3c/p>\n<p>See <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a> for an explanation.\x3c/p>","matched":true,"name":"Get Appium Timeout","shortdoc":"Gets the timeout in seconds that is used by various keywords.","tags":[]},{"args":["capability_name"],"doc":"<p>Return the desired capability value by desired capability name\x3c/p>","matched":true,"name":"Get Capability","shortdoc":"Return the desired capability value by desired capability name","tags":[]},{"args":[],"doc":"<p>Get available contexts.\x3c/p>","matched":true,"name":"Get Contexts","shortdoc":"Get available contexts.","tags":[]},{"args":[],"doc":"<p>Get current context.\x3c/p>","matched":true,"name":"Get Current Context","shortdoc":"Get current context.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get element attribute using given attribute: name, value,...\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>value\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Attribute","shortdoc":"Get element attribute using given attribute: name, value,...","tags":[]},{"args":["locator"],"doc":"<p>Get element location\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Location","shortdoc":"Get element location","tags":[]},{"args":["locator"],"doc":"<p>Get element size\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Size","shortdoc":"Get element size","tags":[]},{"args":["xpath"],"doc":"<p>Returns number of elements matching <code>xpath\x3c/code>\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Xpath%20Should%20Match%20X%20Times\" class=\"name\">Xpath Should Match X Times\x3c/a>.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Matching Xpath Count","shortdoc":"Returns number of elements matching ``xpath``","tags":[]},{"args":[],"doc":"<p>Returns an integer bitmask specifying the network connection type.\x3c/p>\n<p>Android only.\x3c/p>\n<p>See <a href=\"#Set%20Network%20Connection%20Status\" class=\"name\">set network connection status\x3c/a> for more details.\x3c/p>","matched":true,"name":"Get Network Connection Status","shortdoc":"Returns an integer bitmask specifying the network connection type.","tags":[]},{"args":[],"doc":"<p>Returns the entire source of the current page.\x3c/p>","matched":true,"name":"Get Source","shortdoc":"Returns the entire source of the current page.","tags":[]},{"args":["locator"],"doc":"<p>Get element text (for hybrid and mobile browser use <span class=\"name\">xpath\x3c/span> locator, others might cause problem)\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${text}\x3c/td>\n<td>Get Text\x3c/td>\n<td>//*[contains(@text,'foo')]\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Text","shortdoc":"Get element text (for hybrid and mobile browser use `xpath` locator, others might cause problem)","tags":[]},{"args":["locator"],"doc":"<p>Returns the first <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> object matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${element}\x3c/td>\n<td>Get Webelement\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>${element}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelement","shortdoc":"Returns the first [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] object matching ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns list of <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> objects matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{elements}\x3c/td>\n<td>Get Webelements\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>@{elements}[2]\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This keyword was changed in AppiumLibrary 1.4 in following ways:\x3c/p>\n<ul>\n<li>Name is changed from <span class=\"name\">Get Elements\x3c/span> to current one.\x3c/li>\n<li>Deprecated argument <code>fail_on_error\x3c/code>, use <span class=\"name\">Run Keyword and Ignore Error\x3c/span> if necessary.\x3c/li>\n\x3c/ul>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelements","shortdoc":"Returns list of [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] objects matching ``locator``.","tags":[]},{"args":[],"doc":"<p>Get current device height.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Height","shortdoc":"Get current device height.","tags":[]},{"args":[],"doc":"<p>Get current device width.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Width","shortdoc":"Get current device width.","tags":[]},{"args":[],"doc":"<p>Goes one step backward in the browser history.\x3c/p>","matched":true,"name":"Go Back","shortdoc":"Goes one step backward in the browser history.","tags":[]},{"args":["url"],"doc":"<p>Opens URL in default web browser.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>browserName=Safari\x3c/td>\n\x3c/tr>\n<tr>\n<td>Go To URL\x3c/td>\n<td><a href=\"http://m.webapp.com\">http://m.webapp.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Go To Url","shortdoc":"Opens URL in default web browser.","tags":[]},{"args":["key_name=None"],"doc":"<p>Hides the software keyboard on the device. (optional) In iOS, use <span class=\"name\">key_name\x3c/span> to press a particular key, ex. <span class=\"name\">Done\x3c/span>. In Android, no parameters are used.\x3c/p>","matched":true,"name":"Hide Keyboard","shortdoc":"Hides the software keyboard on the device. (optional) In iOS, use `key_name` to press a particular key, ex. `Done`. In Android, no parameters are used.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given password into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Difference between this keyword and <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given <span class=\"name\">text\x3c/span> into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given `text` into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Sets the given value into text field identified by <span class=\"name\">locator\x3c/span>. This is an IOS only keyword, input value makes use of set_value\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Value","shortdoc":"Sets the given value into text field identified by `locator`. This is an IOS only keyword, input value makes use of set_value","tags":[]},{"args":["app_path","app_package"],"doc":"<p>Install App via Appium\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li>app_path - path to app\x3c/li>\n<li>app_package - package of install app to verify\x3c/li>\n\x3c/ul>","matched":true,"name":"Install App","shortdoc":"Install App via Appium","tags":[]},{"args":[],"doc":"<p>Return true if Android keyboard is displayed or False if not displayed No parameters are used.\x3c/p>","matched":true,"name":"Is Keyboard Shown","shortdoc":"Return true if Android keyboard is displayed or False if not displayed No parameters are used.","tags":[]},{"args":[],"doc":"<p>Set the device orientation to LANDSCAPE\x3c/p>","matched":true,"name":"Landscape","shortdoc":"Set the device orientation to LANDSCAPE","tags":[]},{"args":[],"doc":"<p>Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.\x3c/p>\n<p>This keyword works while <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> has a test running. This is good practice to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> and <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> between test cases. As Suite Setup is <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>, <span class=\"name\">Test Setup\x3c/span> can be used to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a>\x3c/p>\n<p>Example (syntax is just a representation, refer to RF Guide for usage of Setup/Teardown):\x3c/p>\n<table border=\"1\">\n<tr>\n<td>[Setup Suite]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>platformName=Android\x3c/td>\n<td>deviceName=192.168.56.101:5555\x3c/td>\n<td>app=${CURDIR}/demoapp/OrangeDemoApp.apk\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Setup]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Launch Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Quit Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Suite Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Close Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> for quiting application but keeping Appium sesion running.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Launch Application","shortdoc":"Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.","tags":[]},{"args":["seconds=5"],"doc":"<p>Lock the device for a certain period of time. iOS only.\x3c/p>","matched":true,"name":"Lock","shortdoc":"Lock the device for a certain period of time. iOS only.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the entire html source of the current page or frame.\x3c/p>\n<p>The <span class=\"name\">loglevel\x3c/span> argument defines the used log level. Valid log levels are <span class=\"name\">WARN\x3c/span>, <span class=\"name\">INFO\x3c/span> (default), <span class=\"name\">DEBUG\x3c/span>, <span class=\"name\">TRACE\x3c/span> and <span class=\"name\">NONE\x3c/span> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the entire html source of the current page or frame.","tags":[]},{"args":["locator","duration=1000"],"doc":"<p>Long press the element with optional duration\x3c/p>","matched":true,"name":"Long Press","shortdoc":"Long press the element with optional duration","tags":[]},{"args":["keycode","metastate=None"],"doc":"<p>Sends a long press of keycode to the device.\x3c/p>\n<p>Android only.\x3c/p>\n<p>See <a href=\"#Press%20Keycode\" class=\"name\">press keycode\x3c/a> for more details.\x3c/p>","matched":true,"name":"Long Press Keycode","shortdoc":"Sends a long press of keycode to the device.","tags":[]},{"args":["remote_url","alias=None","**kwargs"],"doc":"<p>Opens a new application to given Appium server. Capabilities of appium server, Android and iOS, Please check <a href=\"https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md\">https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>no\x3c/td>\n<td>alias\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>platformName=Android\x3c/td>\n<td>platformVersion=4.2.2\x3c/td>\n<td>deviceName=192.168.56.101:5555\x3c/td>\n<td>app=${CURDIR}/demoapp/OrangeDemoApp.apk\x3c/td>\n<td>appPackage=com.netease.qa.orangedemo\x3c/td>\n<td>appActivity=MainActivity\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Open Application","shortdoc":"Opens a new application to given Appium server. Capabilities of appium server, Android and iOS, Please check https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md | *Option*            | *Man.* | *Description*     | | remote_url          | Yes    | Appium server url | | alias               | no     | alias             |","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that current page contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Text","shortdoc":"Verifies that current page contains `text`.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that current page not contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Text","shortdoc":"Verifies that current page not contains `text`.","tags":[]},{"args":["locator","percent=200%","steps=1"],"doc":"<p>Pinch in on an element a certain amount.\x3c/p>","matched":true,"name":"Pinch","shortdoc":"Pinch in on an element a certain amount.","tags":[]},{"args":[],"doc":"<p>Set the device orientation to PORTRAIT\x3c/p>","matched":true,"name":"Portrait","shortdoc":"Set the device orientation to PORTRAIT","tags":[]},{"args":["keycode","metastate=None"],"doc":"<p>Sends a press of keycode to the device.\x3c/p>\n<p>Android only.\x3c/p>\n<p>Possible keycodes &amp; meta states can be found in <a href=\"http://developer.android.com/reference/android/view/KeyEvent.html\">http://developer.android.com/reference/android/view/KeyEvent.html\x3c/a>\x3c/p>\n<p>Meta state describe the pressed state of key modifiers such as Shift, Ctrl &amp; Alt keys. The Meta State is an integer in which each bit set to 1 represents a pressed meta key.\x3c/p>\n<p>For example\x3c/p>\n<ul>\n<li>META_SHIFT_ON = 1\x3c/li>\n<li>META_ALT_ON = 2\x3c/li>\n\x3c/ul>\n<pre>\nmetastate=1 --&gt; Shift is pressed\nmetastate=2 --&gt; Alt is pressed\nmetastate=3 --&gt; Shift+Alt is pressed\n\x3c/pre>\n<ul>\n<li>_keycode- - the keycode to be sent to the device\x3c/li>\n<li>_metastate- - status of the meta keys\x3c/li>\n\x3c/ul>","matched":true,"name":"Press Keycode","shortdoc":"Sends a press of keycode to the device.","tags":[]},{"args":["path","decode=False"],"doc":"<p>Retrieves the file at <span class=\"name\">path\x3c/span> and return it's content.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path to the file on the device\x3c/li>\n<li><i>decode\x3c/i> - True/False decode the data (base64) before returning it (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Pull File","shortdoc":"Retrieves the file at `path` and return it's content.","tags":[]},{"args":["path","decode=False"],"doc":"<p>Retrieves a folder at <span class=\"name\">path\x3c/span>. Returns the folder's contents zipped.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path to the folder on the device\x3c/li>\n<li><i>decode\x3c/i> - True/False decode the data (base64) before returning it (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Pull Folder","shortdoc":"Retrieves a folder at `path`. Returns the folder's contents zipped.","tags":[]},{"args":["path","data","encode=False"],"doc":"<p>Puts the data in the file specified as <span class=\"name\">path\x3c/span>.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path on the device\x3c/li>\n<li><i>data\x3c/i> - data to be written to the file\x3c/li>\n<li><i>encode\x3c/i> - True/False encode the data as base64 before writing it to the file (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Push File","shortdoc":"Puts the data in the file specified as `path`.","tags":[]},{"args":[],"doc":"<p>Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.\x3c/p>\n<p>See <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> for an explanation.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Quit Application","shortdoc":"Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute when a AppiumLibrary keyword fails.\x3c/p>\n<p><span class=\"name\">keyword_name\x3c/span> is the name of a keyword (from any available libraries) that  will be executed if a AppiumLibrary keyword fails. It is not possible to use a keyword that requires arguments. Using the value \"Nothing\" will disable this feature altogether.\x3c/p>\n<p>The initial keyword to use is set in <a href=\"#Importing\" class=\"name\">importing\x3c/a>, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword. It can be used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Log Source\x3c/td>\n<td># Run <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> on failure.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Nothing\x3c/td>\n<td># Disables run-on-failure functionality and stores the previous kw name in a variable.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>${previous kw}\x3c/td>\n<td># Restore to the previous keyword.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This run-on-failure functionality only works when running tests on Python/Jython 2.4 or newer and it does not work on IronPython at all.\x3c/p>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute when a AppiumLibrary keyword fails.","tags":[]},{"args":["application_id"],"doc":"<p>Removes the application that is identified with an application id\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Application\x3c/td>\n<td>com.netease.qa.orangedemo\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Remove Application","shortdoc":"Removes the application that is identified with an application id","tags":[]},{"args":[],"doc":"<p>Reset application. Open Application can be reset while Appium session is kept alive.\x3c/p>","matched":true,"name":"Reset Application","shortdoc":"Reset application. Open Application can be reset while Appium session is kept alive.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>","matched":true,"name":"Save Appium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["start_locator","end_locator"],"doc":"<p>Scrolls from one element to another Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Scroll","shortdoc":"Scrolls from one element to another Key attributes for arbitrary elements are `id` and `name`. See `introduction` for details about locating elements.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls down to element\x3c/p>","matched":true,"name":"Scroll Down","shortdoc":"Scrolls down to element","tags":[]},{"args":["text","swipe_count=20"],"doc":"<p>Scrolls down to <code>text\x3c/code> using small swipes. The <code>swipe_count\x3c/code> defaults to 20.\x3c/p>","matched":true,"name":"Scroll Down To Text","shortdoc":"Scrolls down to ``text`` using small swipes. The ``swipe_count`` defaults to 20.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls up to element\x3c/p>","matched":true,"name":"Scroll Up","shortdoc":"Scrolls up to element","tags":[]},{"args":["text","swipe_count=20"],"doc":"<p>Scrolls down to <code>text\x3c/code> using small swipes. The <code>swipe_count\x3c/code> defaults to 20.\x3c/p>","matched":true,"name":"Scroll Up To Text","shortdoc":"Scrolls down to ``text`` using small swipes. The ``swipe_count`` defaults to 20.","tags":[]},{"args":["seconds"],"doc":"<p>Sets the timeout in seconds used by various keywords.\x3c/p>\n<p>There are several <span class=\"name\">Wait ...\x3c/span> keywords that take timeout as an argument. All of these timeout arguments are optional. The timeout used by all of them can be set globally using this keyword.\x3c/p>\n<p>The previous timeout value is returned by this keyword and can be used to set the old value back later. The default timeout is 5 seconds, but it can be altered in <a href=\"#Importing\" class=\"name\">importing\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td>Set Appium Timeout\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open page that loads slowly\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Appium Timeout\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Appium Timeout","shortdoc":"Sets the timeout in seconds used by various keywords.","tags":[]},{"args":["latitude","longitude","altitude=10"],"doc":"<p>Set location\x3c/p>\n<ul>\n<li><i>latitute\x3c/i>\x3c/li>\n<li><i>longitude\x3c/i>\x3c/li>\n<li><i>altitude\x3c/i> = 10 [optional]\x3c/li>\n\x3c/ul>\n<p>Android only. New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Set Location","shortdoc":"Set location","tags":[]},{"args":["connectionStatus"],"doc":"<p>Sets the network connection Status.\x3c/p>\n<p>Android only.\x3c/p>\n<p>Possible values:\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Value\x3c/th>\n<th>Alias\x3c/th>\n<th>Data\x3c/th>\n<th>Wifi\x3c/th>\n<th>Airplane Mode\x3c/th>\n\x3c/tr>\n<tr>\n<td>0\x3c/td>\n<td>(None)\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>1\x3c/td>\n<td>(Airplane Mode)\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>2\x3c/td>\n<td>(Wifi only)\x3c/td>\n<td>0\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>4\x3c/td>\n<td>(Data only)\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>6\x3c/td>\n<td>(All network on)\x3c/td>\n<td>1\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Network Connection Status","shortdoc":"Sets the network connection Status.","tags":[]},{"args":[],"doc":"<p>Shake the device\x3c/p>","matched":true,"name":"Shake","shortdoc":"Shake the device","tags":[]},{"args":["appPackage","appActivity","**opts"],"doc":"<p>Opens an arbitrary activity during a test. If the activity belongs to another application, that application is started and the activity is opened.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>appPackage\x3c/i> - The package containing the activity to start.\x3c/li>\n<li><i>appActivity\x3c/i> - The activity to start.\x3c/li>\n<li><i>appWaitPackage\x3c/i> - Begin automation after this package starts (optional).\x3c/li>\n<li><i>appWaitActivity\x3c/i> - Begin automation after this activity starts (optional).\x3c/li>\n<li><i>intentAction\x3c/i> - Intent to start (opt_ional).\x3c/li>\n<li><i>intentCategory\x3c/i> - Intent category to start (optional).\x3c/li>\n<li><i>intentFlags\x3c/i> - Flags to send to the intent (optional).\x3c/li>\n<li><i>optionalIntentArguments\x3c/i> - Optional arguments to the intent (optional).\x3c/li>\n<li><i>dontStopAppOnReset\x3c/i> - Should the app be stopped on reset (optional)?\x3c/li>\n\x3c/ul>","matched":true,"name":"Start Activity","shortdoc":"Opens an arbitrary activity during a test. If the activity belongs to another application, that application is started and the activity is opened.","tags":[]},{"args":["timeLimit=180s","**options"],"doc":"<p>Starts an asynchronous Screen Recording for the current open application.\x3c/p>\n<p><code>timeLimit\x3c/code> sets the actual time limit of the recorded video.\x3c/p>\n<ul>\n<li>The default value for both iOS and Android is 180 seconds (3 minutes).\x3c/li>\n<li>The maximum value for Android is 3 minutes.\x3c/li>\n<li>The maximum value for iOS is 10 minutes.\x3c/li>\n\x3c/ul>\n<h4>Optional Args\x3c/h4>\n<ul>\n<li><code>bitRate\x3c/code> (Android Only) The video bit rate for the video, in megabits per second. 4 Mbp/s(4000000) is by default for Android API level below 27.                                    20 Mb/s(20000000) for API level 27 and above.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoSize\x3c/code> (Android Only) The format is widthxheight. The default value is the                device's native display resolution (if supported), 1280x720 if not. For best                        results, use a size supported by your device's Advanced Video Coding (AVC)                          encoder. For example, \"1280x720\"\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>bugReport\x3c/code> (Android Only) Set it to true in order to display additional                       information on the video overlay, such as a timestamp, that is helpful in                           videos captured to illustrate bugs. This option is only supported since                             API level 27 (Android O).\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoQuality\x3c/code> (iOS Only) The video encoding quality (low, medium, high,                       photo - defaults to medium).\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoFps\x3c/code>         (iOS Only) The Frames Per Second rate of the recorded video.                    Change this value if the resulting video is too slow or too fast. Defaults to 10.                   This can decrease the resulting file size.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoScale\x3c/code> (iOS Only) The scaling value to apply. Read                                       <a href=\"https://trac.ffmpeg.org/wiki/Scaling\">https://trac.ffmpeg.org/wiki/Scaling\x3c/a> for possible values. Example value of 720p                     scaling is '1280:720'. This can decrease/increase the resulting file size.                          No scale is applied by default.\x3c/li>\n\x3c/ul>\n<p><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> is used hand in hand with <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>. See <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a> for more details. Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Start Screen Recording","shortdoc":"Starts an asynchronous Screen Recording for the current open application.","tags":[]},{"args":["filename=None","**options"],"doc":"<p>Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).\x3c/p>\n<p>Requires an active or exhausted Screen Recording Session. See <a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> for more details.\x3c/p>\n<h4>Optional Args\x3c/h4>\n<ul>\n<li><code>remotePath\x3c/code> The path to the remote location, where the resulting video should be              uploaded. The following protocols are supported <i>http/https\x3c/i>, ftp. Null or empty                  string value (the default setting) means the content of resulting file should                       be encoded as Base64 and passed as the endpoint response value. An                                  exception will be thrown if the generated media file is too big to fit                              into the available process memory.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>username\x3c/code> The name of the user for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>password\x3c/code> The password for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>method\x3c/code> The http multipart upload method name. The <i>PUT\x3c/i> one is used by default.\x3c/li>\n\x3c/ul>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Stop Screen Recording","shortdoc":"Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).","tags":[]},{"args":["start_x","start_y","offset_x","offset_y","duration=1000"],"doc":"<p>Swipe from one point to another point, for an optional duration.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li>start_x - x-coordinate at which to start\x3c/li>\n<li>start_y - y-coordinate at which to start\x3c/li>\n<li>offset_x - x-coordinate distance from start_x at which to stop\x3c/li>\n<li>offset_y - y-coordinate distance from start_y at which to stop\x3c/li>\n<li>duration - (optional) time to take the swipe, in ms.\x3c/li>\n\x3c/ul>\n<p>Usage:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Swipe\x3c/td>\n<td>500\x3c/td>\n<td>100\x3c/td>\n<td>100\x3c/td>\n<td>0\x3c/td>\n<td>1000\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Android 'Swipe' is not working properly, use <code>offset_x\x3c/code> and <code>offset_y\x3c/code> as if these are destination points.\x3c/p>","matched":true,"name":"Swipe","shortdoc":"Swipe from one point to another point, for an optional duration.","tags":[]},{"args":["start_x","start_y","end_x","end_y","duration=1000"],"doc":"<p>Swipe from one percent of the screen to another percent, for an optional duration. Normal swipe fails to scale for different screen resolutions, this can be avoided using percent.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li>start_x - x-percent at which to start\x3c/li>\n<li>start_y - y-percent at which to start\x3c/li>\n<li>end_x - x-percent distance from start_x at which to stop\x3c/li>\n<li>end_y - y-percent distance from start_y at which to stop\x3c/li>\n<li>duration - (optional) time to take the swipe, in ms.\x3c/li>\n\x3c/ul>\n<p>Usage:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Swipe By Percent\x3c/td>\n<td>90\x3c/td>\n<td>50\x3c/td>\n<td>10\x3c/td>\n<td>50\x3c/td>\n<td># Swipes screen from right to left.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><i><b>NOTE: \x3c/b>\x3c/i> This also considers swipe acts different between iOS and Android.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Swipe By Percent","shortdoc":"Swipe from one percent of the screen to another percent, for an optional duration. Normal swipe fails to scale for different screen resolutions, this can be avoided using percent.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches the active application by index or alias.\x3c/p>\n<p><span class=\"name\">index_or_alias\x3c/span> is either application index (an integer) or alias (a string). Index is got as the return value of <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>.\x3c/p>\n<p>This keyword returns the index of the previous active application, which can be used to switch back to that application later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${appium1}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>${appium2}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp2\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>sendHello\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>${appium1}\x3c/td>\n<td># Switch using index\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>ackHello\x3c/td>\n<td># Executed on appium running at localhost:4723\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>MyApp2\x3c/td>\n<td># Switch using alias\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Page Should Contain Text\x3c/td>\n<td>ackHello Received\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application","shortdoc":"Switches the active application by index or alias.","tags":[]},{"args":["context_name"],"doc":"<p>Switch to a new context\x3c/p>","matched":true,"name":"Switch To Context","shortdoc":"Switch to a new context","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1"],"doc":"<p>Tap element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used for multiple times of tap on that element\x3c/li>\n\x3c/ul>","matched":true,"name":"Tap","shortdoc":"Tap element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","loglevel=INFO"],"doc":"<p>Verifies that element identified with text is visible.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Text Should Be Visible","shortdoc":"Verifies that element identified with text is visible.","tags":[]},{"args":[],"doc":"<p>Toggle Touch ID enrolled state on iOS Simulator\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Toggle Touch Id Enrollment","shortdoc":"Toggle Touch ID enrolled state on iOS Simulator","tags":[]},{"args":["match=True"],"doc":"<p>Simulate Touch ID on iOS Simulator\x3c/p>\n<p><span class=\"name\">match\x3c/span> (boolean) whether the simulated fingerprint is valid (default true)\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Touch Id","shortdoc":"Simulate Touch ID on iOS Simulator","tags":[]},{"args":["activity","timeout","interval=1"],"doc":"<p>Wait for an activity: block until target activity presents or time out.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>activity\x3c/i> - target activity\x3c/li>\n<li><i>timeout\x3c/i> - max wait time, in seconds\x3c/li>\n<li><i>interval\x3c/i> - sleep interval between retries, in seconds\x3c/li>\n\x3c/ul>","matched":true,"name":"Wait Activity","shortdoc":"Wait for an activity: block until target activity presents or time out.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and then clear the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Clear Text","shortdoc":"Wait for and then clear the text field identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the button identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Click Button","shortdoc":"Wait for and click the button identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"Wait for and click the element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","timeout=None","error=None"],"doc":"<p>Wait for and click text identified by <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>By default tries to click first text involves given <code>text\x3c/code>. If you would like to click exactly matching text, then set <code>exact_match\x3c/code> to <span class=\"name\">True\x3c/span>.\x3c/p>","matched":true,"name":"Wait For And Click Text","shortdoc":"Wait for and click text identified by ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Password","shortdoc":"Wait for and type the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given <code>locator\x3c/code> into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"Wait for and type the given ``locator`` into text field identified by ``locator``.","tags":[]},{"args":["locator","value","timeout=None","error=None"],"doc":"<p>Wait for and set the given <code>value\x3c/code> into the text field identified by <code>locator\x3c/code>. This is an IOS only keyword, input value makes use of set_value.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Value","shortdoc":"Wait for and set the given ``value`` into the text field identified by ``locator``. This is an IOS only keyword, input value makes use of set_value.","tags":[]},{"args":["locator","duration=5000","timeout=None","error=None"],"doc":"<p>Wait for and long press the element identified by <code>locator\x3c/code> with optional <code>duration\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Long Press","shortdoc":"Wait for and long press the element identified by ``locator`` with optional ``duration``.","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1","timeout=None","error=None"],"doc":"<p>Wait for and then Tap element identified by <code>locator\x3c/code>. Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used to tap multiple times\x3c/li>\n<li><code>timeout\x3c/code> - time in seconds to locate the element, defaults to global timeout\x3c/li>\n<li><code>error\x3c/code> - (optional) used to override the default error message.\x3c/li>\n\x3c/ul>","matched":true,"name":"Wait For And Tap","shortdoc":"Wait for and then Tap element identified by ``locator``. Args: - ``x_offset`` - (optional) x coordinate to tap, relative to the top left corner of the element. - ``y_offset`` - (optional) y coordinate. If y is used, x must also be set, and vice versa - ``count`` - can be used to tap multiple times - ``timeout`` - time in seconds to locate the element, defaults to global timeout - ``error`` - (optional) used to override the default error message.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until element specified with ``locator`` contains ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Contains\" class=\"name\">Wait Until Element Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until element specified with ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is disabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Disabled","shortdoc":"Waits until element specified with ``locator`` is disabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until element specified with ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> is visible.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element is visible. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <span class=\"name\">Wait For Condition\x3c/span> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until element specified with `locator` is visible.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the text appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until `text` appears on current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until element specified with `locator` appears on current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the <span class=\"name\">text\x3c/span> disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until `text` disappears from current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until element specified with `locator` disappears from current page.","tags":[]},{"args":["xpath","count","error=None","loglevel=INFO"],"doc":"<p>Verifies that the page contains the given number of elements located by the given <code>xpath\x3c/code>.\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> for explanation about <code>loglevel\x3c/code> argument.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Xpath Should Match X Times","shortdoc":"Verifies that the page contains the given number of elements located by the given ``xpath``.","tags":[]},{"args":["locator","percent=200%","steps=1"],"doc":"<p>Zooms in on an element a certain amount.\x3c/p>","matched":true,"name":"Zoom","shortdoc":"Zooms in on an element a certain amount.","tags":[]}],"name":"Mobile_Library","named_args":true,"scope":"GLOBAL","version":"2.7.1"};
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba Mobile Library\x3c/p>\n<p>This class is the base Library used to generate automated Mobile Tests in the Robot Automation Framework using Appium. This Library uses and extends the robotframework-appiumlibrary.\x3c/p>\n<h2 id=\"Locating or Specifying Elements\">Locating or Specifying Elements\x3c/h2>\n<p>All keywords in MobileLibrary that need to find an element on the page take an argument, either a <code>locator\x3c/code> or a <code>webelement\x3c/code>. <code>locator\x3c/code> is a string that describes how to locate an element using a syntax specifying different location strategies. <code>webelement\x3c/code> is a variable that holds a WebElement instance, which is a representation of the element.\x3c/p>\n<h3 id=\"Using locators\">Using locators\x3c/h3>\n<p>By default, when a locator is provided, it is matched against the key attributes of the particular element type. For iOS and Android, key attribute is <code>id\x3c/code> for all elements and locating elements is easy using just the <code>id\x3c/code>. For example:\x3c/p>\n<pre>\nClick Element    id=my_element\n\x3c/pre>\n<p><code>id\x3c/code> and <code>xpath\x3c/code> are not required to be specified, however <code>xpath\x3c/code> should start with <code>//\x3c/code> else just use <code>xpath\x3c/code> locator as explained below.\x3c/p>\n<p>For example:\x3c/p>\n<pre>\nClick Element    my_element\nWait Until Page Contains Element    //*[@type=\"android.widget.EditText\"]\n\x3c/pre>\n<p>Appium additionally supports some of the <a href=\"https://w3c.github.io/webdriver/webdriver-spec.html\">Mobile JSON Wire Protocol\x3c/a> locator strategies. It is also possible to specify the approach MobileLibrary should take to find an element by specifying a lookup strategy with a locator prefix. Supported strategies are:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Strategy\x3c/b>\x3c/td>\n<td><b>Example\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n<td><b>Note\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>identifier\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> identifier=my_element\x3c/td>\n<td>Matches by @id attribute\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>id\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> id=my_element\x3c/td>\n<td>Matches by @resource-id attribute\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>accessibility_id\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> accessibility_id=button3\x3c/td>\n<td>Accessibility options utilize.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>xpath\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> xpath=//UIATableView/UIATableCell/UIAButton\x3c/td>\n<td>Matches with arbitrary XPath\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>class\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> class=UIAPickerWheel\x3c/td>\n<td>Matches by class\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>android\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> android=UiSelector().description('Apps')\x3c/td>\n<td>Matches by Android UI Automator\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>ios\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> ios=.buttons().withName('Apps')\x3c/td>\n<td>Matches by iOS UI Automation\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>nsp\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> nsp=name==\"login\"\x3c/td>\n<td>Matches by iOSNsPredicate\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>css\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> css=.green_button\x3c/td>\n<td>Matches by css in webview\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>name\x3c/td>\n<td>Click Element <span class=\"name\">|\x3c/span> name=my_element\x3c/td>\n<td>Matches by @name attribute\x3c/td>\n<td><b>Only valid\x3c/b> for Selendroid\x3c/td>\n\x3c/tr>\n\x3c/table>\n<h3 id=\"Using webelements\">Using webelements\x3c/h3>\n<p>One can pass an argument that contains a WebElement instead of a string locator. To get a WebElement, use the new <a href=\"#Get%20Webelements\" class=\"name\">Get WebElements\x3c/a> or <a href=\"#Get%20Webelement\" class=\"name\">Get WebElement\x3c/a> keyword.\x3c/p>\n<p>For example:\x3c/p>\n<pre>\n@{elements}    Get Webelements    class=UIAButton\nClick Element    @{elements}[2]\n\x3c/pre>","generated":"2021-02-11 14:20:13","inits":[{"args":["timeout=5","run_on_failure=Save Appium Screenshot"],"doc":"<p>MobileLibrary can be imported with optional arguments. <code>timeout\x3c/code> is the default timeout used to wait for all waiting actions. It can be later set with <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a>. <code>run_on_failure\x3c/code> specifies the name of a keyword (from any available libraries) to execute when a MobileLibrary keyword fails. By default <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> will be used to take a screenshot of the current page. Using the value <span class=\"name\">No Operation\x3c/span> will disable this feature altogether. See <a href=\"#Register%20Keyword%20To%20Run%20On%20Failure\" class=\"name\">Register Keyword To Run On Failure\x3c/a> keyword for more information about this functionality. Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Library\x3c/td>\n<td>MobileLibrary\x3c/td>\n<td>10\x3c/td>\n<td># Sets default timeout to 10 seconds\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Library\x3c/td>\n<td>MobileLibrary\x3c/td>\n<td>timeout=10\x3c/td>\n<td>run_on_failure=No Operation\x3c/td>\n<td># Sets default timeout to 10 seconds and does nothing on failure\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Init","shortdoc":"MobileLibrary can be imported with optional arguments. ``timeout`` is the default timeout used to wait for all waiting actions. It can be later set with `Set Appium Timeout`. ``run_on_failure`` specifies the name of a keyword (from any available libraries) to execute when a MobileLibrary keyword fails. By default `Save Appium Screenshot` will be used to take a screenshot of the current page. Using the value `No Operation` will disable this feature altogether. See `Register Keyword To Run On Failure` keyword for more information about this functionality. Examples: | Library | MobileLibrary | 10 | # Sets default timeout to 10 seconds                                                                             | | Library | MobileLibrary | timeout=10 | run_on_failure=No Operation | # Sets default timeout to 10 seconds and does nothing on failure           |","tags":[]}],"keywords":[{"args":["seconds=5"],"doc":"<p>Puts the application in the background on the device for a certain duration.\x3c/p>","matched":true,"name":"Background App","shortdoc":"Puts the application in the background on the device for a certain duration.","tags":[]},{"args":["filename=None"],"doc":"<p>Takes a screenshot of the current page and embeds it into the log.\x3c/p>\n<p><span class=\"name\">filename\x3c/span> argument specifies the name of the file to write the screenshot into. If no <span class=\"name\">filename\x3c/span> is given, the screenshot is saved into file <span class=\"name\">appium-screenshot-&lt;counter&gt;.png\x3c/span> under the directory where the Robot Framework log file is written into. The <span class=\"name\">filename\x3c/span> is also considered relative to the same directory, if it is not given in absolute format.\x3c/p>\n<p><span class=\"name\">css\x3c/span> can be used to modify how the screenshot is taken. By default the bakground color is changed to avoid possible problems with background leaking when the page layout is somehow broken.\x3c/p>\n<p>See <a href=\"#Save%20Appium%20Screenshot\" class=\"name\">Save Appium Screenshot\x3c/a> for a screenshot that will be unique across reports\x3c/p>","matched":true,"name":"Capture Page Screenshot","shortdoc":"Takes a screenshot of the current page and embeds it into the log.","tags":[]},{"args":["locator"],"doc":"<p>Clears the text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Clear Text","shortdoc":"Clears the text field identified by `locator`.","tags":[]},{"args":["x=0","y=0","duration=100"],"doc":"<p>Click on a point\x3c/p>","matched":true,"name":"Click A Point","shortdoc":"Click on a point","tags":[]},{"args":["index_or_name"],"doc":"<p>Click button\x3c/p>","matched":true,"name":"Click Button","shortdoc":"Click button","tags":[]},{"args":["locator"],"doc":"<p>Click element identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">index\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Click Element","shortdoc":"Click element identified by `locator`.","tags":[]},{"args":["coordinate_X","coordinate_Y"],"doc":"<p>click element at a certain coordinate\x3c/p>","matched":true,"name":"Click Element At Coordinates","shortdoc":"click element at a certain coordinate","tags":[]},{"args":["text","exact_match=False"],"doc":"<p>Click text identified by <code>text\x3c/code>.\x3c/p>\n<p>By default tries to click first text involves given <code>text\x3c/code>, if you would like to click exactly matching text, then set <code>exact_match\x3c/code> to <span class=\"name\">True\x3c/span>.\x3c/p>\n<p>If there are multiple use  of <code>text\x3c/code> and you do not want first one, use <span class=\"name\">locator\x3c/span> with <a href=\"#Get%20Webelements\" class=\"name\">Get Web Elements\x3c/a> instead.\x3c/p>","matched":true,"name":"Click Text","shortdoc":"Click text identified by ``text``.","tags":[]},{"args":[],"doc":"<p>Closes all open applications.\x3c/p>\n<p>This keyword is meant to be used in test or suite teardown to make sure all the applications are closed before the test execution finishes.\x3c/p>\n<p>After this keyword, the application indices returned by <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> are reset and start from <span class=\"name\">1\x3c/span>.\x3c/p>","matched":true,"name":"Close All Applications","shortdoc":"Closes all open applications.","tags":[]},{"args":[],"doc":"<p>Closes the current application and also close webdriver session.\x3c/p>","matched":true,"name":"Close Application","shortdoc":"Closes the current application and also close webdriver session.","tags":[]},{"args":["source","target"],"doc":"<p>Drags the element found with the locator <code>source\x3c/code> to the element found with the locator <code>target\x3c/code>.\x3c/p>","matched":true,"name":"Drag And Drop","shortdoc":"Drags the element found with the locator ``source`` to the element found with the locator ``target``.","tags":[]},{"args":["locator","x_offset=0","y_offset=0"],"doc":"<p>Drags the element found with <code>locator\x3c/code> to the given <code>x_offset\x3c/code> and <code>y_offset\x3c/code> coordinates.\x3c/p>","matched":true,"name":"Drag And Drop By Offset","shortdoc":"Drags the element found with ``locator`` to the given ``x_offset`` and ``y_offset`` coordinates.","tags":[]},{"args":["locator","attr_name","match_pattern","regexp=False"],"doc":"<p>Verify that an attribute of an element matches the expected criteria.\x3c/p>\n<p>The element is identified by <i>locator\x3c/i>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements. If more than one element matches, the first element is selected.\x3c/p>\n<p>The <i>attr_name\x3c/i> is the name of the attribute within the selected element.\x3c/p>\n<p>The <i>match_pattern\x3c/i> is used for the matching, if the match_pattern is\x3c/p>\n<ul>\n<li>boolean or 'True'/'true'/'False'/'false' String then a boolean match is applied\x3c/li>\n<li>any other string is cause a string match\x3c/li>\n\x3c/ul>\n<p>The <i>regexp\x3c/i> defines whether the string match is done using regular expressions (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match%20Regexp\">Should Match Regexp\x3c/a> or string pattern match (i.e. BuiltIn Library's <a href=\"http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Should%20Match\">Should Match\x3c/a>)\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>*foobar\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>text\x3c/td>\n<td>f.*ar\x3c/td>\n<td>regexp = True\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'foo')]\x3c/td>\n<td>enabled\x3c/td>\n<td>True\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<pre>\n1. is a string pattern match i.e. the 'text' attribute should end with the string 'foobar'\n2. is a regular expression match i.e. the regexp 'f.*ar' should be within the 'text' attribute\n3. is a boolead match i.e. the 'enabled' attribute should be True\n\x3c/pre>\n<p><i><b>NOTE: \x3c/b>\x3c/i> On Android the supported attribute names are hard-coded in the <a href=\"https://github.com/appium/appium/blob/master/lib/devices/android/bootstrap/src/io/appium/android/bootstrap/AndroidElement.java\">AndroidElement\x3c/a> Class's getBoolAttribute() and getStringAttribute() methods. Currently supported (appium v1.4.11): <i>contentDescription, text, className, resourceId, enabled, checkable, checked, clickable, focusable, focused, longClickable, scrollable, selected, displayed\x3c/i>\x3c/p>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Some attributes can be evaluated in two different ways e.g. these evaluate the same thing:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Element Attribute Should Match\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>name\x3c/td>\n<td>txt_field_name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Element Name Should Be\x3c/td>\n<td>xpath = //*[contains(@text,'example text')]\x3c/td>\n<td>txt_field_name\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Element Attribute Should Match","shortdoc":"Verify that an attribute of an element matches the expected criteria.","tags":[]},{"args":["locator","expected"],"doc":"","matched":true,"name":"Element Name Should Be","shortdoc":"","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is disabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Disabled","shortdoc":"Verifies that element identified with locator is disabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is enabled.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Element Should Be Enabled","shortdoc":"Verifies that element identified with locator is enabled.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that element identified with locator is visible.\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Element Should Be Visible","shortdoc":"Verifies that element identified with locator is visible.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> contains text <code>expected\x3c/code>.\x3c/p>\n<p>If you wish to assert an exact (not a substring) match on the text of the element, use <a href=\"#Element%20Text%20Should%20Be\" class=\"name\">Element Text Should Be\x3c/a>.\x3c/p>\n<p>Key attributes for arbitrary elements are <code>id\x3c/code> and <code>xpath\x3c/code>. <code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Should Contain Text","shortdoc":"Verifies element identified by ``locator`` contains text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> does not contain text <code>expected\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message. See <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a> for more details.\x3c/p>","matched":true,"name":"Element Should Not Contain Text","shortdoc":"Verifies element identified by ``locator`` does not contain text ``expected``.","tags":[]},{"args":["locator","expected","message="],"doc":"<p>Verifies element identified by <code>locator\x3c/code> exactly contains text <code>expected\x3c/code>.\x3c/p>\n<p>In contrast to <a href=\"#Element%20Should%20Contain%20Text\" class=\"name\">Element Should Contain Text\x3c/a>, this keyword does not try a substring match but an exact match on the element identified by <code>locator\x3c/code>.\x3c/p>\n<p><code>message\x3c/code> can be used to override the default error message.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Element Text Should Be","shortdoc":"Verifies element identified by ``locator`` exactly contains text ``expected``.","tags":[]},{"args":["locator","expected"],"doc":"","matched":true,"name":"Element Value Should Be","shortdoc":"","tags":[]},{"args":["command","*args"],"doc":"<p>Execute ADB shell commands\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>command\x3c/i> - The ABD shell command\x3c/li>\n<li><i>args\x3c/i> - Arguments to send to command\x3c/li>\n\x3c/ul>\n<p>Returns the exit code of ADB shell.\x3c/p>\n<p>Requires server flag --relaxed-security to be set on Appium server.\x3c/p>","matched":true,"name":"Execute Adb Shell","shortdoc":"Execute ADB shell commands","tags":[]},{"args":["script"],"doc":"<p>Inject a snippet of Async-JavaScript into the page for execution in the context of the currently selected frame (Web context only).\x3c/p>\n<p>The executed script is assumed to be asynchronous and must signal that is done by invoking the provided callback, which is always provided as the final argument to the function.\x3c/p>\n<p>The value to this callback will be returned to the client.\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Execute Async Script","shortdoc":"Inject a snippet of Async-JavaScript into the page for execution in the context of the currently selected frame (Web context only).","tags":[]},{"args":["script"],"doc":"<p>Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only).\x3c/p>\n<p>The executed script is assumed to be synchronous and the result of evaluating the script is returned to the client.\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Execute Script","shortdoc":"Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame (Web context only).","tags":[]},{"args":[],"doc":"<p>Retrieves the current activity on the device.\x3c/p>\n<p>Android only.\x3c/p>","matched":true,"name":"Get Activity","shortdoc":"Retrieves the current activity on the device.","tags":[]},{"args":[],"doc":"<p>Returns the current session ID as a reference\x3c/p>","matched":true,"name":"Get Appium SessionId","shortdoc":"Returns the current session ID as a reference","tags":[]},{"args":[],"doc":"<p>Gets the timeout in seconds that is used by various keywords.\x3c/p>\n<p>See <a href=\"#Set%20Appium%20Timeout\" class=\"name\">Set Appium Timeout\x3c/a> for an explanation.\x3c/p>","matched":true,"name":"Get Appium Timeout","shortdoc":"Gets the timeout in seconds that is used by various keywords.","tags":[]},{"args":["capability_name"],"doc":"<p>Return the desired capability value by desired capability name\x3c/p>","matched":true,"name":"Get Capability","shortdoc":"Return the desired capability value by desired capability name","tags":[]},{"args":[],"doc":"<p>Get available contexts.\x3c/p>","matched":true,"name":"Get Contexts","shortdoc":"Get available contexts.","tags":[]},{"args":[],"doc":"<p>Get current context.\x3c/p>","matched":true,"name":"Get Current Context","shortdoc":"Get current context.","tags":[]},{"args":["locator","attribute"],"doc":"<p>Get element attribute using given attribute: name, value,...\x3c/p>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>name\x3c/td>\n\x3c/tr>\n<tr>\n<td>Get Element Attribute\x3c/td>\n<td>locator\x3c/td>\n<td>value\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Get Element Attribute","shortdoc":"Get element attribute using given attribute: name, value,...","tags":[]},{"args":["locator"],"doc":"<p>Get element location\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Location","shortdoc":"Get element location","tags":[]},{"args":["locator"],"doc":"<p>Get element size\x3c/p>\n<p>Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Get Element Size","shortdoc":"Get element size","tags":[]},{"args":["xpath"],"doc":"<p>Returns number of elements matching <code>xpath\x3c/code>\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${count}\x3c/td>\n<td>Get Matching Xpath Count\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>If you wish to assert the number of matching elements, use <a href=\"#Xpath%20Should%20Match%20X%20Times\" class=\"name\">Xpath Should Match X Times\x3c/a>.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Matching Xpath Count","shortdoc":"Returns number of elements matching ``xpath``","tags":[]},{"args":[],"doc":"<p>Returns an integer bitmask specifying the network connection type.\x3c/p>\n<p>Android only.\x3c/p>\n<p>See <a href=\"#Set%20Network%20Connection%20Status\" class=\"name\">set network connection status\x3c/a> for more details.\x3c/p>","matched":true,"name":"Get Network Connection Status","shortdoc":"Returns an integer bitmask specifying the network connection type.","tags":[]},{"args":[],"doc":"<p>Returns the entire source of the current page.\x3c/p>","matched":true,"name":"Get Source","shortdoc":"Returns the entire source of the current page.","tags":[]},{"args":["locator"],"doc":"<p>Get element text (for hybrid and mobile browser use <span class=\"name\">xpath\x3c/span> locator, others might cause problem)\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${text}\x3c/td>\n<td>Get Text\x3c/td>\n<td>//*[contains(@text,'foo')]\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Text","shortdoc":"Get element text (for hybrid and mobile browser use `xpath` locator, others might cause problem)","tags":[]},{"args":["locator"],"doc":"<p>Returns the first <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> object matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${element}\x3c/td>\n<td>Get Webelement\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>${element}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelement","shortdoc":"Returns the first [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] object matching ``locator``.","tags":[]},{"args":["locator"],"doc":"<p>Returns list of <a href=\"http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement\">WebElement\x3c/a> objects matching <code>locator\x3c/code>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>@{elements}\x3c/td>\n<td>Get Webelements\x3c/td>\n<td>id=my_element\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>@{elements}[2]\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This keyword was changed in AppiumLibrary 1.4 in following ways:\x3c/p>\n<ul>\n<li>Name is changed from <span class=\"name\">Get Elements\x3c/span> to current one.\x3c/li>\n<li>Deprecated argument <code>fail_on_error\x3c/code>, use <span class=\"name\">Run Keyword and Ignore Error\x3c/span> if necessary.\x3c/li>\n\x3c/ul>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Get Webelements","shortdoc":"Returns list of [http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement|WebElement] objects matching ``locator``.","tags":[]},{"args":[],"doc":"<p>Get current device height.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Height","shortdoc":"Get current device height.","tags":[]},{"args":[],"doc":"<p>Get current device width.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${width}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${height}\x3c/td>\n<td>Get Window Height\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click A Point\x3c/td>\n<td>${width\x3c/td>\n<td>${height}\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Get Window Width","shortdoc":"Get current device width.","tags":[]},{"args":[],"doc":"<p>Goes one step backward in the browser history.\x3c/p>","matched":true,"name":"Go Back","shortdoc":"Goes one step backward in the browser history.","tags":[]},{"args":["url"],"doc":"<p>Opens URL in default web browser.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>browserName=Safari\x3c/td>\n\x3c/tr>\n<tr>\n<td>Go To URL\x3c/td>\n<td><a href=\"http://m.webapp.com\">http://m.webapp.com\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Go To Url","shortdoc":"Opens URL in default web browser.","tags":[]},{"args":["key_name=None"],"doc":"<p>Hides the software keyboard on the device. (optional) In iOS, use <span class=\"name\">key_name\x3c/span> to press a particular key, ex. <span class=\"name\">Done\x3c/span>. In Android, no parameters are used.\x3c/p>","matched":true,"name":"Hide Keyboard","shortdoc":"Hides the software keyboard on the device. (optional) In iOS, use `key_name` to press a particular key, ex. `Done`. In Android, no parameters are used.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given password into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>Difference between this keyword and <a href=\"#Input%20Text\" class=\"name\">Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Password","shortdoc":"Types the given password into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Types the given <span class=\"name\">text\x3c/span> into text field identified by <span class=\"name\">locator\x3c/span>.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Text","shortdoc":"Types the given `text` into text field identified by `locator`.","tags":[]},{"args":["locator","text"],"doc":"<p>Sets the given value into text field identified by <span class=\"name\">locator\x3c/span>. This is an IOS only keyword, input value makes use of set_value\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Input Value","shortdoc":"Sets the given value into text field identified by `locator`. This is an IOS only keyword, input value makes use of set_value","tags":[]},{"args":["app_path","app_package"],"doc":"<p>Install App via Appium\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li>app_path - path to app\x3c/li>\n<li>app_package - package of install app to verify\x3c/li>\n\x3c/ul>","matched":true,"name":"Install App","shortdoc":"Install App via Appium","tags":[]},{"args":[],"doc":"<p>Return true if Android keyboard is displayed or False if not displayed No parameters are used.\x3c/p>","matched":true,"name":"Is Keyboard Shown","shortdoc":"Return true if Android keyboard is displayed or False if not displayed No parameters are used.","tags":[]},{"args":[],"doc":"<p>Set the device orientation to LANDSCAPE\x3c/p>","matched":true,"name":"Landscape","shortdoc":"Set the device orientation to LANDSCAPE","tags":[]},{"args":[],"doc":"<p>Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.\x3c/p>\n<p>This keyword works while <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a> has a test running. This is good practice to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> and <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> between test cases. As Suite Setup is <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>, <span class=\"name\">Test Setup\x3c/span> can be used to <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a>\x3c/p>\n<p>Example (syntax is just a representation, refer to RF Guide for usage of Setup/Teardown):\x3c/p>\n<table border=\"1\">\n<tr>\n<td>[Setup Suite]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>platformName=Android\x3c/td>\n<td>deviceName=192.168.56.101:5555\x3c/td>\n<td>app=${CURDIR}/demoapp/OrangeDemoApp.apk\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Setup]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Launch Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>&lt;&lt;&lt;test execution&gt;&gt;&gt;\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Test Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Quit Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>[Suite Teardown]\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>\x3c/td>\n<td>Close Application\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>See <a href=\"#Quit%20Application\" class=\"name\">Quit Application\x3c/a> for quiting application but keeping Appium sesion running.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Launch Application","shortdoc":"Launch application. Application can be launched while Appium session running. This keyword can be used to launch application during test case or between test cases.","tags":[]},{"args":["seconds=5"],"doc":"<p>Lock the device for a certain period of time. iOS only.\x3c/p>","matched":true,"name":"Lock","shortdoc":"Lock the device for a certain period of time. iOS only.","tags":[]},{"args":["loglevel=INFO"],"doc":"<p>Logs and returns the entire html source of the current page or frame.\x3c/p>\n<p>The <span class=\"name\">loglevel\x3c/span> argument defines the used log level. Valid log levels are <span class=\"name\">WARN\x3c/span>, <span class=\"name\">INFO\x3c/span> (default), <span class=\"name\">DEBUG\x3c/span>, <span class=\"name\">TRACE\x3c/span> and <span class=\"name\">NONE\x3c/span> (no logging).\x3c/p>","matched":true,"name":"Log Source","shortdoc":"Logs and returns the entire html source of the current page or frame.","tags":[]},{"args":["locator","duration=1000"],"doc":"<p>Long press the element with optional duration\x3c/p>","matched":true,"name":"Long Press","shortdoc":"Long press the element with optional duration","tags":[]},{"args":["keycode","metastate=None"],"doc":"<p>Sends a long press of keycode to the device.\x3c/p>\n<p>Android only.\x3c/p>\n<p>See <a href=\"#Press%20Keycode\" class=\"name\">press keycode\x3c/a> for more details.\x3c/p>","matched":true,"name":"Long Press Keycode","shortdoc":"Sends a long press of keycode to the device.","tags":[]},{"args":["remote_url","alias=None","**kwargs"],"doc":"<p>Opens a new application to given Appium server. Capabilities of appium server, Android and iOS, Please check <a href=\"https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md\">https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md\x3c/a>\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Option\x3c/b>\x3c/td>\n<td><b>Man.\x3c/b>\x3c/td>\n<td><b>Description\x3c/b>\x3c/td>\n\x3c/tr>\n<tr>\n<td>remote_url\x3c/td>\n<td>Yes\x3c/td>\n<td>Appium server url\x3c/td>\n\x3c/tr>\n<tr>\n<td>alias\x3c/td>\n<td>no\x3c/td>\n<td>alias\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>Examples:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=Myapp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>platformName=Android\x3c/td>\n<td>platformVersion=4.2.2\x3c/td>\n<td>deviceName=192.168.56.101:5555\x3c/td>\n<td>app=${CURDIR}/demoapp/OrangeDemoApp.apk\x3c/td>\n<td>appPackage=com.netease.qa.orangedemo\x3c/td>\n<td>appActivity=MainActivity\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Open Application","shortdoc":"Opens a new application to given Appium server. Capabilities of appium server, Android and iOS, Please check https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/server-args.md | *Option*            | *Man.* | *Description*     | | remote_url          | Yes    | Appium server url | | alias               | no     | alias             |","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Element","shortdoc":"Verifies that current page contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Contain Text","shortdoc":"Verifies that current page contains `text`.","tags":[]},{"args":["locator","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">locator\x3c/span> element.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Element","shortdoc":"Verifies that current page not contains `locator` element.","tags":[]},{"args":["text","loglevel=INFO"],"doc":"<p>Verifies that current page not contains <span class=\"name\">text\x3c/span>.\x3c/p>\n<p>If this keyword fails, it automatically logs the page source using the log level specified with the optional <span class=\"name\">loglevel\x3c/span> argument. Giving <span class=\"name\">NONE\x3c/span> as level disables logging.\x3c/p>","matched":true,"name":"Page Should Not Contain Text","shortdoc":"Verifies that current page not contains `text`.","tags":[]},{"args":["locator","percent=200%","steps=1"],"doc":"<p>Pinch in on an element a certain amount.\x3c/p>","matched":true,"name":"Pinch","shortdoc":"Pinch in on an element a certain amount.","tags":[]},{"args":[],"doc":"<p>Set the device orientation to PORTRAIT\x3c/p>","matched":true,"name":"Portrait","shortdoc":"Set the device orientation to PORTRAIT","tags":[]},{"args":["keycode","metastate=None"],"doc":"<p>Sends a press of keycode to the device.\x3c/p>\n<p>Android only.\x3c/p>\n<p>Possible keycodes &amp; meta states can be found in <a href=\"http://developer.android.com/reference/android/view/KeyEvent.html\">http://developer.android.com/reference/android/view/KeyEvent.html\x3c/a>\x3c/p>\n<p>Meta state describe the pressed state of key modifiers such as Shift, Ctrl &amp; Alt keys. The Meta State is an integer in which each bit set to 1 represents a pressed meta key.\x3c/p>\n<p>For example\x3c/p>\n<ul>\n<li>META_SHIFT_ON = 1\x3c/li>\n<li>META_ALT_ON = 2\x3c/li>\n\x3c/ul>\n<pre>\nmetastate=1 --&gt; Shift is pressed\nmetastate=2 --&gt; Alt is pressed\nmetastate=3 --&gt; Shift+Alt is pressed\n\x3c/pre>\n<ul>\n<li>_keycode- - the keycode to be sent to the device\x3c/li>\n<li>_metastate- - status of the meta keys\x3c/li>\n\x3c/ul>","matched":true,"name":"Press Keycode","shortdoc":"Sends a press of keycode to the device.","tags":[]},{"args":["path","decode=False"],"doc":"<p>Retrieves the file at <span class=\"name\">path\x3c/span> and return it's content.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path to the file on the device\x3c/li>\n<li><i>decode\x3c/i> - True/False decode the data (base64) before returning it (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Pull File","shortdoc":"Retrieves the file at `path` and return it's content.","tags":[]},{"args":["path","decode=False"],"doc":"<p>Retrieves a folder at <span class=\"name\">path\x3c/span>. Returns the folder's contents zipped.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path to the folder on the device\x3c/li>\n<li><i>decode\x3c/i> - True/False decode the data (base64) before returning it (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Pull Folder","shortdoc":"Retrieves a folder at `path`. Returns the folder's contents zipped.","tags":[]},{"args":["path","data","encode=False"],"doc":"<p>Puts the data in the file specified as <span class=\"name\">path\x3c/span>.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>path\x3c/i> - the path on the device\x3c/li>\n<li><i>data\x3c/i> - data to be written to the file\x3c/li>\n<li><i>encode\x3c/i> - True/False encode the data as base64 before writing it to the file (default=False)\x3c/li>\n\x3c/ul>","matched":true,"name":"Push File","shortdoc":"Puts the data in the file specified as `path`.","tags":[]},{"args":[],"doc":"<p>Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.\x3c/p>\n<p>See <a href=\"#Launch%20Application\" class=\"name\">Launch Application\x3c/a> for an explanation.\x3c/p>\n<p>New in AppiumLibrary 1.4.6\x3c/p>","matched":true,"name":"Quit Application","shortdoc":"Quit application. Application can be quit while Appium session is kept alive. This keyword can be used to close application during test case or between test cases.","tags":[]},{"args":["keyword"],"doc":"<p>Sets the keyword to execute when a AppiumLibrary keyword fails.\x3c/p>\n<p><span class=\"name\">keyword_name\x3c/span> is the name of a keyword (from any available libraries) that  will be executed if a AppiumLibrary keyword fails. It is not possible to use a keyword that requires arguments. Using the value \"Nothing\" will disable this feature altogether.\x3c/p>\n<p>The initial keyword to use is set in <a href=\"#Importing\" class=\"name\">importing\x3c/a>, and the keyword that is used by default is <a href=\"#Capture%20Page%20Screenshot\" class=\"name\">Capture Page Screenshot\x3c/a>. Taking a screenshot when something failed is a very useful feature, but notice that it can slow down the execution.\x3c/p>\n<p>This keyword returns the name of the previously registered failure keyword. It can be used to restore the original value later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Log Source\x3c/td>\n<td># Run <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> on failure.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>${previous kw}=\x3c/td>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>Nothing\x3c/td>\n<td># Disables run-on-failure functionality and stores the previous kw name in a variable.\x3c/td>\n\x3c/tr>\n<tr>\n<td>Register Keyword To Run On Failure\x3c/td>\n<td>${previous kw}\x3c/td>\n<td># Restore to the previous keyword.\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p>This run-on-failure functionality only works when running tests on Python/Jython 2.4 or newer and it does not work on IronPython at all.\x3c/p>","matched":true,"name":"Register Keyword To Run On Failure","shortdoc":"Sets the keyword to execute when a AppiumLibrary keyword fails.","tags":[]},{"args":["application_id"],"doc":"<p>Removes the application that is identified with an application id\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Remove Application\x3c/td>\n<td>com.netease.qa.orangedemo\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Remove Application","shortdoc":"Removes the application that is identified with an application id","tags":[]},{"args":[],"doc":"<p>Reset application. Open Application can be reset while Appium session is kept alive.\x3c/p>","matched":true,"name":"Reset Application","shortdoc":"Reset application. Open Application can be reset while Appium session is kept alive.","tags":[]},{"args":[],"doc":"<p>Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.\x3c/p>","matched":true,"name":"Save Appium Screenshot","shortdoc":"Takes a screenshot with a unique filename to be stored in Robot Framework compiled reports.","tags":[]},{"args":["start_locator","end_locator"],"doc":"<p>Scrolls from one element to another Key attributes for arbitrary elements are <span class=\"name\">id\x3c/span> and <span class=\"name\">name\x3c/span>. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Scroll","shortdoc":"Scrolls from one element to another Key attributes for arbitrary elements are `id` and `name`. See `introduction` for details about locating elements.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls down to element\x3c/p>","matched":true,"name":"Scroll Down","shortdoc":"Scrolls down to element","tags":[]},{"args":["text","swipe_count=20"],"doc":"<p>Scrolls down to <code>text\x3c/code> using small swipes. The <code>swipe_count\x3c/code> defaults to 20.\x3c/p>","matched":true,"name":"Scroll Down To Text","shortdoc":"Scrolls down to ``text`` using small swipes. The ``swipe_count`` defaults to 20.","tags":[]},{"args":["locator"],"doc":"<p>Scrolls up to element\x3c/p>","matched":true,"name":"Scroll Up","shortdoc":"Scrolls up to element","tags":[]},{"args":["text","swipe_count=20"],"doc":"<p>Scrolls down to <code>text\x3c/code> using small swipes. The <code>swipe_count\x3c/code> defaults to 20.\x3c/p>","matched":true,"name":"Scroll Up To Text","shortdoc":"Scrolls down to ``text`` using small swipes. The ``swipe_count`` defaults to 20.","tags":[]},{"args":["seconds"],"doc":"<p>Sets the timeout in seconds used by various keywords.\x3c/p>\n<p>There are several <span class=\"name\">Wait ...\x3c/span> keywords that take timeout as an argument. All of these timeout arguments are optional. The timeout used by all of them can be set globally using this keyword.\x3c/p>\n<p>The previous timeout value is returned by this keyword and can be used to set the old value back later. The default timeout is 5 seconds, but it can be altered in <a href=\"#Importing\" class=\"name\">importing\x3c/a>.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${orig timeout} =\x3c/td>\n<td>Set Appium Timeout\x3c/td>\n<td>15 seconds\x3c/td>\n\x3c/tr>\n<tr>\n<td>Open page that loads slowly\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Set Appium Timeout\x3c/td>\n<td>${orig timeout}\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Appium Timeout","shortdoc":"Sets the timeout in seconds used by various keywords.","tags":[]},{"args":["latitude","longitude","altitude=10"],"doc":"<p>Set location\x3c/p>\n<ul>\n<li><i>latitute\x3c/i>\x3c/li>\n<li><i>longitude\x3c/i>\x3c/li>\n<li><i>altitude\x3c/i> = 10 [optional]\x3c/li>\n\x3c/ul>\n<p>Android only. New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Set Location","shortdoc":"Set location","tags":[]},{"args":["connectionStatus"],"doc":"<p>Sets the network connection Status.\x3c/p>\n<p>Android only.\x3c/p>\n<p>Possible values:\x3c/p>\n<table border=\"1\">\n<tr>\n<th>Value\x3c/th>\n<th>Alias\x3c/th>\n<th>Data\x3c/th>\n<th>Wifi\x3c/th>\n<th>Airplane Mode\x3c/th>\n\x3c/tr>\n<tr>\n<td>0\x3c/td>\n<td>(None)\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>1\x3c/td>\n<td>(Airplane Mode)\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>2\x3c/td>\n<td>(Wifi only)\x3c/td>\n<td>0\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>4\x3c/td>\n<td>(Data only)\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n<tr>\n<td>6\x3c/td>\n<td>(All network on)\x3c/td>\n<td>1\x3c/td>\n<td>1\x3c/td>\n<td>0\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Set Network Connection Status","shortdoc":"Sets the network connection Status.","tags":[]},{"args":[],"doc":"<p>Shake the device\x3c/p>","matched":true,"name":"Shake","shortdoc":"Shake the device","tags":[]},{"args":["appPackage","appActivity","**opts"],"doc":"<p>Opens an arbitrary activity during a test. If the activity belongs to another application, that application is started and the activity is opened.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>appPackage\x3c/i> - The package containing the activity to start.\x3c/li>\n<li><i>appActivity\x3c/i> - The activity to start.\x3c/li>\n<li><i>appWaitPackage\x3c/i> - Begin automation after this package starts (optional).\x3c/li>\n<li><i>appWaitActivity\x3c/i> - Begin automation after this activity starts (optional).\x3c/li>\n<li><i>intentAction\x3c/i> - Intent to start (opt_ional).\x3c/li>\n<li><i>intentCategory\x3c/i> - Intent category to start (optional).\x3c/li>\n<li><i>intentFlags\x3c/i> - Flags to send to the intent (optional).\x3c/li>\n<li><i>optionalIntentArguments\x3c/i> - Optional arguments to the intent (optional).\x3c/li>\n<li><i>dontStopAppOnReset\x3c/i> - Should the app be stopped on reset (optional)?\x3c/li>\n\x3c/ul>","matched":true,"name":"Start Activity","shortdoc":"Opens an arbitrary activity during a test. If the activity belongs to another application, that application is started and the activity is opened.","tags":[]},{"args":["timeLimit=180s","**options"],"doc":"<p>Starts an asynchronous Screen Recording for the current open application.\x3c/p>\n<p><code>timeLimit\x3c/code> sets the actual time limit of the recorded video.\x3c/p>\n<ul>\n<li>The default value for both iOS and Android is 180 seconds (3 minutes).\x3c/li>\n<li>The maximum value for Android is 3 minutes.\x3c/li>\n<li>The maximum value for iOS is 10 minutes.\x3c/li>\n\x3c/ul>\n<h4>Optional Args\x3c/h4>\n<ul>\n<li><code>bitRate\x3c/code> (Android Only) The video bit rate for the video, in megabits per second. 4 Mbp/s(4000000) is by default for Android API level below 27.                                    20 Mb/s(20000000) for API level 27 and above.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoSize\x3c/code> (Android Only) The format is widthxheight. The default value is the                device's native display resolution (if supported), 1280x720 if not. For best                        results, use a size supported by your device's Advanced Video Coding (AVC)                          encoder. For example, \"1280x720\"\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>bugReport\x3c/code> (Android Only) Set it to true in order to display additional                       information on the video overlay, such as a timestamp, that is helpful in                           videos captured to illustrate bugs. This option is only supported since                             API level 27 (Android O).\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoQuality\x3c/code> (iOS Only) The video encoding quality (low, medium, high,                       photo - defaults to medium).\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoFps\x3c/code>         (iOS Only) The Frames Per Second rate of the recorded video.                    Change this value if the resulting video is too slow or too fast. Defaults to 10.                   This can decrease the resulting file size.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>videoScale\x3c/code> (iOS Only) The scaling value to apply. Read                                       <a href=\"https://trac.ffmpeg.org/wiki/Scaling\">https://trac.ffmpeg.org/wiki/Scaling\x3c/a> for possible values. Example value of 720p                     scaling is '1280:720'. This can decrease/increase the resulting file size.                          No scale is applied by default.\x3c/li>\n\x3c/ul>\n<p><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> is used hand in hand with <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>. See <a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a> for more details. Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Start Screen Recording","shortdoc":"Starts an asynchronous Screen Recording for the current open application.","tags":[]},{"args":["filename=None","**options"],"doc":"<p>Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).\x3c/p>\n<p>Requires an active or exhausted Screen Recording Session. See <a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a> for more details.\x3c/p>\n<h4>Optional Args\x3c/h4>\n<ul>\n<li><code>remotePath\x3c/code> The path to the remote location, where the resulting video should be              uploaded. The following protocols are supported <i>http/https\x3c/i>, ftp. Null or empty                  string value (the default setting) means the content of resulting file should                       be encoded as Base64 and passed as the endpoint response value. An                                  exception will be thrown if the generated media file is too big to fit                              into the available process memory.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>username\x3c/code> The name of the user for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>password\x3c/code> The password for the remote authentication.\x3c/li>\n\x3c/ul>\n<ul>\n<li><code>method\x3c/code> The http multipart upload method name. The <i>PUT\x3c/i> one is used by default.\x3c/li>\n\x3c/ul>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td><a href=\"#Start%20Screen%20Recording\" class=\"name\">Start Screen Recording\x3c/a>\x3c/td>\n<td>\x3c/td>\n<td># starts a screen record session\x3c/td>\n\x3c/tr>\n<tr>\n<td>....     keyword actions\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td><a href=\"#Stop%20Screen%20Recording\" class=\"name\">Stop Screen Recording\x3c/a>\x3c/td>\n<td>filename=output\x3c/td>\n<td># saves the recorded session\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Stop Screen Recording","shortdoc":"Gathers the output from the previously started screen recording              to a media file, then embeds it to the log.html(Android Only).","tags":[]},{"args":["start_x","start_y","offset_x","offset_y","duration=1000"],"doc":"<p>Swipe from one point to another point, for an optional duration.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li>start_x - x-coordinate at which to start\x3c/li>\n<li>start_y - y-coordinate at which to start\x3c/li>\n<li>offset_x - x-coordinate distance from start_x at which to stop\x3c/li>\n<li>offset_y - y-coordinate distance from start_y at which to stop\x3c/li>\n<li>duration - (optional) time to take the swipe, in ms.\x3c/li>\n\x3c/ul>\n<p>Usage:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Swipe\x3c/td>\n<td>500\x3c/td>\n<td>100\x3c/td>\n<td>100\x3c/td>\n<td>0\x3c/td>\n<td>1000\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><i><b>NOTE: \x3c/b>\x3c/i> Android 'Swipe' is not working properly, use <code>offset_x\x3c/code> and <code>offset_y\x3c/code> as if these are destination points.\x3c/p>","matched":true,"name":"Swipe","shortdoc":"Swipe from one point to another point, for an optional duration.","tags":[]},{"args":["start_x","start_y","end_x","end_y","duration=1000"],"doc":"<p>Swipe from one percent of the screen to another percent, for an optional duration. Normal swipe fails to scale for different screen resolutions, this can be avoided using percent.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li>start_x - x-percent at which to start\x3c/li>\n<li>start_y - y-percent at which to start\x3c/li>\n<li>end_x - x-percent distance from start_x at which to stop\x3c/li>\n<li>end_y - y-percent distance from start_y at which to stop\x3c/li>\n<li>duration - (optional) time to take the swipe, in ms.\x3c/li>\n\x3c/ul>\n<p>Usage:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>Swipe By Percent\x3c/td>\n<td>90\x3c/td>\n<td>50\x3c/td>\n<td>10\x3c/td>\n<td>50\x3c/td>\n<td># Swipes screen from right to left.\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><i><b>NOTE: \x3c/b>\x3c/i> This also considers swipe acts different between iOS and Android.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Swipe By Percent","shortdoc":"Swipe from one percent of the screen to another percent, for an optional duration. Normal swipe fails to scale for different screen resolutions, this can be avoided using percent.","tags":[]},{"args":["index_or_alias"],"doc":"<p>Switches the active application by index or alias.\x3c/p>\n<p><span class=\"name\">index_or_alias\x3c/span> is either application index (an integer) or alias (a string). Index is got as the return value of <a href=\"#Open%20Application\" class=\"name\">Open Application\x3c/a>.\x3c/p>\n<p>This keyword returns the index of the previous active application, which can be used to switch back to that application later.\x3c/p>\n<p>Example:\x3c/p>\n<table border=\"1\">\n<tr>\n<td>${appium1}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4723/wd/hub\">http://localhost:4723/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp1\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>${appium2}=\x3c/td>\n<td>Open Application\x3c/td>\n<td><a href=\"http://localhost:4755/wd/hub\">http://localhost:4755/wd/hub\x3c/a>\x3c/td>\n<td>alias=MyApp2\x3c/td>\n<td>platformName=iOS\x3c/td>\n<td>platformVersion=7.0\x3c/td>\n<td>deviceName='iPhone Simulator'\x3c/td>\n<td>app=your.app\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>sendHello\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>${appium1}\x3c/td>\n<td># Switch using index\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Click Element\x3c/td>\n<td>ackHello\x3c/td>\n<td># Executed on appium running at localhost:4723\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Switch Application\x3c/td>\n<td>MyApp2\x3c/td>\n<td># Switch using alias\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Page Should Contain Text\x3c/td>\n<td>ackHello Received\x3c/td>\n<td># Executed on appium running at localhost:4755\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n\x3c/table>","matched":true,"name":"Switch Application","shortdoc":"Switches the active application by index or alias.","tags":[]},{"args":["context_name"],"doc":"<p>Switch to a new context\x3c/p>","matched":true,"name":"Switch To Context","shortdoc":"Switch to a new context","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1"],"doc":"<p>Tap element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used for multiple times of tap on that element\x3c/li>\n\x3c/ul>","matched":true,"name":"Tap","shortdoc":"Tap element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","loglevel=INFO"],"doc":"<p>Verifies that element identified with text is visible.\x3c/p>\n<p>New in AppiumLibrary 1.4.5\x3c/p>","matched":true,"name":"Text Should Be Visible","shortdoc":"Verifies that element identified with text is visible.","tags":[]},{"args":[],"doc":"<p>Toggle Touch ID enrolled state on iOS Simulator\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Toggle Touch Id Enrollment","shortdoc":"Toggle Touch ID enrolled state on iOS Simulator","tags":[]},{"args":["match=True"],"doc":"<p>Simulate Touch ID on iOS Simulator\x3c/p>\n<p><span class=\"name\">match\x3c/span> (boolean) whether the simulated fingerprint is valid (default true)\x3c/p>\n<p>New in AppiumLibrary 1.5\x3c/p>","matched":true,"name":"Touch Id","shortdoc":"Simulate Touch ID on iOS Simulator","tags":[]},{"args":["activity","timeout","interval=1"],"doc":"<p>Wait for an activity: block until target activity presents or time out.\x3c/p>\n<p>Android only.\x3c/p>\n<ul>\n<li><i>activity\x3c/i> - target activity\x3c/li>\n<li><i>timeout\x3c/i> - max wait time, in seconds\x3c/li>\n<li><i>interval\x3c/i> - sleep interval between retries, in seconds\x3c/li>\n\x3c/ul>","matched":true,"name":"Wait Activity","shortdoc":"Wait for an activity: block until target activity presents or time out.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and then clear the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Clear Text","shortdoc":"Wait for and then clear the text field identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the button identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Click Button","shortdoc":"Wait for and click the button identified by ``locator``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Wait for and click the element identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Click Element","shortdoc":"Wait for and click the element identified by ``locator``.","tags":[]},{"args":["text","exact_match=False","timeout=None","error=None"],"doc":"<p>Wait for and click text identified by <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>By default tries to click first text involves given <code>text\x3c/code>. If you would like to click exactly matching text, then set <code>exact_match\x3c/code> to <span class=\"name\">True\x3c/span>.\x3c/p>","matched":true,"name":"Wait For And Click Text","shortdoc":"Wait for and click text identified by ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given password into the text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Password","shortdoc":"Wait for and type the given password into the text field identified by ``locator``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Wait for and type the given <code>locator\x3c/code> into text field identified by <code>locator\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Text","shortdoc":"Wait for and type the given ``locator`` into text field identified by ``locator``.","tags":[]},{"args":["locator","value","timeout=None","error=None"],"doc":"<p>Wait for and set the given <code>value\x3c/code> into the text field identified by <code>locator\x3c/code>. This is an IOS only keyword, input value makes use of set_value.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>The difference between this keyword and <a href=\"#Wait%20For%20And%20Input%20Text\" class=\"name\">Wait For And Input Text\x3c/a> is that this keyword does not log the given password. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Input Value","shortdoc":"Wait for and set the given ``value`` into the text field identified by ``locator``. This is an IOS only keyword, input value makes use of set_value.","tags":[]},{"args":["locator","duration=5000","timeout=None","error=None"],"doc":"<p>Wait for and long press the element identified by <code>locator\x3c/code> with optional <code>duration\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for details about locating elements.\x3c/p>","matched":true,"name":"Wait For And Long Press","shortdoc":"Wait for and long press the element identified by ``locator`` with optional ``duration``.","tags":[]},{"args":["locator","x_offset=None","y_offset=None","count=1","timeout=None","error=None"],"doc":"<p>Wait for and then Tap element identified by <code>locator\x3c/code>. Args:\x3c/p>\n<ul>\n<li><code>x_offset\x3c/code> - (optional) x coordinate to tap, relative to the top left corner of the element.\x3c/li>\n<li><code>y_offset\x3c/code> - (optional) y coordinate. If y is used, x must also be set, and vice versa\x3c/li>\n<li><code>count\x3c/code> - can be used to tap multiple times\x3c/li>\n<li><code>timeout\x3c/code> - time in seconds to locate the element, defaults to global timeout\x3c/li>\n<li><code>error\x3c/code> - (optional) used to override the default error message.\x3c/li>\n\x3c/ul>","matched":true,"name":"Wait For And Tap","shortdoc":"Wait for and then Tap element identified by ``locator``. Args: - ``x_offset`` - (optional) x coordinate to tap, relative to the top left corner of the element. - ``y_offset`` - (optional) y coordinate. If y is used, x must also be set, and vice versa - ``count`` - can be used to tap multiple times - ``timeout`` - time in seconds to locate the element, defaults to global timeout - ``error`` - (optional) used to override the default error message.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> contains <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Contains","shortdoc":"Waits until element specified with ``locator`` contains ``text``.","tags":[]},{"args":["locator","text","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> does not contain <code>text\x3c/code>.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Contains\" class=\"name\">Wait Until Element Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Does Not Contain","shortdoc":"Waits until element specified with ``locator`` does not contain ``text``.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is disabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Disabled","shortdoc":"Waits until element specified with ``locator`` is disabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <code>locator\x3c/code> is enabled.\x3c/p>\n<p>Fails if <code>timeout\x3c/code> expires before the element appears.\x3c/p>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Element%20Is%20Disabled\" class=\"name\">Wait Until Element Is Disabled\x3c/a>\x3c/p>","matched":true,"name":"Wait Until Element Is Enabled","shortdoc":"Waits until element specified with ``locator`` is enabled.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> is visible.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element is visible. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <span class=\"name\">Wait For Condition\x3c/span> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Element Is Visible","shortdoc":"Waits until element specified with `locator` is visible.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the text appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains","shortdoc":"Waits until `text` appears on current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> appears on current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element appears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a> <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Contains Element","shortdoc":"Waits until element specified with `locator` appears on current page.","tags":[]},{"args":["text","timeout=None","error=None"],"doc":"<p>Waits until <span class=\"name\">text\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the <span class=\"name\">text\x3c/span> disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain%20Element\" class=\"name\">Wait Until Page Does Not Contain Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain","shortdoc":"Waits until `text` disappears from current page.","tags":[]},{"args":["locator","timeout=None","error=None"],"doc":"<p>Waits until element specified with <span class=\"name\">locator\x3c/span> disappears from current page.\x3c/p>\n<p>Fails if <span class=\"name\">timeout\x3c/span> expires before the element disappears. See <a href=\"#Introduction\" class=\"name\">introduction\x3c/a> for more information about <span class=\"name\">timeout\x3c/span> and its default value.\x3c/p>\n<p><span class=\"name\">error\x3c/span> can be used to override the default error message.\x3c/p>\n<p>See also <a href=\"#Wait%20Until%20Page%20Contains\" class=\"name\">Wait Until Page Contains\x3c/a>, <a href=\"#Wait%20Until%20Page%20Does%20Not%20Contain\" class=\"name\">Wait Until Page Does Not Contain\x3c/a>, <a href=\"#Wait%20Until%20Page%20Contains%20Element\" class=\"name\">Wait Until Page Contains Element\x3c/a> and BuiltIn keyword <span class=\"name\">Wait Until Keyword Succeeds\x3c/span>.\x3c/p>","matched":true,"name":"Wait Until Page Does Not Contain Element","shortdoc":"Waits until element specified with `locator` disappears from current page.","tags":[]},{"args":["xpath","count","error=None","loglevel=INFO"],"doc":"<p>Verifies that the page contains the given number of elements located by the given <code>xpath\x3c/code>.\x3c/p>\n<p>One should not use the <span class=\"name\">xpath=\x3c/span> prefix for 'xpath'. XPath is assumed.\x3c/p>\n<table border=\"1\">\n<tr>\n<td><b>Correct:\x3c/b>\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n<tr>\n<td>Incorrect:\x3c/td>\n<td>\x3c/td>\n<td>\x3c/td>\n\x3c/tr>\n<tr>\n<td>Xpath Should Match X Times\x3c/td>\n<td>xpath=//android.view.View[@text='Test']\x3c/td>\n<td>1\x3c/td>\n\x3c/tr>\n\x3c/table>\n<p><code>error\x3c/code> can be used to override the default error message.\x3c/p>\n<p>See <a href=\"#Log%20Source\" class=\"name\">Log Source\x3c/a> for explanation about <code>loglevel\x3c/code> argument.\x3c/p>\n<p>New in AppiumLibrary 1.4.\x3c/p>","matched":true,"name":"Xpath Should Match X Times","shortdoc":"Verifies that the page contains the given number of elements located by the given ``xpath``.","tags":[]},{"args":["locator","percent=200%","steps=1"],"doc":"<p>Zooms in on an element a certain amount.\x3c/p>","matched":true,"name":"Zoom","shortdoc":"Zooms in on an element a certain amount.","tags":[]}],"name":"Mobile_Library","named_args":true,"scope":"GLOBAL","version":"2.7.3"};
 </script>
 <title></title>
 </head>
diff --git a/docs/README.md b/docs/README.md
index 29ccc06d..d74ceb29 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,7 +1,7 @@
 RobotFramework-Zoomba
 ===========
 [![PyPI version](https://badge.fury.io/py/robotframework-zoomba.svg)](https://badge.fury.io/py/robotframework-zoomba)
-[![Build Status](https://travis-ci.com/Accruent/robotframework-zoomba.svg?branch=master)](https://travis-ci.com/Accruent/robotframework-zoomba)
+[![Build Status](https://github.com/Accruent/robotframework-zoomba/workflows/run-tests/badge.svg?branch=master)](https://github.com/Accruent/robotframework-zoomba/actions?query=workflow%3Arun-tests)
 [![Coverage Status](https://coveralls.io/repos/github/Accruent/robotframework-zoomba/badge.svg?branch=master)](https://coveralls.io/github/Accruent/robotframework-zoomba?branch=master)
 [![CodeFactor](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba/badge)](https://www.codefactor.io/repository/github/accruent/robotframework-zoomba)
 [![Total alerts](https://img.shields.io/lgtm/alerts/g/Accruent/robotframework-zoomba.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/Accruent/robotframework-zoomba/alerts/)
diff --git a/docs/SOAPLibraryDocumentation.html b/docs/SOAPLibraryDocumentation.html
index c6e0891e..824e5f45 100644
--- a/docs/SOAPLibraryDocumentation.html
+++ b/docs/SOAPLibraryDocumentation.html
@@ -614,7 +614,7 @@
 jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
 </script>
 <script type="text/javascript">
-libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba SOAP Library\x3c/p>\n<p>This class is the base Library used to generate automated SOAP Tests in the Zoomba Automation Framework.\x3c/p>","generated":"2020-12-07 15:44:02","inits":[],"keywords":[{"args":["action=None","soap_object=None"],"doc":"<p>Call Soap Method. Calls soap method with list object\x3c/p>\n<p>action: (string) SOAP Action to be called.\x3c/p>\n<p>soap_object: (list) Soap Object in list format, list must be ordered wrt schema\x3c/p>","matched":true,"name":"Call Soap Method With List Object","shortdoc":"Call Soap Method. Calls soap method with list object ","tags":[]},{"args":["action=None","**soap_object"],"doc":"<p>Call Soap Method with dictionary object. Calls soap method\x3c/p>\n<p>action: (string) SOAP Action to be called.\x3c/p>\n<p>soap_object: (dict) Soap Object in dict format, dict must contain all required parts of schema object.\x3c/p>","matched":true,"name":"Call Soap Method With Object","shortdoc":"Call Soap Method with dictionary object. Calls soap method ","tags":[]},{"args":["soap_response=None"],"doc":"<p>Convert Soap Response To Dictionary: This keyword builds a dictionary from the sudsLibrary response\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Convert Soap Response To Json","shortdoc":"Convert Soap Response To Dictionary: This keyword builds a dictionary from the sudsLibrary response","tags":[]},{"args":["host=None","endpoint=None","alias=None","**kwargs"],"doc":"<p>Create Soap Session. This Keyword utilizes the WSDL to create a soap client.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>**kwargs: (optional) Parameters that could be included to add options to client creation. Current supported parameters are:\x3c/p>\n<p>set_location: http address\x3c/p>","matched":true,"name":"Create Soap Session","shortdoc":"Create Soap Session. This Keyword utilizes the WSDL to create a soap client.","tags":[]},{"args":["host=None","endpoint=None","alias=None","**kwargs"],"doc":"<p>Create Soap Session. This Keyword utilizes the WSDL and directly accesses calls from sudsLibrary.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>alias: (string} Sets the alias for the SudsLibrary Framework **kwargs: (optional) Parameters that could be included to add options to client creation. Current supported parameters are:\x3c/p>\n<p>set_location: http address\x3c/p>","matched":true,"name":"Create Soap Session And Fix Wsdl","shortdoc":"Create Soap Session. This Keyword utilizes the WSDL and directly accesses calls from sudsLibrary.","tags":[]},{"args":["host=None","endpoint=None","alias=None","set_location=None","fix=False"],"doc":"<p>Create Soap Session and Set Location. In addition to the client creation, this keyword sets the location as specified.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>set_location: (string) If set will overwrite the WSDL location with specified address.\x3c/p>\n<p>If set to None will replace location with host and endpoint specified\x3c/p>","matched":true,"name":"Create Soap Session And Set Location","shortdoc":"Create Soap Session and Set Location. In addition to the client creation, this keyword sets the location as specified.","tags":[]},{"args":["wsdl_type=None","object_dict=None"],"doc":"<p>Create Wsdl Objects. This Keyword utilizes the WSDL to create a WSDL object based on the information provided.\x3c/p>\n<p>wsdl_type: (string) Wsdl object to be created.\x3c/p>\n<p>object_dict: (dict) Python Dictionary containing values and nested dictionaries with construction similar to wsdl defined objects.\x3c/p>\n<p>return: (response object) Returns the SOAP client object.\x3c/p>","matched":true,"name":"Create Wsdl Objects","shortdoc":"Create Wsdl Objects. This Keyword utilizes the WSDL to create a WSDL object based on the information provided.","tags":[]}],"name":"SOAP_Library","named_args":true,"scope":"TEST","version":"2.7.1"};
+libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Zoomba SOAP Library\x3c/p>\n<p>This class is the base Library used to generate automated SOAP Tests in the Zoomba Automation Framework.\x3c/p>","generated":"2021-02-11 14:20:12","inits":[],"keywords":[{"args":["action=None","soap_object=None"],"doc":"<p>Call Soap Method. Calls soap method with list object\x3c/p>\n<p>action: (string) SOAP Action to be called.\x3c/p>\n<p>soap_object: (list) Soap Object in list format, list must be ordered wrt schema\x3c/p>","matched":true,"name":"Call Soap Method With List Object","shortdoc":"Call Soap Method. Calls soap method with list object ","tags":[]},{"args":["action=None","**soap_object"],"doc":"<p>Call Soap Method with dictionary object. Calls soap method\x3c/p>\n<p>action: (string) SOAP Action to be called.\x3c/p>\n<p>soap_object: (dict) Soap Object in dict format, dict must contain all required parts of schema object.\x3c/p>","matched":true,"name":"Call Soap Method With Object","shortdoc":"Call Soap Method with dictionary object. Calls soap method ","tags":[]},{"args":["soap_response=None"],"doc":"<p>Convert Soap Response To Dictionary: This keyword builds a dictionary from the sudsLibrary response\x3c/p>\n<p>json_actual_response: (request response object) The response from an API.\x3c/p>\n<p>return: There is no actual returned output, other than error messages when comparisons fail.\x3c/p>","matched":true,"name":"Convert Soap Response To Json","shortdoc":"Convert Soap Response To Dictionary: This keyword builds a dictionary from the sudsLibrary response","tags":[]},{"args":["host=None","endpoint=None","alias=None","**kwargs"],"doc":"<p>Create Soap Session. This Keyword utilizes the WSDL to create a soap client.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>**kwargs: (optional) Parameters that could be included to add options to client creation. Current supported parameters are:\x3c/p>\n<p>set_location: http address\x3c/p>","matched":true,"name":"Create Soap Session","shortdoc":"Create Soap Session. This Keyword utilizes the WSDL to create a soap client.","tags":[]},{"args":["host=None","endpoint=None","alias=None","**kwargs"],"doc":"<p>Create Soap Session. This Keyword utilizes the WSDL and directly accesses calls from sudsLibrary.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>alias: (string} Sets the alias for the SudsLibrary Framework **kwargs: (optional) Parameters that could be included to add options to client creation. Current supported parameters are:\x3c/p>\n<p>set_location: http address\x3c/p>","matched":true,"name":"Create Soap Session And Fix Wsdl","shortdoc":"Create Soap Session. This Keyword utilizes the WSDL and directly accesses calls from sudsLibrary.","tags":[]},{"args":["host=None","endpoint=None","alias=None","set_location=None","fix=False"],"doc":"<p>Create Soap Session and Set Location. In addition to the client creation, this keyword sets the location as specified.\x3c/p>\n<p>host: (string) The host url.\x3c/p>\n<p>endpoint: (string) SOAP API endpoint containing the actions to be referenced.\x3c/p>\n<p>set_location: (string) If set will overwrite the WSDL location with specified address.\x3c/p>\n<p>If set to None will replace location with host and endpoint specified\x3c/p>","matched":true,"name":"Create Soap Session And Set Location","shortdoc":"Create Soap Session and Set Location. In addition to the client creation, this keyword sets the location as specified.","tags":[]},{"args":["wsdl_type=None","object_dict=None"],"doc":"<p>Create Wsdl Objects. This Keyword utilizes the WSDL to create a WSDL object based on the information provided.\x3c/p>\n<p>wsdl_type: (string) Wsdl object to be created.\x3c/p>\n<p>object_dict: (dict) Python Dictionary containing values and nested dictionaries with construction similar to wsdl defined objects.\x3c/p>\n<p>return: (response object) Returns the SOAP client object.\x3c/p>","matched":true,"name":"Create Wsdl Objects","shortdoc":"Create Wsdl Objects. This Keyword utilizes the WSDL to create a WSDL object based on the information provided.","tags":[]}],"name":"SOAP_Library","named_args":true,"scope":"TEST","version":"2.7.3"};
 </script>
 <title></title>
 </head>


Test patch:
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
new file mode 100644
index 00000000..a9350d58
--- /dev/null
+++ b/.github/workflows/run-tests.yml
@@ -0,0 +1,42 @@
+name: run-tests
+on: [pull_request]
+jobs:
+  run-tests:
+    runs-on: ubuntu-latest
+    strategy:
+        matrix:
+          python-version: [ 3.6, 3.7, 3.8 ]
+          include:
+            - os: ubuntu-latest
+              set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
+    steps:
+      - uses: actions/checkout@v2
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v2
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install .
+          pip install coveralls mock pytest-cov
+          sudo apt-get update
+          sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
+
+      - name: Run Unit Tests
+        run: |
+          pytest --cov=src -v
+
+      - name: Run Robot Tests
+        run: |
+          ${{ matrix.set_display }}
+          robot -e BrokenORWindowsORMobile test
+
+      - name: Coveralls
+        env:
+          GITHUB_TOKEN: ${{ secrets.github_token }}
+          flag-name: run-${{ matrix.python-version }}
+          parallel: true
+        run: |
+          coveralls --service=github