This documentation is deprecated. Please refer to the README in the Appium repository or Appium 2.0 documentation.

  Edit this Doc Touch Perform

Perform a touch action sequence

Example Usage

TouchAction action = new TouchAction(driver);
action.press(10, 10);
action.moveTo(10, 100);
action.release();
action.perform();

from appium.webdriver.common.touch_action import TouchAction
// ...
actions = TouchAction(driver)
actions.tap_and_hold(20, 20)
actions.move_to(10, 100)
actions.release()
actions.perform()

// webdriver.io example
driver.touchPerform([
  { action: 'press', options: { x: 100, y: 250 }},
  { action: 'wait', options: { ms: 100 }},
  { action: 'moveTo', options: { x: 300, y: 100 }},
  { action: 'release' }
]);

// wd example
let action = new wd.TouchAction();
action.press({x: 10, y: 10});
action.moveTo({x: 10, y: 100});
action.release();
await action.perform();

# ruby_lib example
touch_action.down(element).move_to(10, 100).up(50, 50).perform

# ruby_lib_core example
@driver.touch_action.down(element).move_to(10, 100).up(50, 50).perform

TouchAction action = new TouchAction(driver);
action.Press(10, 10);
action.MoveTo(10, 100);
action.Release();
action.Perform();

Description

Deprecated. Please consider using W3C Actions.

This functionality is only available from within a native context.

'Touch Perform' works similarly to the other singular touch interactions, except that this allows you to chain together more than one touch action as one command. This is useful because Appium commands are sent over the network and there's latency between commands. This latency can make certain touch interactions impossible because some interactions need to be performed in one sequence. Vertical, for example, requires pressing down, moving to a different y coordinate, and then releasing. For it to work, there can't be a delay between the interactions.

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.3+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

Appium Clients

Language Support Documentation
Java All appium.github.io
Python All appium.github.io
Javascript (WebdriverIO) All
Javascript (WD) All github.com
Ruby All www.rubydoc.info
C# All github.com

HTTP API Specifications

Endpoint

POST /session/:session_id/touch/perform

URL Parameters

name description
session_id ID of the session to route the command to

JSON Parameters

name type description
action string The type of action to perform (moveTo|release|press|tap|wait)
options object The parameters of the action
opts.element string The ID of the element
opts.x number The X coordinate of the operation (relative to top left corner)
opts.y number The Y coordinate of the operation (relative to top left corner)
opts.count number Tap count

Response

null

See Also