Skip to main content

touchAction

Deprecation Warning

The touchAction command is deprecated and will be removed in a future version. We recommend to use the action command instead with pointer type touch, e.g.:

await browser.action('pointer', {
parameters: { pointerType: 'touch' }
})

The Touch Action API provides the basis of all gestures that can be automated in Appium. It is currently only available to native apps and can not be used to interact with webapps. At its core is the ability to chain together ad hoc individual actions, which will then be applied to an element in the application on the device. The basic actions that can be used are:

  • press (pass element or (x,y) or both)
  • longPress (pass element or (x,y) or both)
  • tap (pass element or (x,y) or both)
  • moveTo (pass absolute x,y coordinates)
  • wait (pass ms (as milliseconds))
  • release (no arguments)
Usage
$(selector).touchAction(action)
Parameters
NameTypeDetails
actionTouchActionsaction to execute
Example
touchAction.js
it('should do a touch gesture', async () => {
const screen = await $('//UITextbox');

// simple touch action on element
await screen.touchAction('tap');

// simple touch action using selector and x y variables
// tap location is 30px right and 20px down relative from the center of the element
await screen.touchAction({
action: 'tap', x: 30, y:20
})

// multi action on an element (drag&drop)
await screen.touchAction([
'press',
{ action: 'moveTo', x: 200, y: 300 },
'release'
])

// drag&drop to element
const otherElement = await $('//UIAApplication[1]/UIAElement[2]')
await screen.touchAction([
'press',
{ action: 'moveTo', element: otherElement },
'release'
])
});

Welcome! How can I help?

WebdriverIO AI Copilot