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

Device Setup Properties

Name

Description

Example (Java)
udid

unique device identifier

dc.setCapability(MobileCapabilityType.UDID, "ABCDE12345");
platformVersion
specific mobile device version numberdc.setCapability(MobileCapabilityType.PLATFORM_VERSION, "5.0")
deviceManufacture
device manufacturedc.setCapability("deviceManufacturer", "samsung");
deviceModel
device modeldc.setCapability("deviceModel", "iphone 6");
deviceCategory
device categorydc.setCapability("deviceCategory", "PHONE");
deviceWithAudio

For devices with audio injection \ extraction support (default: false)

dc.setCapability("deviceWithAudio", true);
deviceQuery

Query device. For list of available properties.

(see WaitForDevice)

dc.setCapability("deviceQuery", "@os='android' and @manufacture='samsung");
orientation

Start the test when the device in a certain orientation.

values: "landscape" / "portrait"

dc.setCapability(MobileCapabilityType.ORIENTATION, "landscape");
releaseDevice

Gives the capability to not release a device after performing driver.quit();

Values 'true'/false'

  1. default value is 'true' - release the device reservation at the end of the session
  2. 'false' value - cloud will not release the device reservation at the end of the session

The Ability to use the command depends on the permissions on the project for the connecting user.

If the user doesn't have the permission not to release the device on driver.quit(), the setting will be ignored and default value will be applied

dc.setCapability("releaseDevice", false);
deviceCleanup

Performs a device cleanup after the session ends.

The option will only be operational if the project settings allows it.
In project settings - Settings --> Project --> Manage --> Device Policies
Enable release without cleanup is checked.

if Enable release without cleanup is unchecked, the settings deviceCleanup is ignored and a cleanup is performed unconditionally.

Values true/false

default value: true

dc.setCapability("deviceCleanup", "false")
onlyAvailableUse only available devicesdc.setCapability("onlyAvailable", true);


Some of the important things to consider on the capabilities mentioned are,

  1.  deviceQuery - This capability will override any other capabilities set by the user, and it will determine the device for test
  2.  UDID - You can find the mobile device UDID 
  3.  Other Capabilities - The rest of the capabilities are just extensions of the deviceQuery capability (e.g Audio \ Manufacture) and we will construct a query based on the other capabilities which you have provided.

Code Examples:

Set Experitest Url

Please make sure you replace <EXPERITEST_URL> with appropriate URL in the sample code's below.

Setup Device by UDID

The below examples demonstrate how to set a capability which will initialize the driver to connect to a device using the device UDID, as you can see: 


Java
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.UDID, "1162000958")
driver = new AndroidDriver<>(new URL("<EXPERITEST_URL>"), dc); 
Python
dc = {}
self.dc['udid'] = '1162000958'
self.driver = webdriver.Remote('<EXPERITEST_URL>', self.dc)
C Sharp
DesiredCapabilities dc = new DesiredCapabilities();
dc.SetCapability(MobileCapabilityType.Udid, "1162000958")
driver = new AndroidDriver<>(new URL("<EXPERITEST_URL>"), dc); 
Ruby
 desired_caps = {
        caps: {
            udid: '1162000958',
        },
        appium_lib: {
            server_url: '<EXPERITEST_URL>',
        }
    }
    @driver = Appium::Driver.new(desired_caps, true).start_driver

Setup Device by Device Query

The below examples demonstrate how to set a capability which will initialize the driver to connect to a device using a dynamic query, based on the device characteristics (model and OS)


Java
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("deviceQuery", "@os='ios' and contains(@model, 'iphone')");
driver = new IOSDriver<>(new URL("<EXPERITEST_URL>"), dc); 
Python
dc = {}
self.dc['deviceQuery'] = "@os='ios' and contains(@model, 'iphone')"
self.driver = webdriver.Remote('<EXPERITEST_URL>', self.dc)
C Sharp
DesiredCapabilities dc = new DesiredCapabilities();
dc.SetCapability("deviceQuery", "@os='ios' and contains(@model, 'iphone')");
driver = new IOSDriver<>(new URL("<EXPERITEST_URL>"), dc); 
Ruby
 desired_caps = {
        caps: {
            deviceQuery: "@os='ios' and contains(@model, 'iphone')",
        },
        appium_lib: {
            server_url: '<EXPERITEST_URL>',
        }
    }
    @driver = Appium::Driver.new(desired_caps, true).start_driver


  • No labels