Understanding Desired Capabilities

Before we start writing further test code to automate and do other stuff, we need to understand why we are using Desired Capabilities.

Desired Capabilities are present in the below library and hence it needs to be imported.

org.openqa.selenium.remote.DesiredCapabilities

Desired Capabilities is a way of telling the Appium Server which kind of session we are interested in. So it's a hash of Key and Value to let us have more control on the server during automation. So some of the key info which we will be using are :

automationName    Which automation engine to use    Appium (default) or Selendroid
platformName      Which mobile OS platform to use    iOS, Android, or FirefoxOS

Similarly, we can specify platformVersion which will be the version of OS running on the device, could be "8.3" or "5.1".

Below is one such table which contains the various Desired Capabilities which would be set at the server level and customized to either Android or iOS.

Capability

Description

Values

automationName

Which automation engine to use

Appium (default) or Selendroid

platformName

Which mobile OS platform to use

iOS, Android, or FirefoxOS

platformVersion

Mobile OS version

e.g., 7.1, 4.4

deviceName

The kind of mobile device or emulator to use

iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4, etc…

app

The absolute local path or remote http URL to an .ipa or .apk file, or a .zip containing one of these. Appium will attempt to install this app binary on the appropriate device first. Note that this capability is not required for Android if you specify appPackage and appActivity capabilities (see below). Incompatible with browserName.

browserName

Name of mobile web browser to automate. Should be an empty string if automating an app instead.

‘Safari’ for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android

newCommandTimeout

How long (in seconds) Appium will wait for a new command from the client before assuming the client quit and ending the session

e.g. 60

autoLaunch

Whether to have Appium install and launch the app automatically. Default true

true, false

language

(Sim/Emu-only) Language to set for the iOS Simulator

e.g. fr

locale

(Sim/Emu-only) Locale to set for the iOS Simulator

e.g. fr_CA

udid

Unique device identifier of the connected physical device

e.g. 1ae203187fc012g

orientation

(Sim/Emu-only) start in a certain orientation

LANDSCAPE or PORTRAIT

autoWebview

Move directly into Webview context. Default false

true, false

Last updated

Was this helpful?