manykarim

robotframework-appium-skill

2
0
# Install this skill:
npx skills add manykarim/robotframework-agentskills --skill "robotframework-appium-skill"

Install specific skill from multi-skill repository

# Description

Guide AI agents in creating AppiumLibrary tests for iOS and Android native apps, hybrid apps, and mobile browsers. Load when asked about mobile testing, Appium, or mobile app automation.

# SKILL.md


name: robotframework-appium-skill
description: Guide AI agents in creating AppiumLibrary tests for iOS and Android native apps, hybrid apps, and mobile browsers. Load when asked about mobile testing, Appium, or mobile app automation.


AppiumLibrary Skill for Robot Framework

Quick Reference

AppiumLibrary enables mobile app testing on iOS and Android using Appium automation.

Installation

# Install the library
pip install robotframework-appiumlibrary

# Install Appium server (requires Node.js)
npm install -g appium

# Install platform drivers
appium driver install uiautomator2    # Android
appium driver install xcuitest        # iOS

Appium Server

Appium server must be running before tests:

appium                    # Start with defaults
appium server             # Alternative
appium --port 4724        # Custom port

Default URL: http://127.0.0.1:4723

Library Import

*** Settings ***
Library    AppiumLibrary

Android Quick Start

Open Android App

Open Application    http://127.0.0.1:4723
...    platformName=Android
...    platformVersion=13
...    deviceName=emulator-5554
...    automationName=UiAutomator2
...    app=${CURDIR}/app.apk

Android Locators (Priority Order)

# 1. accessibility_id (RECOMMENDED - stable)
Click Element    accessibility_id=login_button

# 2. id (resource-id)
Click Element    id=com.example:id/login_button
Click Element    id=login_button                    # Short form if unique

# 3. xpath
Click Element    xpath=//android.widget.Button[@text='Login']

# 4. android UIAutomator2 selector
Click Element    android=new UiSelector().text("Login")

# 5. class name
Click Element    class=android.widget.Button

iOS Quick Start

Open iOS App

Open Application    http://127.0.0.1:4723
...    platformName=iOS
...    platformVersion=17.0
...    deviceName=iPhone 15
...    automationName=XCUITest
...    app=${CURDIR}/MyApp.app
...    udid=auto                                    # For real devices

iOS Locators (Priority Order)

# 1. accessibility_id (RECOMMENDED - stable)
Click Element    accessibility_id=loginButton

# 2. name
Click Element    name=Login

# 3. ios predicate string
Click Element    ios=type == 'XCUIElementTypeButton' AND name == 'Login'

# 4. ios class chain (fast)
Click Element    ios=**/XCUIElementTypeButton[`name == 'Login'`]

# 5. xpath
Click Element    xpath=//XCUIElementTypeButton[@name='Login']

# 6. class name
Click Element    class=XCUIElementTypeButton

Essential Keywords

Element Interaction

Click Element           locator
Click Text              visible_text
Input Text              locator    text_to_enter
Clear Text              locator
Long Press              locator    duration=1000

Getting Element Content

${text}=    Get Text              locator
${attr}=    Get Element Attribute    locator    attribute_name
${count}=   Get Matching Xpath Count    //android.widget.Button

Waits

Wait Until Element Is Visible       locator    timeout=10s
Wait Until Page Contains            text       timeout=10s
Wait Until Page Contains Element    locator    timeout=10s

Verification

Element Should Be Visible       locator
Element Should Be Enabled       locator
Page Should Contain Text        expected_text
Page Should Contain Element     locator
Element Text Should Be          locator    expected_text

Screenshots

Capture Page Screenshot    filename.png
Capture Page Screenshot    ${OUTPUT_DIR}/screenshots/screen.png

Get Page Source (View Hierarchy)

Useful for finding locators and debugging:

${source}=    Get Source
Log    ${source}

Basic Gestures

# Scroll
Scroll Down
Scroll Up

# Swipe (start_x, start_y, end_x, end_y, duration_ms)
Swipe    500    1500    500    500    1000    # Swipe up

# Long press
Long Press    locator    duration=2000

# Tap coordinates
Click A Point    500    800

Android Scroll to Element (UIAutomator2)

# Automatically scrolls to find element!
Click Element    android=new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().text("Settings"))

Context Switching (Hybrid Apps)

# Check current context
${context}=    Get Current Context
Log    Current: ${context}

# List all contexts
@{contexts}=    Get Contexts
Log Many    @{contexts}

# Switch to webview
Switch To Context    WEBVIEW_com.example.app

# Switch back to native
Switch To Context    NATIVE_APP

Mobile Browser Testing

Android Chrome

Open Application    http://127.0.0.1:4723
...    platformName=Android
...    deviceName=emulator-5554
...    automationName=UiAutomator2
...    browserName=Chrome

Go To Url    https://example.com
Input Text    id=username    admin
Click Element    css=button[type='submit']

iOS Safari

Open Application    http://127.0.0.1:4723
...    platformName=iOS
...    deviceName=iPhone 15
...    automationName=XCUITest
...    browserName=Safari

Go To Url    https://example.com

Session Management

# Close app but keep session
Close Application

# Close app and end session
Quit Application

# Reset app (clear data)
Reset Application

# Background/foreground
Background App    5    # Background for 5 seconds

When to Load Additional References

Load additional references based on your needs:

Need Reference File
Android locator strategies references/locators-android.md
iOS locator strategies references/locators-ios.md
Device capabilities setup references/device-capabilities.md
Gestures and scrolling references/gestures-touch.md
iOS-specific features references/ios-specific.md
Android-specific features references/android-specific.md
Complete keyword list references/keywords-reference.md
Common issues and solutions references/troubleshooting.md

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.