To set up Appium, install the Appium server, add the driver for your target platform, prepare that platform’s SDK and emulator or device, install a language client, then run a sample session. Choose the platform first: Android automation can run from macOS, Linux, or Windows; iOS automation with XCUITest requires a Mac with Xcode.
Appium server alone is not enough. A working test needs a compatible platform driver and a client library as well as a reachable simulator, emulator, or device.
Choose Android or iOS before installing
| Setup area | Android | iOS |
|---|---|---|
| Host computer | macOS, Linux, or Windows for UiAutomator2 | macOS required for XCUITest |
| Platform tools | Android SDK Platform, Platform-Tools, and a Java JDK | Xcode and its developer tools |
| Test target | Android Virtual Device (AVD) emulator or USB-debug-enabled Android device | iOS simulator or physical device; a real device needs trust, developer-profile configuration, and WebDriverAgent signing |
| Appium driver | UiAutomator2 | XCUITest |
These are different toolchains, not interchangeable setup options. If you need both platforms, you can use a non-Mac host for Android and a Mac for iOS, or use a Mac for both. An Android phone is optional: an AVD emulator is a supported target.
Install the Appium server runtime
Appium runs on Node.js. The current Appium system requirements specify Node.js in the SemVer range ^20.19.0 || ^22.12.0 || >=24.0.0 and npm >=10; the project recommends an LTS Node.js release. These requirements can change, so check the live page when installing.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix 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 a Node.js LTS release that meets the documented range. npm is included with Node.js installations, but make sure its version meets the requirement.
- Open a new terminal and confirm the versions:
node --version npm --version - Install Appium using the current command in the Appium 3 Quickstart. Installation is global in the quickstart workflow; follow the live instructions for the exact command and any platform-specific notes.
Appium’s server is lightweight, but each driver brings its own platform SDK and toolchain requirements. A server that starts successfully does not establish that a driver, device, or test client is ready.
Set up Android with UiAutomator2
Install the Android SDK and Java
- Install Android Studio or the Android command-line tools.
- Use Android Studio’s SDK Manager or
sdkmanagerto install the Android SDK Platform matching the Android version you intend to test and Android SDK Platform-Tools. - Set
ANDROID_HOMEto your Android SDK directory. Make sure your terminal session and the Appium process inherit that environment variable. - Install a Java JDK and set
JAVA_HOMEto its installation directory. The Java requirement can vary with Android API level; confirm the current UiAutomator2 setup instructions for the API level and driver release you use.
Prepare an emulator or device
- AVD: Create an Android Virtual Device in Android Studio, install the matching system image, and launch it before running the test.
- Physical device: Enable Developer options and USB debugging on the device, connect it to the host, and accept its debugging authorization prompt.
Check the connection with:
adb devices
The target should appear as connected and online. If the list is empty, the problem is device discovery or authorization—not an Appium capability.
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.
Install and check the driver
Install the official Android driver:
appium driver install uiautomator2
Appium is extensible, so drivers must be installed separately. The driver catalog puts it plainly: “You can’t use Appium without a driver!” See the Appium Drivers documentation and check compatibility before pairing a driver release with your server version. For example, the current surfaced UiAutomator2 documentation says major version 5 requires Appium 3; do not assume older quickstart output describes the latest compatible combination.
Run the driver’s prerequisite checker:
appium driver doctor uiautomator2
Fix any required issues it reports. The driver guide says zero required fixes means its required prerequisites are satisfied; optional suggestions may still appear.
Recommended Free Tools
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
XCUITest is Appium’s driver for iOS-family apps, including iOS, iPadOS, tvOS, and watchOS. Its setup requires a macOS host and Xcode/developer tools. Follow the version-matched XCUITest setup and requirements guide for the installed driver, Xcode, and iOS versions.
- Install Xcode and its developer tools on the Mac, then complete any first-run setup Xcode requests.
- Install the driver:
appium driver install xcuitest - Choose an iOS simulator or prepare a physical device. A real device requires device trust, developer-profile configuration, and WebDriverAgent signing. On iOS/iPadOS 16 real devices, enable Developer Mode as required by the driver instructions.
- Check the current driver documentation for its compatibility requirements and device-specific setup before creating a session.
Do not apply Android’s adb and USB-debugging steps to iOS: Apple’s signing and trust setup is a separate workflow.
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
Install a client and run a first test
The client library is the part of your test code that sends commands to the Appium server. Choose a supported client for your programming language; the Appium quickstart has examples for JavaScript, Python, Java, Ruby, and .NET. Install the client according to the current language-specific instructions there rather than copying capabilities from an older tutorial.
- Start the server in a terminal with
appium. Leave it running while the test connects. - Install the client library for your chosen language, following the matching quickstart.
- Configure the session for the target platform and driver: use
UiAutomator2for Android orXCUITestfor iOS, along with the app and device details required by that client and driver version. - Run the quickstart sample, then verify that it creates a session, performs an action, and ends the session without an error.
Capabilities and client APIs change across versions. Use the current Appium 3 Quickstart for the syntax in your language and the driver documentation for platform-specific options.
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.
Validate the setup in layers
When a sample fails, check prerequisites in dependency order instead of changing capabilities at random:
- Server runtime: confirm
node --version,npm --version, and thatappiumstarts. - Platform tools: verify the Android SDK and
ANDROID_HOME, or the Xcode installation for iOS; for Android, also verify the JDK andJAVA_HOME. - Target: confirm the emulator is running or the physical device is visible and authorized. On Android, run
adb devices. - Driver: confirm the correct driver is installed and compatible with the Appium server and platform tools. Run the matching Appium Doctor command; for Android use
appium driver doctor uiautomator2. - Client and session: confirm the client is installed and that the platform name, automation name, app, and target details match the current driver’s requirements.
Troubleshoot common setup failures
| Symptom | Likely cause | What to check or fix |
|---|---|---|
appium command is not found |
Appium is not installed where the shell can find it, or the shell’s PATH has not been refreshed. | Repeat the current installation steps, open a fresh terminal, and verify the npm global installation location is on PATH. |
| Appium starts, but session creation fails | A platform driver may be missing, incompatible, or unable to find its SDK/toolchain. | Install the matching driver, check its compatibility documentation, and run its Appium Doctor command. |
| Android device is absent from the target list | USB debugging, authorization, cable/connection, or adb availability is not ready. | Run adb devices, accept the device authorization prompt, and confirm Platform-Tools and ANDROID_HOME are available to the shell. |
| Android driver reports Java or SDK errors | The JDK, Android platform tools, or environment variables are missing or do not meet the driver’s current requirements. | Check JAVA_HOME, ANDROID_HOME, installed SDK components, and the driver’s API-level guidance; rerun appium driver doctor uiautomator2. |
| iOS session cannot build or launch WebDriverAgent on a real device | Device trust, Developer Mode, provisioning, or code signing is incomplete. | Follow the XCUITest guide’s real-device steps for trust, developer profile, and WebDriverAgent signing; confirm the Xcode and driver versions are compatible. |
| Sample script rejects capabilities or cannot connect | The example may use an outdated client or capability format, or Appium may not be running at the endpoint the client expects. | Use the current language quickstart and check the server address, client version, platform name, and driver-specific session options. |
Or skip the browser setup
For capturing website screenshots as part of QA workflows, ScreenshotNeo is a separate screenshot API and MCP server—not an Appium substitute for automating native mobile apps. One GET request returns a PNG, JPEG, WebP, or PDF capture:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for authentication and options. It accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; these steps can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, with response headers identifying the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents using Claude, Cursor, or another MCP client. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
Create a free ScreenshotNeo account to try the API.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Frequently Asked Questions
Can I set up Appium without owning an Android phone?
Yes. The Android setup supports an AVD emulator; physical hardware is optional.
Can I run Appium iOS tests from Windows or Linux?
Not with the XCUITest driver: its setup requires macOS and Xcode.
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.




