{"id":8600,"library":"robotframework-appiumlibrary","title":"Robot Framework Appium Library","description":"Robot Framework Appium Library is a mobile app testing library for Robot Framework, enabling test automation for Android and iOS applications. It acts as an Appium client, communicating with the Appium server to control mobile devices, similar to how Selenium WebDriver interacts with web browsers. The library is actively maintained, with frequent updates, including recent major versions that bring compatibility with newer Python, Appium Python Client, Selenium, and Robot Framework versions.","status":"active","version":"3.2.1","language":"en","source_language":"en","source_url":"https://github.com/serhatbolsu/robotframework-appiumlibrary","tags":["robot framework","appium","mobile testing","automation","android","ios"],"install":[{"cmd":"pip install robotframework-appiumlibrary","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Required for running Robot Framework and the library.","package":"python","version":">=3.9, <3.14"},{"reason":"The core test automation framework.","package":"robotframework","version":">=7.4"},{"reason":"Python client for Appium, used for communicating with the Appium server.","package":"Appium-Python-Client","version":">=5.1.1"},{"reason":"Underlying WebDriver capabilities are leveraged by Appium.","package":"selenium","version":">=4.26.0"}],"imports":[{"note":"Imported in the 'Settings' section of a Robot Framework test file.","symbol":"AppiumLibrary","correct":"*** Settings ***\nLibrary    AppiumLibrary"}],"quickstart":{"code":"*** Settings ***\nDocumentation    Simple example using AppiumLibrary.\nLibrary          AppiumLibrary\n\n*** Variables ***\n${APPIUM_SERVER_URL}      http://127.0.0.1:4723/wd/hub\n${ANDROID_AUTOMATION_NAME}    UIAutomator2\n${ANDROID_PLATFORM_NAME}      Android\n${ANDROID_PLATFORM_VERSION}    %{ANDROID_PLATFORM_VERSION=11}  # Example: read from ENV or default to 11\n${ANDROID_APP}            ${CURDIR}/demoapp/ApiDemos-debug.apk  # Replace with your app path\n\n*** Test Cases ***\nShould Open And Close Test Application\n    Open Test Application\n    Sleep    3s\n    Close Application\n\n*** Keywords ***\nOpen Test Application\n    Open Application    ${APPIUM_SERVER_URL}\n    ...    automationName=${ANDROID_AUTOMATION_NAME}\n    ...    platformName=${ANDROID_PLATFORM_NAME}\n    ...    platformVersion=${ANDROID_PLATFORM_VERSION}\n    ...    app=${ANDROID_APP}\n    ...    appPackage=io.appium.android.apis\n    ...    appActivity=.app.SearchInvoke","lang":"robotframework","description":"This Robot Framework example demonstrates opening and closing a sample Android application using AppiumLibrary. Before running, ensure an Appium server is running (e.g., on http://127.0.0.1:4723) and a compatible Android emulator/device is set up with developer options enabled. The `ANDROID_APP` variable should point to your application's `.apk` file. The `Open Application` keyword initializes the session with desired capabilities."},"warnings":[{"fix":"Migrate to new assertion keywords like `Expect Element` and `Expect Text` (replacing `Element Should Be Enabled/Disabled/Visible`, `Text Should Be Visible`). For element attribute checks, use `Element Attribute Should Match`. For `Long Press`, the `Tap` keyword now supports a time parameter.","message":"Keywords like `Reset Application`, `Element Name Should Be`, `Element Value Should Be`, `Zoom`, and `Long Press` were removed in AppiumLibrary v3.2.1/v3.2. Existing tests using these will fail.","severity":"breaking","affected_versions":">=3.2.0"},{"fix":"Replace removed keywords with their modern alternatives (e.g., `Click Button` -> `Click Element`). For `Launch Application` and `Quit Application`, consider `Activate Application` and `Close Application` respectively. Adjust `Swipe` calls to use named arguments.","message":"AppiumLibrary v3.0.0 removed several keywords including `Click A Point`, `Click Element At Coordinates`, `Launch Application`, `Quit Application`, `Background App`, `Click Button`, and `Pinch`. The `Swipe` keyword now strictly requires named arguments.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Refactor tests to use newer W3C ActionChain-based keywords for complex gestures and adopt the renamed application management keywords. For newer AppiumLibrary versions (v3.0.0+), `TouchAction` based keywords are completely removed.","message":"In AppiumLibrary v2.0.0, `TouchAction` keywords were deprecated, and application management keywords like `launch_application`, `quit_application`, `reset_application` were deprecated/renamed (`Activate App` to `Activate Application`, etc.) to align with Appium Python Client changes.","severity":"breaking","affected_versions":">=2.0.0, <3.0.0"},{"fix":"Upgrade `robotframework-appiumlibrary` to version 3.0.0 or later, as it addresses this incompatibility. Alternatively, downgrade `Appium-Python-Client` to a version less than 4.0.0 (e.g., `pip install --force-reinstall \"Appium-Python-Client<4.0.0\"`).","message":"Using older `robotframework-appiumlibrary` versions (pre-3.0.0) with `Appium-Python-Client==4.0.0` or higher can lead to `ModuleNotFoundError: No module named 'appium.webdriver.common.touch_action'` errors due to changes in the underlying Appium Python Client.","severity":"gotcha","affected_versions":"<3.0.0"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Ensure `robotframework-appiumlibrary` is installed using `pip install robotframework-appiumlibrary`. If using a virtual environment or IDE (like PyCharm), verify that Robot Framework is configured to use the correct Python interpreter where the library is installed. Sometimes clearing Robot Framework caches and restarting the IDE helps.","cause":"The `robotframework-appiumlibrary` Python package is not installed in the active Python environment, or the Robot Framework interpreter cannot find it.","error":"ModuleNotFoundError: No module named 'AppiumLibrary'"},{"fix":"Update your Robot Framework tests to use the recommended alternative keywords. For 'Click A Point' or 'Click Element At Coordinates', newer methods or combinations of `Tap` with coordinates might be needed, or consider using `Click Element` with appropriate locators. Refer to the latest AppiumLibrary keyword documentation for alternatives.","cause":"Using a deprecated keyword that has been removed or replaced in newer versions of `robotframework-appiumlibrary`, especially after the updates for Selenium 4 and Appium 2.","error":"[ WARN ] Keyword 'AppiumLibrary.Click A Point' is deprecated. Since selenium v4, use other keywords."},{"fix":"Verify that your Appium server is running and accessible at the specified URL. Double-check device connectivity (`adb devices` for Android, Xcode/instruments for iOS). Ensure all desired capabilities passed to `Open Application` are correct and match your target device and application configuration. Check Appium server logs for more specific error details.","cause":"This generic error often indicates an issue with the Appium server, device setup, or incorrect desired capabilities provided during `Open Application`. Common causes include an Appium server not running, an invalid device UDID, an app not found, or a mismatched `platformVersion`.","error":"WebDriverException: Message: An unknown server-side error occurred while processing the command."}]}