robotframework-appium-skill
10
总安装量
2
周安装量
#29204
全站排名
安装命令
npx skills add https://github.com/manykarim/robotframework-agentskills --skill robotframework-appium-skill
Agent 安装分布
amp
2
opencode
2
kimi-cli
2
github-copilot
2
claude-code
2
Skill 文档
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 |