Manage Desired Capabilities in Appium

On This Page What are Desired Capabilities in Appium?

March 16, 2026 · 7 min read · Tool Comparison

What Are Desired Capabilities in Appium? (2026)

When essay acrossiOS and Android, many testers presume the sameDesired Capabilitieswill work for both platforms. BecauseAppium is cross-platform, it feels like one set ofparametersshould be enough to launch the app and run handwriting reliably.

Then the test fails. The app opens thewrong blind, permissionsare denied, or the script doesn ’ tlaunchat all. What worked on one platform suddenly breaks on the other, even though the code is identical.

I realized the problem was e'er how I configureDesired Capabilities. Platform-specific parameters likebundleIdfor iOS andappPackage or appActivityfor Android determine whether a test runs swimmingly. Once I mastered these settings, myAppium scriptsran reliably across both platforms and devices.

Overview

What are Desired Capabilities in Appium?

Desired Capabilities in Appium are key-value pairs that state the Appium server how to configure a test session. They define the platform, twist, and coating, ensuring a ordered and predictable test environment. Mutual capabilities include platformName, platformVersion, deviceName, and app (the application path).

Commonly used Desired Capabilities in Appium:

  • platformName: Defines the OS (Android or iOS).
  • platformVersion: Specifies the OS version of the device.
  • deviceName: Identifies the prey gimmick (real or emulator/simulator).
  • app: Path or URL of the mobile app (.apk or .ipa) to be essay.
  • appPackage / appActivity (Android):Defines the package and main action of the app.
  • bundleId (iOS):Identifies the app under test on iOS.
  • automationName: Chooses the automation engine (e.g., UiAutomator2, XCUITest).
  • udid: Unique device identifier for running tests on a real gimmick.
  • noReset: Controls whether to hold app information between sessions.
  • fullReset: Ensures the app is uninstalled and reinstalled before each session.
  • unicodeKeyboard:Enables Unicode text input during the session when set to true.
  • autoAcceptAlerts:Automatically accepts any alerting on iOS devices when set to true.

How Desired Capabilities Work

  • Desired Capabilitiesare sent as aJSON objectfrom the client to the Appium waiter.
  • The server reads thesekey-value pairsto configure the test environment.
  • Once a compatible environment is found, aunique session IDis provided to the client.
  • Capabilities can be customized for differentplatforms and configurations, ensuring consistent tests.

In this article, I will show you how to set and validate Desired Capabilities for stable, cross-platform Appium mechanisation.

What are Desired Capabilities in Appium?

Desired Capabilities in Appium refer to the combination of key-value pairs encoded in a JSON objective. These key-value couplet are defined by the QAs to request the Appium server for the desired test mechanisation session.

Here & # 8217; s an example of Desired Capabilities in Appium represented as a JSON object.

{“ platformName ”: “ Android ”, “ platformVersion ”: “ 10.0 ”, “ deviceName ”: “ Samsung Galaxy Note10 ”, “ automationName ”: “ Appium ”, “ app ”: “ path for the app under test ”}

Using the above mentioned Desired Capabilities, the user is teach the drivers to start the test automation session for the app at the mentioned route on a Samsung Galaxy Note 10 with Android adaptation 10.0 using Appium.

As Appium supports both Android and iOS, it has a unequaled set of Capabilities for both platforms. The table below mention commonly used Capabilities for Android and iOS.

Validate Capabilities Before Script Breaks

Small errors in Desired Capabilities can separate trial. Test on existent devices to catch layout and UI number

Common Capabilities in Android

The table below highlights the core desired capabilities of Appium in Android:

CapabilitiesDescriptionValues
appPackageRepresents the Java package of the desired Android App to be testedcom.example.android.myApp, com.android.settings
appActivityRepresents the gens of the desired activity to be launch from the packet. It needs to be preceded by a ‘..MainActivity, .Settings
appWaitPackageRepresents the java packet of Android App to look forcom.example.android.myApp, com.android.settings
browserNameRepresents the name of the nomadic web browser to be automatise. The value should be an vacuous string if automatize an app& # 8216; Safari & # 8217; for iOS

Common Capabilities in iOS

The table below highlights the nucleus desired capabilities of Appium in iOS:

SUSA automates exploratory testing with persona-driven behavior, catching bugs that scripted automation misses.

CapabilitiesDescriptionValues
udidUnique identifier of the connected physical devicee.g 1ae203187fc012g
autoAcceptAlertsAccept all iOS alarum automatically if they pop up. The default value is falsetrue or mistaken
safariInitialUrlInitial URL to be loaded. The default URL redirects to a local home pagee.g. https: //www.github.com

How to Add Capabilities in Appium Inspector in 2026

Configuring Desired Capabilities correctly is essential for targeting the right device, platform, and app in Appium. The Inspector lets you add and validate these capabilities before running your tests.

