Page tree
Skip to end of metadata
Go to start of metadata

Choosing Capabilities from UI

Capabilities can be easily determined from Appium Studio UI - Follow our Getting started pages

Supported in iOS Supported in Android
 iOS & Android


The path to the application files, which would be installed and launched

  • Optional - To install cloud apps with unique name use this syntax:

    //app capability:
    // To support iOS app you should also add the capability 'bundleId'
    // To support Android app you should add the'appPackage' and the 'appActivity' capabilities

    (Upload app to cloud with a unique name)


Instrument the application.

Default: false

  1. launch the application without killing it before (when the capabilities bundleID (iOS) or packageName+activityName (Android) are provided
  2. Not kill/close the application on driver quit (when the capabilities bundleID (iOS) or packageName+activityName (Android) are provided
  3. Stay on the application and not go to Home screen on driver.quit
  4. Not clear application data (android only)
  5. The application is not reinstalled no matter the versioning (it overrides the parameter install.only.for.update)

Uninstall the application completely before installing it again.

Relevant only when the app capability specified.

Upon test completion, the application will be uninstalled (driver.quit()).

When appears with noReset, noReset will have no effect.

Default: false


Moves application into web view context


Used only when installing a cloud application. Specifies the application version for installation


Install the application only if the desired version is different from the application version on the device (or if the app does not exist on the device). Otherwise, keep the application on the device.

That will greatly improve session creation time for testings on the same application version

The following desired capability must also be specified if using this feature:

  • 'appVersion' - the desired application version (CFBundleVersion value for iOS)
  • 'bundleId' for iOS only
  • 'appPackage' and 'appActivity' for Android only

The installation of the package on the device will happen in the following cases:

  1. if the application is already installed on the device and the version different than the one specified by appVersion. the desired version will be installed
  2. noReset  is true - overrides the version check and follow the behavior of noReset
  3. fullReset is true - overrides the version check and follow the behavior of fullReset

iOS Example
dc.setCapability(MobileCapabilityType.APP, "cloud:com.experitest.ExperiBank");
dc.setCapability(IOSMobileCapabilityType.BUNDLE_ID, "com.experitest.ExperiBank");
dc.setCapability("appVersion", "2.23");
dc.setCapability("install.only.for.update", true);
Android Example
dc.setCapability(MobileCapabilityType.APP, "cloud:com.experitest.ExperiBank/.LoginActivity");
dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.experitest.ExperiBank");
dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, ".LoginActivity");
dc.setCapability("appVersion", "1.01");
dc.setCapability("install.only.for.update", true);

Supported in Android
 Android Only


The package name of the activity for the launch


activity name to launch

autoGrantPermissionsGrants permissions required by the application on install
Install and launch an application
// Android install application from path and launch it on the device
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.APP, "C:\\apps\\com.experitest.ExperiBank.LoginActivity.2.apk");
dc.setCapability("instrumentApp", true);
dc.setCapability(MobileCapabilityType.FULL_RESET, true);
dc.setCapability("dontGoHomeOnQuit", true);
driver = new AndroidDriver<>(url, dc);

Supported in iOS
 iOS Only

iOS application identifier
Example (Java)
// iOS - launch pre-installed application and switch context automatically into webview
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(IOSMobileCapabilityType.BUNDLE_ID, "com.experitest.ExperiBank");
dc.setCapability(MobileCapabilityType.AUTO_WEBVIEW, true);
driver = new IOSDriver<>(url, dc);

Start Test without Launching An Application

In order to start the test, the user should omit the app capability and the application ID capabilities (bundleId/appPackage + appActivity)

Example (Java)
DesiredCapabilities dc = new DesiredCapabilities();
driver = new AndroidDriver<>(url, dc);

  • No labels