appium-mac2-driver
Version:
XCTest-based Appium driver for macOS apps automation
239 lines (237 loc) • 5.32 kB
text/typescript
import {ExecuteMethodMap} from '@appium/types';
export const executeMethodMap = {
'macos: click': {
command: 'macosClick',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: scroll': {
command: 'macosScroll',
params: {
required: ['deltaX', 'deltaY'],
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: swipe': {
command: 'macosSwipe',
params: {
required: ['direction'],
optional: ['elementId', 'x', 'y', 'velocity', 'keyModifierFlags'],
},
},
'macos: rightClick': {
command: 'macosRightClick',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: hover': {
command: 'macosHover',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: doubleClick': {
command: 'macosDoubleClick',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: clickAndDrag': {
command: 'macosClickAndDrag',
params: {
required: ['duration'],
optional: [
'sourceElementId',
'destinationElementId',
'startX',
'startY',
'endX',
'endY',
'keyModifierFlags',
],
},
},
'macos: clickAndDragAndHold': {
command: 'macosClickAndDragAndHold',
params: {
required: ['duration', 'holdDuration'],
optional: [
'sourceElementId',
'destinationElementId',
'startX',
'startY',
'endX',
'endY',
'velocity',
'keyModifierFlags',
],
},
},
'macos: keys': {
command: 'macosKeys',
params: {
required: ['keys'],
optional: ['elementId'],
},
},
'macos: tap': {
command: 'macosTap',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: doubleTap': {
command: 'macosDoubleTap',
params: {
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: press': {
command: 'macosPressAndHold',
params: {
required: ['duration'],
optional: ['elementId', 'x', 'y', 'keyModifierFlags'],
},
},
'macos: pressAndDrag': {
command: 'macosPressAndDrag',
params: {
required: ['duration'],
optional: [
'sourceElementId',
'destinationElementId',
'startX',
'startY',
'endX',
'endY',
'keyModifierFlags',
],
},
},
'macos: pressAndDragAndHold': {
command: 'macosPressAndDragAndHold',
params: {
required: ['duration', 'holdDuration'],
optional: [
'sourceElementId',
'destinationElementId',
'startX',
'startY',
'endX',
'endY',
'velocity',
'keyModifierFlags',
],
},
},
'macos: source': {
command: 'macosSource',
params: {
optional: ['format'],
},
},
'macos: deepLink': {
command: 'macosDeepLink',
params: {
required: ['url'],
optional: ['bundleId'],
},
},
'macos: screenshots': {
command: 'macosScreenshots',
params: {
optional: ['displayId'],
},
},
'macos: appleScript': {
command: 'macosExecAppleScript',
params: {
optional: ['script', 'language', 'command', 'cwd', 'timeout'],
},
},
'macos: launchApp': {
command: 'macosLaunchApp',
params: {
optional: ['bundleId', 'path', 'arguments', 'environment'],
},
},
'macos: activateApp': {
command: 'macosActivateApp',
params: {
optional: ['bundleId', 'path'],
},
},
'macos: terminateApp': {
command: 'macosTerminateApp',
params: {
optional: ['bundleId', 'path'],
},
},
'macos: queryAppState': {
command: 'macosQueryAppState',
params: {
optional: ['bundleId', 'path'],
},
},
'macos: startRecordingScreen': {
command: 'startRecordingScreen',
params: {
required: ['deviceId'],
optional: [
'timeLimit',
'videoFilter',
'fps',
'preset',
'captureCursor',
'captureClicks',
'forceRestart',
],
},
},
'macos: stopRecordingScreen': {
command: 'stopRecordingScreen',
params: {
optional: ['remotePath', 'user', 'pass', 'method', 'headers', 'fileFieldName', 'formFields'],
},
},
'macos: startNativeScreenRecording': {
command: 'macosStartNativeScreenRecording',
params: {
optional: ['fps', 'codec', 'displayId'],
},
},
'macos: getNativeScreenRecordingInfo': {
command: 'macosGetNativeScreenRecordingInfo',
},
'macos: stopNativeScreenRecording': {
command: 'macosStopNativeScreenRecording',
params: {
optional: [
'remotePath',
'user',
'pass',
'method',
'headers',
'fileFieldName',
'formFields',
'ignorePayload',
],
},
},
'macos: listDisplays': {
command: 'macosListDisplays',
},
'macos: getClipboard': {
command: 'macosGetClipboard',
params: {optional: ['contentType']},
},
'macos: setClipboard': {
command: 'macosSetClipboard',
params: {
required: ['content'],
optional: ['contentType'],
},
},
} as const satisfies ExecuteMethodMap<any>;