Create New Session

Create a new session

Example Usage

// Java
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3");
desiredCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
desiredCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
desiredCapabilities.setCapability(MobileCapabilityType.APP, "/path/to/ios/app.zip");

URL url = new URL("http://127.0.0.1:4723/wd/hub");

IOSDriver driver = new IOSDriver(url, desiredCapabilities);
String sessionId = driver.getSessionId().toString();

# Python
desired_caps = desired_caps = {
  'platformName': 'Android',
  'platformVersion': '7.0',
  'deviceName': 'Android Emulator',
  'automationName': 'UiAutomator2',
  'app': PATH('/path/to/app')
}
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

// Javascript
// webdriver.io example
let options = { desiredCapabilities: {
  platformName: 'Android',
  platformVersion: '7.0',
  automationName: 'UiAutomator2',
  app: path.resolve('path', 'to', 'app.apk')
}};
let client = webdriverio.remote(options);



[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/session/create.yml)
// wd example
let driver = await wd.promiseChainRemote({
  host: '127.0.0.1',
  port: 4723
});
let desiredCaps = {
  platformName: 'Android',
  platformVersion: '7.0',
  deviceName: 'Android Emulator',
  app: path.resolve('path', 'to', 'app.apk')
};
await driver.init(desiredCaps);

# Ruby
# ruby_lib example
APP_PATH = '../../path/to/app.app'

desired_caps = {
  caps: {
    platformName:  'iOS',
    platformVersion: '10.2',
    deviceName:    'iPhone 6',
    app:           APP_PATH,
    automationName: "XCUITest"
  }
}

Appium::Driver.new(desired_caps).start_driver


[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/session/create.yml)
# ruby_lib_core example
::Appium::Core.for(desired_caps).start_driver

# PHP
// TODO PHP sample

// C#
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability(MobileCapabilityType.PlatformName, "Android");
capabilities.SetCapability(MobileCapabilityType.PlatformVersion, "7.1.1");
capabilities.SetCapability(MobileCapabilityType.DeviceName, "Android Device");
capabilities.SetCapability("appPackage", "com.instagram.android");
capabilities.SetCapability("appActivity", "com.instagram.android.activity.MainTabActivity");

AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub/"), capabilities);

Description

The server should attempt to create a session that most closely matches the desired and required capabilities.

Support

Appium Server

Platform Driver Platform Versions Appium Version Driver Version
iOS XCUITest 9.3+ 1.6.0+ All
UIAutomation 8.0 to 9.3 All All
Android Espresso ?+ 1.9.0+ All
UiAutomator2 ?+ 1.6.0+ All
UiAutomator 4.2+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

Appium Clients

Language Support Documentation
Java All seleniumhq.github.io
Python All selenium-python.readthedocs.io
Javascript (WebdriverIO) All
Javascript (WD) All github.com
Ruby All www.rubydoc.info
PHP All github.com
C# All github.com

HTTP API Specifications

Endpoint

POST /session

URL Parameters

None

JSON Parameters

name type description
desiredCapabilities object (JSONWP specification) Object describing session's desired capabilities
requiredCapabilities object (JSONWP specification) Object describing session's required capabilities that must be applied by remote end
capabilities object (W3C specification) object containing 'alwaysMatch' and 'firstMatch' properties
capabilities.alwaysMatch object The desired capabilities that the remote end must match
capabilities.firstMatch array<object> List of capabilities that the remote end tries to match. Matches the first in the list

Response

An object describing the session's capabilities (object)

See Also