robotframework-appiumlibrary


Namerobotframework-appiumlibrary JSON
Version 3.0.0 PyPI version JSON
download
home_pagehttps://github.com/serhatbolsu/robotframework-appiumlibrary
SummaryRobot Framework Mobile app testing library for Appium Client Android & iOS & Web
upload_time2025-07-30 00:38:49
maintainerNone
docs_urlNone
authorSerhat Bolsu, William Zhang, Xie Lieping, Jari Nurminen
requires_pythonNone
licenseApache License 2.0
keywords robotframework testing testautomation mobile appium webdriver app android ios
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            Appium library for RobotFramework
==================================================

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

AppiumLibrary_ is an appium testing library for `Robot Framework`_. Library can be downloaded from PyPI_.

It uses `Appium <http://appium.io/>`_ to communicate with Android and iOS application
similar to how *Selenium WebDriver* talks to web browser.

It is supporting Python 3.9+ and Appium Python Client 5.1.1+

.. image:: https://img.shields.io/pypi/v/robotframework-appiumlibrary.svg
    :target: https://pypi.python.org/pypi/robotframework-appiumlibrary/
    :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/dm/robotframework-appiumlibrary.svg
    :target: https://pypi.python.org/pypi/robotframework-appiumlibrary/
    :alt: Number of PyPI downloads

.. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
    :target: https://opensource.org/licenses/Apache-2.0
    :alt: License


.. contents::


Keyword Documentation
---------------------

See `Keyword Documentation`_ for available keywords and more information about the library in general.


Installation
------------

**Option 1**  (recommended)

The recommended installation method is using
`pip <http://pip-installer.org>`__::

    pip install --upgrade robotframework-appiumlibrary


**Option 2**  

It is possible to install directly from GitHub repository. To Install latest source
from the master branch, use this command:
`pip <http://pip-installer.org>`__::

  pip install git+https://github.com/serhatbolsu/robotframework-appiumlibrary.git

Please note that installation will take some time, because ``pip`` will
clone the `AppiumLibrary`_ project to a temporary directory and then
perform the installation.


See `Robot Framework installation instructions`_ for detailed information
about installing Python and Robot Framework itself.

Device Setup
------------
After installing the library, you still need to setup an simulator/emulator or real device to use in tests.
iOS and Android have separate paths to follow, and those steps better explained in `Appium Quickstart Intro`_.
Please follow the **Driver-Specific Setup** according to platform.

[*As we make updates to the AppiumLibrary we want to provide current and helpful documentation with regards
to setting up not only devices but the full development environment. I'll note personally I found this to be
a bit overwhelming and complex - doable but lengthy. Once source which greatly helped me is the*
`RoboCon 2024 workshop notes`_ *provide by the team at Eficode. This information may be incorporated here
in the future.*]

Usage
-----

To write tests with Robot Framework and AppiumLibrary, 
AppiumLibrary must be imported into your RF test suite.
See `Robot Framework User Guide <https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html>`_
for more information.

As it uses Appium make sure your Appium server is up and running.
For how to use Appium please refer to `Appium Quickstart Intro`_.

When using Robot Framework, it is generally recommended to write tests easy to read/modify.
The keywords provided in AppiumLibrary are pretty low level. It is thus typically a good idea to write tests using
Robot Framework's higher level keywords that utilize AppiumLibrary
keywords internally. This is illustrated by the following example
where AppiumLibrary keywords like ``Input Text`` are primarily
used by higher level keywords like ``Input Search Query``.

