Mobile Appium Test

Dev Tools

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.

Install

openclaw skills install mobile-appium-test

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

GoalCommand
List connected devicesadb devices
Get device infoadb shell getprop ro.build.version.release
Restart ADB serveradb kill-server && adb start-server
USB debug authorizationCheck phone for authorization prompt

Appium Server

GoalCommand
Start Appiumappium --address 127.0.0.1 --port 4723
Start with relaxed securityappium --relaxed-security
Check Appium statuscurl http://127.0.0.1:4723/status

Common Appium Operations

GoalEndpoint/Action
Start sessionPOST /session with capabilities
Find elementPOST /session/{id}/element
Click elementPOST /session/{id}/element/{id}/click
Send keysPOST /session/{id}/element/{id}/value
Take screenshotGET /session/{id}/screenshot
Get page sourceGET /session/{id}/source
Quit sessionDELETE /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": "<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

ErrorCauseSolution
device not foundUSB connection issueCheck adb devices, restart ADB server
unauthorizedUSB debug not authorizedUnlock phone, authorize the computer
no such elementElement not foundUse find_elements with wait, check page source
session not createdCapability mismatchVerify 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 <IP>:5555