Follow these steps to add capabilities in your Appium Inspector:

  • Open Appium Desktop and Inspector:Launch Appium Desktop and chinkStart Inspector Session.
  • Access Capabilities Section:In the session frame-up window, locate theDesired Capabilities section.
  • Add Key-Value Pairs:Enter the required capabilities such as:
    • platformName – iOS or Android
    • deviceName – name of the prey device or emulator
    • platformVersion – OS version of the gimmick
    • app – path to the coating
  • Add Optional Capabilities:Include additional settings as needed, such as:
    • unicodeKeyboard – enable Unicode stimulation
    • autoAcceptAlerts – automatically accept iOS alerts
    • autoWebview – switch to webview context for hybrid apps
  • Save and Start Session:Once all capabilities are set, tickStart Session. The Inspector will establish the app based on your conformation, allowing you to inspect elements and corroborate your settings.

Validate Capabilities Before Script Breaks

Small-scale errors in Desired Capabilities can separate tests. Test on real device to catch layout and UI issues

How to Set up Appium Inspector and Launch Your First Test in 2026

Appium Inspector lets you see exactly how your app behaves on a given gimmick and platform. By configuring the right Desired Capabilities, you assure your session target the right gimmick, OS adaptation, and app context, making element inspection and your first trial reliable from the kickoff.

Follow these steps to launch your first Appium test while setting up craved capabilities:

  1. Install Appium Desktop:Download and installAppium Desktop, which include both the waiter and Inspector.
  2. Launch Appium Server:Open Appium Desktop and start the waiter. This is where yourDesired Capabilitiesare sent to configure the test session.
  3. Configure Desired Capabilities:Enter crucial capabilities such as platformName, deviceName, platformVersion, and app (path to your app). These settings ensure your test runs on the intended twist and environment.
  4. Start Appium Inspector Session: Click Start Inspector Session. The waiter say the capabilities, finds a compatible environment, and launches the app for inspection.
  5. Inspect Elements:Explore the UI and verify that theDesired Capabilitiescorrectly target your device and app context. Confirm element locator for your tryout handwriting.
  6. Write and Run Your First Test:Using your preferred programming language, create a simple test—for example, clicking a button or verifying text—and fulfil it. ProperDesired Capabilitiesinsure the exam run consistently across device and platform.

Note: Properly configure Desired Capabilities hither ensures the app launches correctly, the elements are accessible, and your first automated tryout runs reliably across different devices and platforms.

Why Validate Desired Capabilities Across Real Devices

Even if yourDesired Capabilitiesare configured dead, scripts that surpass on emulator or a single device often fail on other devices, OS versions, or screen sizing. Testing on real devices uncovers issue like layout changes, element mismatches, or app clangoring that emulators can not replicate. Without this pace, mechanisation rest fragile and unreliable.

Tools like let yourun Appium test directly on thousands of real devicesand OS combination, so you can see exactly how your Desired Capabilities behave in production-like conditions. This assure your hand are unfeignedly authentic, reduces debugging time, and prevents dearly-won failures.

Key BrowserStack Features for Validating Desired Capabilities:

  • :Access thousands of real iOS and Android device in the cloud without sustain your own twist lab.
  • :Run multiple tests simultaneously to corroborate capabilities across devices quicker.
  • :Test apps hosted behind firewalls or locally, support capabilities in your actual environment.
  • :Detailed logs and session reports aid place capability-related failures instantly.
  • :Test apps with network, SMS, or ring functionality to verify capableness on existent mobile conditions.

Validate Capabilities Before Script Breaks

Small errors in Desired Capabilities can break tests. Test on real devices to catch layout and UI issues

Conclusion

Properly configuring Desired Capabilities is indispensable for reliable Appium automation. They determine the gimmick, OS, and app setting, ensuring tests run consistently across platforms. Misconfigured capabilities lead to failure, flaky tests, and wasted debugging time, making validation a critical step in any peregrine automation workflow.

Tools likeBrowserStackmake this process seamless by letting you test onreal devices and OS versionsinstantly. With features like parallel testing, local environment support, and detailed session report, you can control capabilities across multiple scenarios, ensuring your hand are robust and production-ready.

Tags

FAQs

The best settings calculate on your project. UseADB toolsto get package and activity info for Android, orXcode/Appium Inspector for iOS.

Check the Appium server logsat session start. Error content or exceptions much highlight missing or misconfigured capabilities.

Use the autoGrantPermissionscapability to automatically install the app and grant necessary license.

The autoWebviewchoice mechanically switches the app to a webview context if useable, which is useful for testing hybrid apps.

Yes, you can alter thecapabilities objectduring script execution for flexible examine across different scenario.

They let you provide platform-specific parameter like bundleId for iOS or appPackage and appActivity for Android, assure politic cross-platform mechanization.

84,000+ Views

# Ask-and-Contributeabout this subject with our Discord community.

Related Guides

Automate This With SUSA

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts needed.

Try SUSA Free

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free