.. code:: robotframework

    *** Settings ***
    Documentation  Simple example using AppiumLibrary
    Library  AppiumLibrary

    *** Variables ***
    ${ANDROID_AUTOMATION_NAME}    UIAutomator2
    ${ANDROID_APP}                ${CURDIR}/demoapp/ApiDemos-debug.apk
    ${ANDROID_PLATFORM_NAME}      Android
    ${ANDROID_PLATFORM_VERSION}   %{ANDROID_PLATFORM_VERSION=11}

    *** Test Cases ***
    Should send keys to search box and then check the value
      Open Test Application
      Input Search Query  Hello World!
      Submit Search
      Search Query Should Be Matching  Hello World!


    *** Keywords ***
    Open Test Application
      Open Application  http://127.0.0.1:4723/wd/hub  automationName=${ANDROID_AUTOMATION_NAME}
      ...  platformName=${ANDROID_PLATFORM_NAME}  platformVersion=${ANDROID_PLATFORM_VERSION}
      ...  app=${ANDROID_APP}  appPackage=io.appium.android.apis  appActivity=.app.SearchInvoke

    Input Search Query
      [Arguments]  ${query}
      Input Text  txt_query_prefill  ${query}

    Submit Search
      Click Element  btn_start_search

    Search Query Should Be Matching
      [Arguments]  ${text}
      Wait Until Page Contains Element  android:id/search_src_text
      Element Text Should Be  android:id/search_src_text  ${text}

Create a file with the content above (name it: ``test_file.robot``) and execute::

    robot test_file.robot

The above example is single file test case, more examples can be found in a `sample project`_ that illustrates using
Robot Framework and AppiumLibrary. Check the sample project that you can find examples of mobile web & ios & android.

Contributing
-------------
Fork the project, make a change, and send a pull request!

Project Contributors
--------------------

==============    ====================   ==================================
William Zhang     akupahkala             Arnaud Ruffin
Serhat Bolsu      soukingang             Junuen Villa
Xie Lieping       Erik Bartalos          Tanakiat Srisaranyakul
Joshua Rivera     Minh Nguyen            Thiago Paiva Brito
js361014          Sadik Kuzu             Jonathan Gayvallet
matthew-dahm      KumarS                 jennyw1
JMcn              Xia Clark              ac-simoes
Ulhas Deshmukh    Leon Guo               Pramod
smaspe            eXtReMaL               Erol Selitektay
Filipe Arruda     Felipe Luiz Tortella   Filipe Henrique Benjamim de Arruda
Gaja              Gabriela Simion        Christoph Singer
Ed Manlove
==============    ====================   ==================================


AppiumLibrary is modeled after (and forked from)  `appiumandroidlibrary <https://github.com/frankbp/robotframework-appiumandroidlibrary>`_,  but re-implemented to use appium 1.X technologies.


