🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Mobile Appium Test

by @never112

Android UI automation testing using Appium with USB-connected real devices. Use when the user wants to run Appium tests on physical Android devices connected...

Versionv1.0.0
Downloads1,010
Installs4
TERMINAL
clawhub install mobile-appium-test

πŸ“– About This Skill


name: mobile-appium-test description: > Android UI automation testing using Appium with USB-connected real devices. Use when the user wants to run Appium tests on physical Android devices connected via USB, including: device connection verification, app installation, UI element inspection, test execution, screenshot capture, and log collection. Requires ADB and Appium Server installed. metadata: { "openclaw": { "emoji": "πŸ“±", "requires": { "tools": ["adb", "appium"] } } }

Mobile Appium Test

Android UI automation testing using Appium with USB-connected real devices.

Prerequisites

Required tools (must be installed):

  • ADB (Android Debug Bridge) - part of Android SDK
  • Appium Server (v2.x recommended)
  • Appium Doctor (npm install -g @appium/doctor)
  • Verify installation:

    adb version
    appium --version
    appium doctor
    

    Quick Reference

    Device Connection

    | Goal | Command | |------|---------| | List connected devices | adb devices | | Get device info | adb shell getprop ro.build.version.release | | Restart ADB server | adb kill-server && adb start-server | | USB debug authorization | Check phone for authorization prompt |

    Appium Server

    | Goal | Command | |------|---------| | Start Appium | appium --address 127.0.0.1 --port 4723 | | Start with relaxed security | appium --relaxed-security | | Check Appium status | curl http://127.0.0.1:4723/status |

    Common Appium Operations

    | Goal | Endpoint/Action | |------|-----------------| | Start session | POST /session with capabilities | | Find element | POST /session/{id}/element | | Click element | POST /session/{id}/element/{id}/click | | Send keys | POST /session/{id}/element/{id}/value | | Take screenshot | GET /session/{id}/screenshot | | Get page source | GET /session/{id}/source | | Quit session | DELETE /session/{id} |

    Typical Workflow

    1. Verify Device Connection

    adb devices
    
    Ensure device shows device status (not unauthorized or offline).

    2. Start Appium Server

    appium --address 127.0.0.1 --port 4723 --relaxed-security
    

    3. Run Test

    Use desired capabilities for USB device:
    {
      "platformName": "Android",
      "deviceName": "device",
      "udid": "",
      "app": "/path/to/app.apk",
      "automationName": "UiAutomator2",
      "noReset": true
    }
    

    4. Common Test Scenarios

  • Install app: adb install app.apk
  • Launch app: Appium appActivity capability
  • Find element by ID: find_element("id", "com.example:id/button")
  • Find element by text: find_element("xpath", "//*[@text='Submit']")
  • Swipe: Appium touch action
  • Get logs: adb logcat
  • Error Handling

    | Error | Cause | Solution | |-------|-------|----------| | device not found | USB connection issue | Check adb devices, restart ADB server | | unauthorized | USB debug not authorized | Unlock phone, authorize the computer | | no such element | Element not found | Use find_elements with wait, check page source | | session not created | Capability mismatch | Verify UDID, platform version, app path |

    Notes

  • Always use UdID from adb devices for real device testing
  • Use UiAutomator2 as automation engine for Android
  • noReset: true preserves app state between sessions
  • For WiFi debugging: adb tcpip 5555 then adb connect :5555
  • βš™οΈ Configuration

    Required tools (must be installed):

  • ADB (Android Debug Bridge) - part of Android SDK
  • Appium Server (v2.x recommended)
  • Appium Doctor (npm install -g @appium/doctor)
  • Verify installation:

    adb version
    appium --version
    appium doctor
    

    πŸ“‹ Tips & Best Practices

  • Always use UdID from adb devices for real device testing
  • Use UiAutomator2 as automation engine for Android
  • noReset: true preserves app state between sessions
  • For WiFi debugging: adb tcpip 5555 then adb connect :5555