appium-mac2-driver
Version:
XCTest-based Appium driver for macOS apps automation
275 lines • 12.8 kB
TypeScript
import type { RouteMatcher, HTTPMethod, HTTPBody, DefaultCreateSessionResult, DriverData, InitialOpts, StringRecord, ExternalDriver, W3CDriverCaps } from '@appium/types';
import { BaseDriver } from 'appium/driver';
import { type WDAMacServer } from './wda-mac';
import { type Mac2Constraints } from './constraints';
import * as appManagemenetCommands from './commands/app-management';
import * as appleScriptCommands from './commands/applescript';
import * as executeCommands from './commands/execute';
import * as findCommands from './commands/find';
import * as gesturesCommands from './commands/gestures';
import * as navigationCommands from './commands/navigation';
import * as recordScreenCommands from './commands/record-screen';
import * as screenshotCommands from './commands/screenshots';
import * as sourceCommands from './commands/source';
import * as clipboardCommands from './commands/clipboard';
import * as nativeScreenRecordingCommands from './commands/native-record-screen';
export declare class Mac2Driver extends BaseDriver<Mac2Constraints, StringRecord> implements ExternalDriver<Mac2Constraints, string, StringRecord> {
private isProxyActive;
private _wda;
_videoChunksBroadcaster: nativeScreenRecordingCommands.NativeVideoChunksBroadcaster;
_screenRecorder: recordScreenCommands.ScreenRecorder | null;
proxyReqRes: (...args: any) => any;
static newMethodMap: {
readonly '/session/:sessionId/appium/start_recording_screen': {
readonly POST: {
readonly command: "startRecordingScreen";
readonly payloadParams: {
readonly optional: readonly ["options"];
};
};
};
readonly '/session/:sessionId/appium/stop_recording_screen': {
readonly POST: {
readonly command: "stopRecordingScreen";
readonly payloadParams: {
readonly optional: readonly ["options"];
};
};
};
};
static executeMethodMap: {
readonly 'macos: click': {
readonly command: "macosClick";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: scroll': {
readonly command: "macosScroll";
readonly params: {
readonly required: readonly ["deltaX", "deltaY"];
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: swipe': {
readonly command: "macosSwipe";
readonly params: {
readonly required: readonly ["direction"];
readonly optional: readonly ["elementId", "x", "y", "velocity", "keyModifierFlags"];
};
};
readonly 'macos: rightClick': {
readonly command: "macosRightClick";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: hover': {
readonly command: "macosHover";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: doubleClick': {
readonly command: "macosDoubleClick";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: clickAndDrag': {
readonly command: "macosClickAndDrag";
readonly params: {
readonly required: readonly ["duration"];
readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "keyModifierFlags"];
};
};
readonly 'macos: clickAndDragAndHold': {
readonly command: "macosClickAndDragAndHold";
readonly params: {
readonly required: readonly ["duration", "holdDuration"];
readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "velocity", "keyModifierFlags"];
};
};
readonly 'macos: keys': {
readonly command: "macosKeys";
readonly params: {
readonly required: readonly ["keys"];
readonly optional: readonly ["elementId"];
};
};
readonly 'macos: tap': {
readonly command: "macosTap";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: doubleTap': {
readonly command: "macosDoubleTap";
readonly params: {
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: press': {
readonly command: "macosPressAndHold";
readonly params: {
readonly required: readonly ["duration"];
readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
};
};
readonly 'macos: pressAndDrag': {
readonly command: "macosPressAndDrag";
readonly params: {
readonly required: readonly ["duration"];
readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "keyModifierFlags"];
};
};
readonly 'macos: pressAndDragAndHold': {
readonly command: "macosPressAndDragAndHold";
readonly params: {
readonly required: readonly ["duration", "holdDuration"];
readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "velocity", "keyModifierFlags"];
};
};
readonly 'macos: source': {
readonly command: "macosSource";
readonly params: {
readonly optional: readonly ["format"];
};
};
readonly 'macos: deepLink': {
readonly command: "macosDeepLink";
readonly params: {
readonly required: readonly ["url"];
readonly optional: readonly ["bundleId"];
};
};
readonly 'macos: screenshots': {
readonly command: "macosScreenshots";
readonly params: {
readonly optional: readonly ["displayId"];
};
};
readonly 'macos: appleScript': {
readonly command: "macosExecAppleScript";
readonly params: {
readonly optional: readonly ["script", "language", "command", "cwd", "timeout"];
};
};
readonly 'macos: launchApp': {
readonly command: "macosLaunchApp";
readonly params: {
readonly optional: readonly ["bundleId", "path", "arguments", "environment"];
};
};
readonly 'macos: activateApp': {
readonly command: "macosActivateApp";
readonly params: {
readonly optional: readonly ["bundleId", "path"];
};
};
readonly 'macos: terminateApp': {
readonly command: "macosTerminateApp";
readonly params: {
readonly optional: readonly ["bundleId", "path"];
};
};
readonly 'macos: queryAppState': {
readonly command: "macosQueryAppState";
readonly params: {
readonly optional: readonly ["bundleId", "path"];
};
};
readonly 'macos: startRecordingScreen': {
readonly command: "startRecordingScreen";
readonly params: {
readonly required: readonly ["deviceId"];
readonly optional: readonly ["timeLimit", "videoFilter", "fps", "preset", "captureCursor", "captureClicks", "forceRestart"];
};
};
readonly 'macos: stopRecordingScreen': {
readonly command: "stopRecordingScreen";
readonly params: {
readonly optional: readonly ["remotePath", "user", "pass", "method", "headers", "fileFieldName", "formFields"];
};
};
readonly 'macos: startNativeScreenRecording': {
readonly command: "macosStartNativeScreenRecording";
readonly params: {
readonly optional: readonly ["fps", "codec", "displayId"];
};
};
readonly 'macos: getNativeScreenRecordingInfo': {
readonly command: "macosGetNativeScreenRecordingInfo";
};
readonly 'macos: stopNativeScreenRecording': {
readonly command: "macosStopNativeScreenRecording";
readonly params: {
readonly optional: readonly ["remotePath", "user", "pass", "method", "headers", "fileFieldName", "formFields", "ignorePayload"];
};
};
readonly 'macos: listDisplays': {
readonly command: "macosListDisplays";
};
readonly 'macos: getClipboard': {
readonly command: "macosGetClipboard";
readonly params: {
readonly optional: readonly ["contentType"];
};
};
readonly 'macos: setClipboard': {
readonly command: "macosSetClipboard";
readonly params: {
readonly required: readonly ["content"];
readonly optional: readonly ["contentType"];
};
};
};
constructor(opts?: InitialOpts);
onSettingsUpdate(key: string, value: unknown): Promise<void>;
get wda(): WDAMacServer;
proxyActive(sessionId: string): boolean;
getProxyAvoidList(sessionId: string): RouteMatcher[];
canProxy(): boolean;
proxyCommand(url: string, method: HTTPMethod, body?: HTTPBody): Promise<any>;
getStatus(): Promise<any>;
getWindowRect(): Promise<any>;
createSession(w3cCaps1: W3CMac2DriverCaps, w3cCaps2?: W3CMac2DriverCaps, w3cCaps3?: W3CMac2DriverCaps, driverData?: DriverData[]): Promise<DefaultCreateSessionResult<Mac2Constraints>>;
deleteSession(): Promise<void>;
private resetState;
macosLaunchApp: typeof appManagemenetCommands.macosLaunchApp;
macosActivateApp: typeof appManagemenetCommands.macosActivateApp;
macosTerminateApp: typeof appManagemenetCommands.macosTerminateApp;
macosQueryAppState: typeof appManagemenetCommands.macosQueryAppState;
macosExecAppleScript: typeof appleScriptCommands.macosExecAppleScript;
execute: typeof executeCommands.execute;
findElOrEls: typeof findCommands.findElOrEls;
macosSetValue: typeof gesturesCommands.macosSetValue;
macosClick: typeof gesturesCommands.macosClick;
macosScroll: typeof gesturesCommands.macosScroll;
macosSwipe: typeof gesturesCommands.macosSwipe;
macosRightClick: typeof gesturesCommands.macosRightClick;
macosHover: typeof gesturesCommands.macosHover;
macosDoubleClick: typeof gesturesCommands.macosDoubleClick;
macosClickAndDrag: typeof gesturesCommands.macosClickAndDrag;
macosClickAndDragAndHold: typeof gesturesCommands.macosClickAndDragAndHold;
macosKeys: typeof gesturesCommands.macosKeys;
macosPressAndHold: typeof gesturesCommands.macosPressAndHold;
macosTap: typeof gesturesCommands.macosTap;
macosDoubleTap: typeof gesturesCommands.macosDoubleTap;
macosPressAndDrag: typeof gesturesCommands.macosPressAndDrag;
macosPressAndDragAndHold: typeof gesturesCommands.macosPressAndDragAndHold;
macosGetClipboard: typeof clipboardCommands.macosGetClipboard;
macosSetClipboard: typeof clipboardCommands.macosSetClipboard;
macosDeepLink: typeof navigationCommands.macosDeepLink;
startRecordingScreen: typeof recordScreenCommands.startRecordingScreen;
stopRecordingScreen: typeof recordScreenCommands.stopRecordingScreen;
macosStartNativeScreenRecording: typeof nativeScreenRecordingCommands.macosStartNativeScreenRecording;
macosGetNativeScreenRecordingInfo: typeof nativeScreenRecordingCommands.macosGetNativeScreenRecordingInfo;
macosStopNativeScreenRecording: typeof nativeScreenRecordingCommands.macosStopNativeScreenRecording;
macosListDisplays: typeof nativeScreenRecordingCommands.macosListDisplays;
macosScreenshots: typeof screenshotCommands.macosScreenshots;
macosSource: typeof sourceCommands.macosSource;
}
export default Mac2Driver;
type W3CMac2DriverCaps = W3CDriverCaps<Mac2Constraints>;
//# sourceMappingURL=driver.d.ts.map