Touch Perform
Perform a touch action sequence
//: # (DO NOT EDIT THIS FILE! This is an auto-generated file. Editing for this document happens in /commands-yml/commands/interactions/touch/touch-perform.yml)
Example Usage
// Java
TouchAction action = new TouchAction(driver);
action.press(10, 10);
action.moveTo(10, 100);
action.release();
action.perform();
# Python
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()
// Javascript
// webdriver.io example
driver.touchPerform([
{ action: 'press', options: { x: 100, y: 250 }},
{ 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
# 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
# PHP
// TODO PHP sample
// C#
TouchAction action = new TouchAction(driver);
action.Press(10, 10);
action.MoveTo(10, 100);
action.Release();
action.Perform();
Description
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 |
PHP | All | github.com |
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
官方链接为:Touch Perform - Appium