robotframework-applicationlibrary


Namerobotframework-applicationlibrary JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://github.com/Accruent/robotframework-applicationlibrary
SummaryRobot Framework framework for mobile and desktop testing.
upload_time2023-06-12 19:44:33
maintainerBrandon Wolfe, Neil Howell, Matt Bozek, Pinky Majhi
docs_urlNone
author
requires_python
licenseGPL-3.0
keywords robot framework robot-framework selenium appium winappdriver appium robotframeworkdesktop windows zoomba python robotframework-library appium-windows appiumlibraryappium-mobile mobile applicationlibrary application app lib
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            robotframework-applicationlibrary
===========
[![PyPI version](https://badge.fury.io/py/robotframework-applicationlibrary.svg)](https://badge.fury.io/py/robotframework-applicationlibrary)
[![Downloads](https://pepy.tech/badge/robotframework-applicationlibrary)](https://pepy.tech/project/robotframework-applicationlibrary)
[![Build Status](https://github.com/Accruent/robotframework-applicationlibrary/workflows/tests/badge.svg?branch=master)](https://github.com/Accruent/robotframework-applicationlibrary/actions?query=workflow%3Atests)
[![Coverage Status](https://coveralls.io/repos/github/Accruent/robotframework-applicationlibrary/badge.svg?branch=master)](https://coveralls.io/github/Accruent/robotframework-applicationlibrary?branch=master)
[![CodeFactor](https://www.codefactor.io/repository/github/accruent/robotframework-applicationlibrary/badge)](https://www.codefactor.io/repository/github/accruent/robotframework-applicationlibrary)

Introduction
--------------

Robotframework-ApplicationLibrary is a collection of libraries spanning Mobile and Windows Desktop (WinAppDriver) automation using [Robot Framework](https://github.com/robotframework/robotframework).
These libraries are and extensions of the existing [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary). ApplicationLibrary extends the functionality 
of AppiumLibrary for Mobile app testing and adds support Windows desktop automation.

In the course of our own automation as a team, we found that out-of-the-box AppiumLibrary did not fit our needs for mobile testing and needed major rework inorder to get it working with WinAppDriver for Desktop testing.
Originally this code was a part of [RobotFramework-Zoomba](https://github.com/Accruent/robotframework-zoomba) but diverging dependency requirements lead to a need for two separate repositories.

See the **Keyword Documentation** for the [Mobile](https://accruent.github.io/robotframework-applicationlibrary/MobileLibraryDocumentation.html) or [Desktop](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html) libraries for more specific information about the functionality.

Example tests can be found in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).

Some Features of the Library
--------------
#### [Mobile Library](https://accruent.github.io/robotframework-applicationlibrary/MobileLibraryDocumentation.html):
Extending the [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) we added some quality of life 'Wait For And' type keywords:
```robotframework
Wait For And Click Element      locator
Wait For And Click Text         text
Wait Until Element Contains     locator     text
```
As well as additional features that have yet to be implemented in AppiumLibrary:
```robotframework
Drag and Drop      source_locator     target_locator
Drag And Drop By Offset     locator    x_offset     y_offset
Scroll Down To Text       text
Scroll Up To Text         text
```

#### [Desktop Library](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html):
Also extends [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) to tailor it Windows desktop automation. This includes enhancements to base keywords such as [Open Application](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html#Open%20Application) or [Click Element](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html#Click%20Element) to perform better for windows. Other notable additions include:

Start and Stop the WinAppDriver as needed (best used for suite setup/teardown):
```robotframework
Driver Setup
Driver Teardown
```
Easily switching to new windows or the desktop session:
```robotframework
Switch Application      Desktop
Switch Application By Name     remote_url    new_window_name
```
A variety of keywords for controlling the mouse:
```robotframework
Mouse Over Element     locator
Mouse Over and Click Element    locator
Mouse over and Context Click Element    locator
Mouse Over By Offset     x_offset    y_offset
```
Keywords for dragging and dropping:
```robotframework
Drag and Drop      source_locator     target_locator
Drag And Drop By Offset     locator    x_offset     y_offset
```
The ability to send key commands to the application:
```robotframework
Send Keys     \\ue00      p     \\ue00
Send Keys To Element    locator     a     b     c
```
Selecting an element from a combobox or a menu:
```robotframework
Select Element From ComboBox     combobox_locator      element_locator
Select Elements From Menu     locator_1    locator_2   locator_n
Select Elements From Context Menu     locator_1    locator_2   locator_n
```

Selecting an element by an image file (Appium v1.18.0 and higher only):
```robotframework
Wait For And Click Element     image=file.png
```

For WebView2 applications we can control both the application view and the Edge browser view:

<a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/3010366/122806407-e4759700-d28f-11eb-8b72-779660606d9f.gif"><img src="https://user-images.githubusercontent.com/3010366/122806407-e4759700-d28f-11eb-8b72-779660606d9f.gif" alt="rbmzmun3cR" style="max-width:60%;"></a>

With the split from [RobotFramework-Zoomba](https://github.com/Accruent/robotframework-zoomba), the support for this exact example won't work in this current code. An example of this [can be found in the samples directory for robotframework-zoomba version 2.14.3 or lower](https://github.com/Accruent/robotframework-zoomba/blob/2.14.3/samples/WebView-DesktopTest.robot).

Getting Started
----------------

The Application library is easily installed using the [`setup.py`](https://github.com/Accruent/robotframework-applicationlibrary/blob/master/setup.py) file in the home directory.
Simply run the following command to install ApplicationLibrary and it's dependencies:

```python
pip install robotframework-applicationlibrary
```

If you decide to pull the repo locally to make contributions or just want to play around with the code
you can install ApplicationLibrary by running the following from the *root directory*:
```python
pip install .
```

or if you intend to run unit tests:
```python
pip install .[testing]
```

To access the keywords in the library simply add the following to your robot file settings (depending on what you are testing):
```python
*** Settings ***
Library    ApplicationLibrary.MobileLibrary
Library    ApplicationLibrary.DesktopLibrary
```

Additional Setup Information
---------------------------------

If you plan to run Mobile automation you will need to have a running appium server. To do so first have [Node](https://nodejs.org/en/download/)
installed and then run the following:
```python
npm install -g appium
appium
```

To use the `image` locator strategy you will need to install [opencv4nodejs](https://github.com/justadudewhohacks/opencv4nodejs) via the following command:
```python
npm install -g opencv4nodejs
```

Alternatively [Appium Desktop](https://github.com/appium/appium-desktop/releases) can be used.

For Windows automation we suggest [installing and using the WinAppDriver](https://github.com/Microsoft/WinAppDriver/releases) without Appium as it seems to be a bit faster and more stable.

Make sure to [enable developer mode on your system](https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/#:~:text=How%20to%20Enable%20Developer%20Mode,be%20put%20into%20Developer%20Mode.) to allow the WinAppDriver to work.

Examples
------------
Example tests can be found in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).

The [test directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/test) may also contain tests but be aware that these are used for testing releases and may not be as straight forward to use as the ones in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).


Contributing
-----------------

To make contributions please refer to the [CONTRIBUTING](https://github.com/Accruent/robotframework-applicationlibrary/blob/master/CONTRIBUTING.rst) guidelines.

See the [.githooks](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/.githooks) directory for scripts to help in development. 

Support
---------------
General Robot Framework questions should be directed to the [community forum](https://forum.robotframework.org/).

For questions and issues specific to ApplicationLibrary please create an [issue](https://github.com/Accruent/robotframework-applicationlibrary/issues) here on Github.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Accruent/robotframework-applicationlibrary",
    "name": "robotframework-applicationlibrary",
    "maintainer": "Brandon Wolfe, Neil Howell, Matt Bozek, Pinky Majhi",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "robosquad@accruent.com",
    "keywords": "Robot Framework robot-framework selenium appium winappdriver appium robotframeworkdesktop windows zoomba python robotframework-library appium-windows appiumlibraryappium-mobile mobile applicationlibrary application app lib",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/9b/68/d3b5a29dd130a0eda1cf7c500174ca644c44394e1e98e6e54db99bba0a1f/robotframework-applicationlibrary-1.2.0.tar.gz",
    "platform": "any",
    "description": "robotframework-applicationlibrary\n===========\n[![PyPI version](https://badge.fury.io/py/robotframework-applicationlibrary.svg)](https://badge.fury.io/py/robotframework-applicationlibrary)\n[![Downloads](https://pepy.tech/badge/robotframework-applicationlibrary)](https://pepy.tech/project/robotframework-applicationlibrary)\n[![Build Status](https://github.com/Accruent/robotframework-applicationlibrary/workflows/tests/badge.svg?branch=master)](https://github.com/Accruent/robotframework-applicationlibrary/actions?query=workflow%3Atests)\n[![Coverage Status](https://coveralls.io/repos/github/Accruent/robotframework-applicationlibrary/badge.svg?branch=master)](https://coveralls.io/github/Accruent/robotframework-applicationlibrary?branch=master)\n[![CodeFactor](https://www.codefactor.io/repository/github/accruent/robotframework-applicationlibrary/badge)](https://www.codefactor.io/repository/github/accruent/robotframework-applicationlibrary)\n\nIntroduction\n--------------\n\nRobotframework-ApplicationLibrary is a collection of libraries spanning Mobile and Windows Desktop (WinAppDriver) automation using [Robot Framework](https://github.com/robotframework/robotframework).\nThese libraries are and extensions of the existing [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary). ApplicationLibrary extends the functionality \nof AppiumLibrary for Mobile app testing and adds support Windows desktop automation.\n\nIn the course of our own automation as a team, we found that out-of-the-box AppiumLibrary did not fit our needs for mobile testing and needed major rework inorder to get it working with WinAppDriver for Desktop testing.\nOriginally this code was a part of [RobotFramework-Zoomba](https://github.com/Accruent/robotframework-zoomba) but diverging dependency requirements lead to a need for two separate repositories.\n\nSee the **Keyword Documentation** for the [Mobile](https://accruent.github.io/robotframework-applicationlibrary/MobileLibraryDocumentation.html) or [Desktop](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html) libraries for more specific information about the functionality.\n\nExample tests can be found in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).\n\nSome Features of the Library\n--------------\n#### [Mobile Library](https://accruent.github.io/robotframework-applicationlibrary/MobileLibraryDocumentation.html):\nExtending the [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) we added some quality of life 'Wait For And' type keywords:\n```robotframework\nWait For And Click Element      locator\nWait For And Click Text         text\nWait Until Element Contains     locator     text\n```\nAs well as additional features that have yet to be implemented in AppiumLibrary:\n```robotframework\nDrag and Drop      source_locator     target_locator\nDrag And Drop By Offset     locator    x_offset     y_offset\nScroll Down To Text       text\nScroll Up To Text         text\n```\n\n#### [Desktop Library](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html):\nAlso extends [AppiumLibrary](https://github.com/serhatbolsu/robotframework-appiumlibrary) to tailor it Windows desktop automation. This includes enhancements to base keywords such as [Open Application](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html#Open%20Application) or [Click Element](https://accruent.github.io/robotframework-applicationlibrary/DesktopLibraryDocumentation.html#Click%20Element) to perform better for windows. Other notable additions include:\n\nStart and Stop the WinAppDriver as needed (best used for suite setup/teardown):\n```robotframework\nDriver Setup\nDriver Teardown\n```\nEasily switching to new windows or the desktop session:\n```robotframework\nSwitch Application      Desktop\nSwitch Application By Name     remote_url    new_window_name\n```\nA variety of keywords for controlling the mouse:\n```robotframework\nMouse Over Element     locator\nMouse Over and Click Element    locator\nMouse over and Context Click Element    locator\nMouse Over By Offset     x_offset    y_offset\n```\nKeywords for dragging and dropping:\n```robotframework\nDrag and Drop      source_locator     target_locator\nDrag And Drop By Offset     locator    x_offset     y_offset\n```\nThe ability to send key commands to the application:\n```robotframework\nSend Keys     \\\\ue00      p     \\\\ue00\nSend Keys To Element    locator     a     b     c\n```\nSelecting an element from a combobox or a menu:\n```robotframework\nSelect Element From ComboBox     combobox_locator      element_locator\nSelect Elements From Menu     locator_1    locator_2   locator_n\nSelect Elements From Context Menu     locator_1    locator_2   locator_n\n```\n\nSelecting an element by an image file (Appium v1.18.0 and higher only):\n```robotframework\nWait For And Click Element     image=file.png\n```\n\nFor WebView2 applications we can control both the application view and the Edge browser view:\n\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://user-images.githubusercontent.com/3010366/122806407-e4759700-d28f-11eb-8b72-779660606d9f.gif\"><img src=\"https://user-images.githubusercontent.com/3010366/122806407-e4759700-d28f-11eb-8b72-779660606d9f.gif\" alt=\"rbmzmun3cR\" style=\"max-width:60%;\"></a>\n\nWith the split from [RobotFramework-Zoomba](https://github.com/Accruent/robotframework-zoomba), the support for this exact example won't work in this current code. An example of this [can be found in the samples directory for robotframework-zoomba version 2.14.3 or lower](https://github.com/Accruent/robotframework-zoomba/blob/2.14.3/samples/WebView-DesktopTest.robot).\n\nGetting Started\n----------------\n\nThe Application library is easily installed using the [`setup.py`](https://github.com/Accruent/robotframework-applicationlibrary/blob/master/setup.py) file in the home directory.\nSimply run the following command to install ApplicationLibrary and it's dependencies:\n\n```python\npip install robotframework-applicationlibrary\n```\n\nIf you decide to pull the repo locally to make contributions or just want to play around with the code\nyou can install ApplicationLibrary by running the following from the *root directory*:\n```python\npip install .\n```\n\nor if you intend to run unit tests:\n```python\npip install .[testing]\n```\n\nTo access the keywords in the library simply add the following to your robot file settings (depending on what you are testing):\n```python\n*** Settings ***\nLibrary    ApplicationLibrary.MobileLibrary\nLibrary    ApplicationLibrary.DesktopLibrary\n```\n\nAdditional Setup Information\n---------------------------------\n\nIf you plan to run Mobile automation you will need to have a running appium server. To do so first have [Node](https://nodejs.org/en/download/)\ninstalled and then run the following:\n```python\nnpm install -g appium\nappium\n```\n\nTo use the `image` locator strategy you will need to install [opencv4nodejs](https://github.com/justadudewhohacks/opencv4nodejs) via the following command:\n```python\nnpm install -g opencv4nodejs\n```\n\nAlternatively [Appium Desktop](https://github.com/appium/appium-desktop/releases) can be used.\n\nFor Windows automation we suggest [installing and using the WinAppDriver](https://github.com/Microsoft/WinAppDriver/releases) without Appium as it seems to be a bit faster and more stable.\n\nMake sure to [enable developer mode on your system](https://www.howtogeek.com/292914/what-is-developer-mode-in-windows-10/#:~:text=How%20to%20Enable%20Developer%20Mode,be%20put%20into%20Developer%20Mode.) to allow the WinAppDriver to work.\n\nExamples\n------------\nExample tests can be found in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).\n\nThe [test directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/test) may also contain tests but be aware that these are used for testing releases and may not be as straight forward to use as the ones in the [samples directory](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/samples).\n\n\nContributing\n-----------------\n\nTo make contributions please refer to the [CONTRIBUTING](https://github.com/Accruent/robotframework-applicationlibrary/blob/master/CONTRIBUTING.rst) guidelines.\n\nSee the [.githooks](https://github.com/Accruent/robotframework-applicationlibrary/tree/master/.githooks) directory for scripts to help in development. \n\nSupport\n---------------\nGeneral Robot Framework questions should be directed to the [community forum](https://forum.robotframework.org/).\n\nFor questions and issues specific to ApplicationLibrary please create an [issue](https://github.com/Accruent/robotframework-applicationlibrary/issues) here on Github.\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Robot Framework framework for mobile and desktop testing.",
    "version": "1.2.0",
    "project_urls": {
        "Homepage": "https://github.com/Accruent/robotframework-applicationlibrary"
    },
    "split_keywords": [
        "robot",
        "framework",
        "robot-framework",
        "selenium",
        "appium",
        "winappdriver",
        "appium",
        "robotframeworkdesktop",
        "windows",
        "zoomba",
        "python",
        "robotframework-library",
        "appium-windows",
        "appiumlibraryappium-mobile",
        "mobile",
        "applicationlibrary",
        "application",
        "app",
        "lib"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "300b086c77a4ec3c9d9f971b54b031469ef868525e6b06fa5b16c8b7e722e9ee",
                "md5": "ba19da7d7468e68f3d770bdc2fbd5a63",
                "sha256": "9ecf88c05c5a9e775ac4180635a6d78d508efd37ec95ed56af75d64d40d7a4ae"
            },
            "downloads": -1,
            "filename": "robotframework_applicationlibrary-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ba19da7d7468e68f3d770bdc2fbd5a63",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 26984,
            "upload_time": "2023-06-12T19:44:32",
            "upload_time_iso_8601": "2023-06-12T19:44:32.265579Z",
            "url": "https://files.pythonhosted.org/packages/30/0b/086c77a4ec3c9d9f971b54b031469ef868525e6b06fa5b16c8b7e722e9ee/robotframework_applicationlibrary-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b68d3b5a29dd130a0eda1cf7c500174ca644c44394e1e98e6e54db99bba0a1f",
                "md5": "31a3a740fa3a57ae746a0dc85dc438bf",
                "sha256": "6889ab0f0916371b28405de39a56bb32ccbc9cd499a7cd96c52e60fd07dd2dee"
            },
            "downloads": -1,
            "filename": "robotframework-applicationlibrary-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "31a3a740fa3a57ae746a0dc85dc438bf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 27331,
            "upload_time": "2023-06-12T19:44:33",
            "upload_time_iso_8601": "2023-06-12T19:44:33.331519Z",
            "url": "https://files.pythonhosted.org/packages/9b/68/d3b5a29dd130a0eda1cf7c500174ca644c44394e1e98e6e54db99bba0a1f/robotframework-applicationlibrary-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-12 19:44:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Accruent",
    "github_project": "robotframework-applicationlibrary",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "robotframework-applicationlibrary"
}
        
Elapsed time: 1.85104s