To set up Appium, install the Appium server, the driver for your target platform, that platform’s native development tools, and a client library in your test language. Android uses the UiAutomator2 driver and can run from a macOS, Linux, or Windows host. iOS uses XCUITest and requires a macOS host with Xcode. The server by itself cannot automate an app.
This guide follows the Appium project’s current setup documentation, accessed October 2026. Requirements and driver compatibility can change, so verify the linked live documentation before installing.
Choose Android or iOS first
Your platform determines which host computer, driver, SDK, and test target you need. If you test both, plan separate platform setups even if your test code uses the same Appium client.
| Setup area | Android | iOS |
|---|---|---|
| Appium driver | UiAutomator2 | XCUITest |
| Host OS | macOS, Linux, or Windows, subject to the driver’s current requirements | macOS |
| Native tools | Android SDK, Platform-Tools, and a Java JDK | Xcode and Apple developer tools |
| Test target | AVD emulator or USB-debug-enabled Android device | iOS simulator or physical device; physical-device testing adds trust, provisioning, and signing setup |
The Appium driver catalog explains the platform drivers and their supported targets: Appium Drivers.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches#1 Best Overall
- 【Strong Adsorption】The inspiration of the silicone phone suction case comes from the adhesive force of the octopus. Each suction cup phone mount is 3.15 inches long and 2.17 inches wide, with 24 independent suction cups providing a stronger and more stable suction force, so you don't have to worry about your phone falling during use.
- 【Back of Phone Suction Grip】Remove the adhesive film on the phone suction cup and stick it on the phone case. You can then fix the phone on any smooth surface, which is very convenient. (The phone suction cup cannot be removed and reused after being attached to the phone case. It is recommended to attach it to a regular phone case, not a valuable one.)
- 【Widely Used】Our non-slip silicone phone sticky grip mount attaches to almost any flat phone case and make it compatible with common mobile phones such as iPhone and Android.You can shoot, watch videos or video calls in the kitchen, gym, dance studio, bathroom and other places.
- 【Capture the Wonderful Picture】Whether you are a TikTok creator or just like to share videos and photos, this phone suction cup can help you hands-free capture wonderful videos and photos for sharing with friends.
- 【Note】You can fix the phone suction cup on a smooth surface such as a mirror or glass. If necessary, wipe the suction cup with a damp cloth to obtain stronger suction. Before releasing your hand, make sure the phone is firmly fixed. (Not applicable to rough walls, wooden surfaces, and other uneven surfaces)
Install the Appium server runtime
Appium runs on Node.js. The current Appium requirements page lists macOS, Linux, and Windows support, Node.js in the SemVer range ^20.19.0 || ^22.12.0 || >=24.0.0, and npm >=10, with an LTS Node.js release recommended. These are version requirements, not a promise that every driver supports every combination; check the live system requirements.
- Install a Node.js release that meets the current requirement for your operating system. npm is normally included with Node.js.
- Open a new terminal and verify the installed versions:
node --version
npm --version - Install Appium globally using npm:
npm install -g appium - Check that the command is available:
appium --version
If the command is not found after installation, check that npm’s global executable directory is on your PATH, then reopen the terminal. The server is the shared automation endpoint; it does not include the Android or iOS driver, platform SDK, or language client.
Set up Android with UiAutomator2
Install Android SDK tools and Java
- Install Android Studio or the Android command-line tools.
- Use SDK Manager or
sdkmanagerto install the Android SDK Platform matching the Android version you plan to test and Android SDK Platform-Tools, which includesadb. - Set
ANDROID_HOMEto your Android SDK directory. Ensure the SDK’s platform-tools directory is available to your shell soadbruns from the terminal. - Install a Java JDK and set
JAVA_HOMEto its installation directory. Java requirements may depend on the Android API level; use the current UiAutomator2 setup guide for the target you intend to automate.
Open a fresh terminal after changing environment variables, then check them and confirm the tools resolve:
Rank #2
- SUPERIOR COMFORT — Unlike traditional circular ear buds, the design of EarPods is defined by the geometry of the ear. Which makes them more comfortable for more people than any other ear bud–style headphones.
- HIGH-QUALITY AUDIO — The speakers inside EarPods have been engineered to maximize sound output and minimize sound loss, which means you get high-quality audio.
- BUILT-IN REMOTE — EarPods with USB-C plug also include a built-in remote that lets you adjust the volume, control the playback of music and video, and answer or end calls with a pinch of the cord.
- COMPATIBILITY — Works with all devices that have a USB-C port.
- INTEGRATED MICROPHONE — A built-in microphone precisely captures your voice while you’re on the phone, taking a FaceTime call, or summoning Siri — so you’re always heard loud and clear.
echo $ANDROID_HOMEandecho $JAVA_HOMEon macOS/Linuxecho %ANDROID_HOME%andecho %JAVA_HOME%in Windows Command Promptadb versionandjava -version
Prepare an emulator or physical device
You do not need to buy an Android phone to start: an Android Virtual Device (AVD) is a supported test target. Create an AVD in Android Studio’s Device Manager, install a system image, and start the emulator. For physical-device coverage, enable Developer options and USB debugging on the device, connect it by USB, and accept its authorization prompt.
Free tools Windows power users keep installed
One-click scans. No signup required.
Check the target connection with:
adb devices
The device should appear as connected/online. An unauthorized device needs its on-device debugging authorization accepted; a missing device usually means the cable, USB mode, platform-tools installation, or device driver/permissions need attention.
Install and validate the driver
- Install the official Android automation driver:
appium driver install uiautomator2 - Run its prerequisite check:
appium driver doctor uiautomator2 - Resolve required fixes reported by the doctor. The guide treats zero required fixes as prerequisites satisfied; optional suggestions can remain.
- Start the server in a terminal:
appium
Use the automation name UiAutomator2 in the Appium session configuration. Avoid pinning a driver version copied from an older example: driver/server compatibility changes, and the current UiAutomator2 driver major version 5 requires Appium 3 according to the surfaced driver documentation. Check the current driver installation and compatibility notes.
Rank #3
- Secure Hold: Our PopSockets adhesive phone grip gives your cell phone a secure, comfortable hold in hand to help prevent drops while texting, taking photos, or scrolling on the go. Designed to stick firmly to most phone cases and devices.
- Hands-Free Made Easy: Easily turn your PopSocket into a phone stand to prop up your phone anywhere, perfect for watching videos, video calls, or following recipes. A must-have phone holder that keeps your device secure and ready for anything.
- Compatibility: Works with all phones, tablets, and Kindles. Sticks best to smooth, hard plastic cases and may not adhere to silicone or textured cases. Easily swap your PopTop to change up your style.
- Black PopSockets: Simple, refined, and endlessly versatile. A timeless essential for any phone.
- Travel Must-Have for People On the Go: A must-have travel accessory for flights, flying, airports, air travel, airplanes, planes, international trips, cruises, and long travel days. Key gadget for your airport haul, travel accessories and must-haves.
Set up iOS with XCUITest
Install Xcode and the driver on macOS
XCUITest automation requires a macOS host with Xcode and Apple developer tools. Install Xcode and complete its first-launch setup, then check the current XCUITest setup and requirements for the driver release, Xcode version, and iOS versions you intend to use.
- Install Appium as described above, using a supported Node.js/npm combination.
- Install the XCUITest driver:
appium driver install xcuitest - Use the driver’s current setup documentation to verify prerequisites and compatibility for your installed Appium and Xcode versions.
- Start the Appium server with
appium, install a client library for your language, and configure the session for the chosen simulator or device.
Choose simulator or physical device
An iOS simulator is the simpler first target when available in the installed Xcode setup. Real-device testing involves more than connecting a cable: establish device trust, configure the required developer profile, and sign WebDriverAgent as described in the XCUITest documentation. For real devices running iOS or iPadOS 16, the driver documentation also calls out enabling Developer Mode. These iOS trust and signing steps are separate from Android’s USB debugging process.
Install a client and run your first session
Appium server and a driver expose the automation service; your test program still needs an Appium client library for its language. The Appium 3 quickstart walks through server installation, driver installation with dependencies, client installation, and a sample script in JavaScript, Python, Java, Ruby, and .NET: Getting Started — Appium 3 Quickstart.
Rank #4
- [360 ° Flexible Rotation Design] Comes with a rotatable lanyard ring that supports 360 ° free rotation, effectively solving the problem of twisted and tangled lanyards
- [Wide compatibility] The ultra-thin 0.02-inch design does not block the charging port at all, and both wired and wireless charging can be used directly without removing the pad. Compatible with most smartphones such as iPhone, compatible with various wristbands, lanyards, crossbody straps, and keychains
- [Durable and Portable Material] Premium rust-resistant stainless steel material with good flexibility, which not only avoids scratching the phone case, but also has excellent anti rust and anti fading performance
- [Multi scenario Practical] Paired with a lanyard or wristband, hands-free use can be achieved. The phone is within reach and not easily dropped, ideal for daily commuting and outdoor activities. Suitable for full coverage phone cases, does not support half coverage phone cases
- [Quality Service] If you find any damage or other issues with the product upon receipt, please contact us immediately. We will handle it quickly
Follow the current language-specific quickstart rather than pasting capability examples from an older tutorial. Driver and server releases evolve, and session capability requirements can differ by platform and target. A first test needs, at minimum, a reachable Appium server, an installed matching driver, an available emulator/device, the client library, and valid session capabilities for the app and target.
For an Android session, the automation name is UiAutomator2; for an iOS session, use the XCUITest driver’s documented session configuration. Keep the Appium server running while the test executes. A successful server start proves only that the server process launched; it does not validate SDK setup, driver readiness, device connectivity, or session capabilities.
Troubleshoot by setup layer
Check failures from the bottom of the stack upward rather than reinstalling everything at once.
Best Value
- 【PKYAA Double Sided Silicone Suction Phone Case Mount】PKYAA With Double Sided 40 Strong and Reliable individual suction cups, PKYAA provides a thicken and upgraded universal silicon suction mount for your phone.
- 【Friendly to Content Creators】If you are a content creator or an online influencer, you can create videos anywhere with this suction mount completely hands free with this silicone cell phone mount for cases.
- 【HANDS-FREE & Adhere to Mirrors】This Double Sided silicone suction phone case mount allows you to stick your phone to the mirror easily. No longer holding your phone in one hand to watch video tutorials while making up.
- 【Strong Grip on the Smooth Surface】You can easily hang your phone anywhere with a smooth surface. All you do is you clean off your phone and smooth surface. It is STURDY and it not only sticks to mirrors, it also sticks to windows, it sticks to refrigerators, tiles and other clean, flat surfaces.
- 【Press Down Firmly Every 30 Minutes】Use your palm or fingers to press the phone down firmly and check it's secure before letting go. Apply even pressure for a few seconds to allow the suction cup to adhere properly. To maintain the grip and prevent accidental falls, it's a good practice to periodically reapply pressure to the suction cup.
| Symptom | Likely cause | Check or fix |
|---|---|---|
appium, node, or npm is not found |
Runtime missing, unsupported version, or executable directory absent from PATH | Check node --version and npm --version against the current requirements; reopen the terminal or fix PATH after installation. |
| Android doctor reports required fixes | SDK tools, Java, or environment variables are missing or misconfigured | Install the reported Android SDK/Platform-Tools or JDK prerequisites; correct ANDROID_HOME and JAVA_HOME; rerun appium driver doctor uiautomator2. |
adb devices shows no target |
Emulator is stopped, device is not authorized, or USB/ADB setup is incomplete | Start the AVD or reconnect the phone, enable USB debugging, accept the authorization prompt, and rerun adb devices. |
| Appium cannot find a driver | Platform driver has not been installed in the active Appium installation | Install the matching driver with appium driver install uiautomator2 or appium driver install xcuitest; ensure the test is using the intended Appium installation. |
| Driver fails to load or session creation reports incompatibility | Driver, Appium server, platform SDK, Xcode, or OS versions do not match supported combinations | Check the current driver requirements and update or select compatible versions rather than copying an old driver pin. |
| Android session cannot start although server runs | Target is offline, platform tools/JDK prerequisites are incomplete, or session capabilities do not match | Verify doctor output and adb devices, then compare the session settings with the current Android quickstart. |
| iOS real-device session fails during WebDriverAgent setup | Trust, developer profile, Developer Mode where required, or signing configuration is incomplete | Complete the real-device trust and signing steps in the version-matched XCUITest setup guide. |
Keep the installation reliable
- Record the Node.js, npm, Appium, driver, SDK, and (for iOS) Xcode versions used by the test environment. This makes compatibility failures easier to reproduce.
- After changing an SDK, driver, or environment variable, rerun the relevant doctor check and confirm the emulator/device is online before investigating test code.
- Use a dedicated test target where practical; do not assume a green server startup means the app under test is installed, accessible, or configured correctly.
- Check live Appium and driver requirements before upgrading. The requirements page and driver catalog are maintained documentation, and exact compatibility details are volatile.
Or skip the browser setup
Appium is for automating mobile applications. If your workflow also needs website screenshots, ScreenshotNeo is a separate website screenshot API and MCP server—not a replacement for Appium or a mobile-app test driver. One GET request captures a website as PNG, JPEG, WebP, or PDF. For example, capture an Android or iOS setup guide page as an image for documentation review:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://appium.io/docs/en/3.0/quickstart/ -o shot.webp
See the ScreenshotNeo API documentation for request options. It accepts cookie/consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Do I need a physical Android phone to learn Appium?
No. An Android Virtual Device emulator is a supported test target; a physical phone is optional for real-device coverage.
Can I run XCUITest from Windows or Linux?
No. The XCUITest driver setup requires a macOS host with Xcode and Apple developer tools.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

