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
Eslam Elmishtawy 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": null,
"name": "robotframework-appiumlibrary",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": "Gabriela Simion <gabriela28simion@gmail.com>, Christoph Singer <ch_singer@me.com>, Ed Manlove <emanlove@verizon.net>",
"keywords": "robotframework, testing, testautomation, mobile, appium, webdriver, app, android, ios",
"author": "MarketSquare - Robot Framework community, William Zhang, Serhat Bolsu",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/45/f9/45a445841abcbe575c07f0f7eeb026f2c7be10304ff0c570850ac2942e17/robotframework_appiumlibrary-3.1.tar.gz",
"platform": null,
"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\nEslam Elmishtawy Ed 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": null,
"summary": "Robot Framework Mobile app testing library for Appium Client Android & iOS & Web",
"version": "3.1",
"project_urls": {
"Changelog": "https://github.com/serhatbolsu/robotframework-appiumlibrary/blob/master/CHANGES.rst",
"Documentation": "https://github.com/serhatbolsu/robotframework-appiumlibrary?tab=readme-ov-file#appium-library-for-robotframework",
"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": "5e35bca0799b2fc60177ba6d597a06fbf893febacc29da6e6e37b38bfc8e58a8",
"md5": "38efb4bf50bcd84ce401303d3d0efcca",
"sha256": "a20e7179e6652506c4b1b286f9030c832d6ddb38ae48bd42030350aad12f14ce"
},
"downloads": -1,
"filename": "robotframework_appiumlibrary-3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "38efb4bf50bcd84ce401303d3d0efcca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 46870,
"upload_time": "2025-08-18T11:23:31",
"upload_time_iso_8601": "2025-08-18T11:23:31.488356Z",
"url": "https://files.pythonhosted.org/packages/5e/35/bca0799b2fc60177ba6d597a06fbf893febacc29da6e6e37b38bfc8e58a8/robotframework_appiumlibrary-3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "45f945a445841abcbe575c07f0f7eeb026f2c7be10304ff0c570850ac2942e17",
"md5": "aef7198c18a0811052d565dcef7178b1",
"sha256": "1a8a262f1d1a32122d7fcb2e504bad9e370f23a6138c1147468baddcd92a29b6"
},
"downloads": -1,
"filename": "robotframework_appiumlibrary-3.1.tar.gz",
"has_sig": false,
"md5_digest": "aef7198c18a0811052d565dcef7178b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39339,
"upload_time": "2025-08-18T11:23:32",
"upload_time_iso_8601": "2025-08-18T11:23:32.819663Z",
"url": "https://files.pythonhosted.org/packages/45/f9/45a445841abcbe575c07f0f7eeb026f2c7be10304ff0c570850ac2942e17/robotframework_appiumlibrary-3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-18 11:23:32",
"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"
}