.. _AppiumLibrary: https://github.com/serhatbolsu/robotframework-appiumlibrary
.. _Robot Framework: https://robotframework.org
.. _Keyword Documentation: http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html
.. _PyPI: https://pypi.org/project/robotframework-appiumlibrary/
.. _Robot Framework installation instructions: https://github.com/robotframework/robotframework/blob/master/INSTALL.rst
.. _Appium Quickstart Intro: https://appium.io/docs/en/latest/quickstart/
.. _sample project: https://github.com/serhatbolsu/robotframework-appium-sample
.. _RoboCon 2024 workshop notes: https://github.com/eficode-academy/rf-mobile-testing-appium?tab=readme-ov-file#robocon-2024

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/serhatbolsu/robotframework-appiumlibrary",
    "name": "robotframework-appiumlibrary",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "robotframework testing testautomation mobile appium webdriver app android ios",
    "author": "Serhat Bolsu, William Zhang, Xie Lieping, Jari Nurminen",
    "author_email": "serhatbolsu@gmail.com,jollychang@gmail.com,frankbp@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/22/48/8bd641a7f813874462d2152124ad536f1f2da89be224be75fe1bb5650d81/robotframework_appiumlibrary-3.0.0.tar.gz",
    "platform": "any",
    "description": "Appium library for RobotFramework\n==================================================\n\nIntroduction\n------------\n\nAppiumLibrary_ is an appium testing library for `Robot Framework`_. Library can be downloaded from PyPI_.\n\nIt uses `Appium <http://appium.io/>`_ to communicate with Android and iOS application\nsimilar to how *Selenium WebDriver* talks to web browser.\n\nIt is supporting Python 3.9+ and Appium Python Client 5.1.1+\n\n.. image:: https://img.shields.io/pypi/v/robotframework-appiumlibrary.svg\n    :target: https://pypi.python.org/pypi/robotframework-appiumlibrary/\n    :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/dm/robotframework-appiumlibrary.svg\n    :target: https://pypi.python.org/pypi/robotframework-appiumlibrary/\n    :alt: Number of PyPI downloads\n\n.. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg\n    :target: https://opensource.org/licenses/Apache-2.0\n    :alt: License\n\n\n.. contents::\n\n\nKeyword Documentation\n---------------------\n\nSee `Keyword Documentation`_ for available keywords and more information about the library in general.\n\n\nInstallation\n------------\n\n**Option 1**  (recommended)\n\nThe recommended installation method is using\n`pip <http://pip-installer.org>`__::\n\n    pip install --upgrade robotframework-appiumlibrary\n\n\n**Option 2**  \n\nIt is possible to install directly from GitHub repository. To Install latest source\nfrom the master branch, use this command:\n`pip <http://pip-installer.org>`__::\n\n  pip install git+https://github.com/serhatbolsu/robotframework-appiumlibrary.git\n\nPlease note that installation will take some time, because ``pip`` will\nclone the `AppiumLibrary`_ project to a temporary directory and then\nperform the installation.\n\n\nSee `Robot Framework installation instructions`_ for detailed information\nabout installing Python and Robot Framework itself.\n\nDevice Setup\n------------\nAfter installing the library, you still need to setup an simulator/emulator or real device to use in tests.\niOS and Android have separate paths to follow, and those steps better explained in `Appium Quickstart Intro`_.\nPlease follow the **Driver-Specific Setup** according to platform.\n\n[*As we make updates to the AppiumLibrary we want to provide current and helpful documentation with regards\nto setting up not only devices but the full development environment. I'll note personally I found this to be\na bit overwhelming and complex - doable but lengthy. Once source which greatly helped me is the*\n`RoboCon 2024 workshop notes`_ *provide by the team at Eficode. This information may be incorporated here\nin the future.*]\n\nUsage\n-----\n\nTo write tests with Robot Framework and AppiumLibrary, \nAppiumLibrary must be imported into your RF test suite.\nSee `Robot Framework User Guide <https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html>`_\nfor more information.\n\nAs it uses Appium make sure your Appium server is up and running.\nFor how to use Appium please refer to `Appium Quickstart Intro`_.\n\nWhen using Robot Framework, it is generally recommended to write tests easy to read/modify.\nThe keywords provided in AppiumLibrary are pretty low level. It is thus typically a good idea to write tests using\nRobot Framework's higher level keywords that utilize AppiumLibrary\nkeywords internally. This is illustrated by the following example\nwhere AppiumLibrary keywords like ``Input Text`` are primarily\nused by higher level keywords like ``Input Search Query``.\n\n.. code:: robotframework\n\n    *** Settings ***\n    Documentation  Simple example using AppiumLibrary\n    Library  AppiumLibrary\n\n    *** Variables ***\n    ${ANDROID_AUTOMATION_NAME}    UIAutomator2\n    ${ANDROID_APP}                ${CURDIR}/demoapp/ApiDemos-debug.apk\n    ${ANDROID_PLATFORM_NAME}      Android\n    ${ANDROID_PLATFORM_VERSION}   %{ANDROID_PLATFORM_VERSION=11}\n\n    *** Test Cases ***\n    Should send keys to search box and then check the value\n      Open Test Application\n      Input Search Query  Hello World!\n      Submit Search\n      Search Query Should Be Matching  Hello World!\n\n\n    *** Keywords ***\n    Open Test Application\n      Open Application  http://127.0.0.1:4723/wd/hub  automationName=${ANDROID_AUTOMATION_NAME}\n      ...  platformName=${ANDROID_PLATFORM_NAME}  platformVersion=${ANDROID_PLATFORM_VERSION}\n      ...  app=${ANDROID_APP}  appPackage=io.appium.android.apis  appActivity=.app.SearchInvoke\n\n    Input Search Query\n      [Arguments]  ${query}\n      Input Text  txt_query_prefill  ${query}\n\n    Submit Search\n      Click Element  btn_start_search\n\n    Search Query Should Be Matching\n      [Arguments]  ${text}\n      Wait Until Page Contains Element  android:id/search_src_text\n      Element Text Should Be  android:id/search_src_text  ${text}\n\nCreate a file with the content above (name it: ``test_file.robot``) and execute::\n\n    robot test_file.robot\n\nThe above example is single file test case, more examples can be found in a `sample project`_ that illustrates using\nRobot Framework and AppiumLibrary. Check the sample project that you can find examples of mobile web & ios & android.\n\nContributing\n-------------\nFork the project, make a change, and send a pull request!\n\nProject Contributors\n--------------------\n\n==============    ====================   ==================================\nWilliam Zhang     akupahkala             Arnaud Ruffin\nSerhat Bolsu      soukingang             Junuen Villa\nXie Lieping       Erik Bartalos          Tanakiat Srisaranyakul\nJoshua Rivera     Minh Nguyen            Thiago Paiva Brito\njs361014          Sadik Kuzu             Jonathan Gayvallet\nmatthew-dahm      KumarS                 jennyw1\nJMcn              Xia Clark              ac-simoes\nUlhas Deshmukh    Leon Guo               Pramod\nsmaspe            eXtReMaL               Erol Selitektay\nFilipe Arruda     Felipe Luiz Tortella   Filipe Henrique Benjamim de Arruda\nGaja              Gabriela Simion        Christoph Singer\nEd Manlove\n==============    ====================   ==================================\n\n\nAppiumLibrary is modeled after (and forked from)  `appiumandroidlibrary <https://github.com/frankbp/robotframework-appiumandroidlibrary>`_,  but re-implemented to use appium 1.X technologies.\n\n\n.. _AppiumLibrary: https://github.com/serhatbolsu/robotframework-appiumlibrary\n.. _Robot Framework: https://robotframework.org\n.. _Keyword Documentation: http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html\n.. _PyPI: https://pypi.org/project/robotframework-appiumlibrary/\n.. _Robot Framework installation instructions: https://github.com/robotframework/robotframework/blob/master/INSTALL.rst\n.. _Appium Quickstart Intro: https://appium.io/docs/en/latest/quickstart/\n.. _sample project: https://github.com/serhatbolsu/robotframework-appium-sample\n.. _RoboCon 2024 workshop notes: https://github.com/eficode-academy/rf-mobile-testing-appium?tab=readme-ov-file#robocon-2024\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Robot Framework Mobile app testing library for Appium Client Android & iOS & Web",
    "version": "3.0.0",
    "project_urls": {
        "Homepage": "https://github.com/serhatbolsu/robotframework-appiumlibrary"
    },
    "split_keywords": [
        "robotframework",
        "testing",
        "testautomation",
        "mobile",
        "appium",
        "webdriver",
        "app",
        "android",
        "ios"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4e200c89682a35634646595ece30041a871c758c691bbdb8d839c1a277f9b72a",
                "md5": "d768113ca56adfc01850ea1f0e5ac6fa",
                "sha256": "983dadd64c6cef1b306bb4839515ee21e5f38cd0a9828876e2f7efaf77fe69bd"
            },
            "downloads": -1,
            "filename": "robotframework_appiumlibrary-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d768113ca56adfc01850ea1f0e5ac6fa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 39368,
            "upload_time": "2025-07-30T00:38:48",
            "upload_time_iso_8601": "2025-07-30T00:38:48.148512Z",
            "url": "https://files.pythonhosted.org/packages/4e/20/0c89682a35634646595ece30041a871c758c691bbdb8d839c1a277f9b72a/robotframework_appiumlibrary-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "22488bd641a7f813874462d2152124ad536f1f2da89be224be75fe1bb5650d81",
                "md5": "fe72c7e9795fb901c8f7a53ab6210056",
                "sha256": "7341f2ca78ad8a7f4122ac45fec4bf1d9a9eb84d50f1ef98617393acabe8a275"
            },
            "downloads": -1,
            "filename": "robotframework_appiumlibrary-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "fe72c7e9795fb901c8f7a53ab6210056",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 33724,
            "upload_time": "2025-07-30T00:38:49",
            "upload_time_iso_8601": "2025-07-30T00:38:49.190601Z",
            "url": "https://files.pythonhosted.org/packages/22/48/8bd641a7f813874462d2152124ad536f1f2da89be224be75fe1bb5650d81/robotframework_appiumlibrary-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-30 00:38:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "serhatbolsu",
    "github_project": "robotframework-appiumlibrary",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "lcname": "robotframework-appiumlibrary"
}
        
Elapsed time: 2.48350s