appium-uiautomator2-driver 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [3.5.0](https://github.com/appium/appium-uiautomator2-driver/compare/v3.4.0...v3.5.0) (2024-05-12)
2
+
3
+
4
+ ### Features
5
+
6
+ * Align the implementation of execute method map with other android drivers ([#780](https://github.com/appium/appium-uiautomator2-driver/issues/780)) ([d376a9b](https://github.com/appium/appium-uiautomator2-driver/commit/d376a9b344c2138fe89403640733dd489e965606))
7
+
1
8
  ## [3.4.0](https://github.com/appium/appium-uiautomator2-driver/compare/v3.3.0...v3.4.0) (2024-05-11)
2
9
 
3
10
 
@@ -1,25 +1,15 @@
1
1
  /**
2
- * @override
3
- * @privateRemarks Because the "mobile" commands (execute methods) in this
4
- * driver universally accept an options object, this method will _not_ call
5
- * into `BaseDriver.executeMethod`.
6
2
  * @this {AndroidUiautomator2Driver}
7
- * @param {string} script
8
- * @param {any[]} [args]
9
- * @returns {Promise<any>}
3
+ * @returns {import('@appium/types').StringRecord<string>}
10
4
  */
11
- export function execute(this: AndroidUiautomator2Driver, script: string, args?: any[] | undefined): Promise<any>;
5
+ export function mobileCommandsMapping(this: import("../driver").AndroidUiautomator2Driver): import('@appium/types').StringRecord<string>;
12
6
  /**
13
7
  * @override
14
8
  * @this {AndroidUiautomator2Driver}
15
- * @param {string} script Must be of the form `mobile: <something>`, which
16
- * differs from its parent class implementation.
9
+ * @param {string} mobileCommand
17
10
  * @param {import('@appium/types').StringRecord} [opts={}]
18
11
  * @returns {Promise<any>}
19
12
  */
20
- export function executeMobile(this: AndroidUiautomator2Driver, script: string, opts?: import("@appium/types").StringRecord<any> | undefined): Promise<any>;
21
- export type UiAutomator2Server = import('../uiautomator2').UiAutomator2Server;
22
- export type ADB = import('appium-adb').ADB;
23
- export type StringRecord<T = any> = import('@appium/types').StringRecord<T>;
24
- import { AndroidUiautomator2Driver } from '../driver';
13
+ export function executeMobile(this: import("../driver").AndroidUiautomator2Driver, mobileCommand: string, opts?: import("@appium/types").StringRecord<any> | undefined): Promise<any>;
14
+ export type AndroidUiautomator2Driver = import('../driver').AndroidUiautomator2Driver;
25
15
  //# sourceMappingURL=execute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,iEAJW,MAAM,6BAEJ,QAAQ,GAAG,CAAC,CAyBxB;AAED;;;;;;;GAOG;AACH,uEALW,MAAM,iEAGJ,QAAQ,GAAG,CAAC,CAmBxB;iCA8CY,OAAO,iBAAiB,EAAE,kBAAkB;kBAC5C,OAAO,YAAY,EAAE,GAAG;oCAKxB,OAAO,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;0CApHZ,WAAW"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,4FAFa,OAAO,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CA8CxD;AAED;;;;;;GAMG;AACH,kGAJW,MAAM,iEAEJ,QAAQ,GAAG,CAAC,CAIxB;wCAyBY,OAAO,WAAW,EAAE,yBAAyB"}
@@ -3,107 +3,79 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.executeMobile = exports.execute = void 0;
6
+ exports.executeMobile = exports.mobileCommandsMapping = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
- const driver_1 = require("appium/driver");
9
- const driver_2 = require("../driver");
10
- const MOBILE_SCRIPT_NAME_PREFIX = 'mobile:';
8
+ const appium_android_driver_1 = require("appium-android-driver");
11
9
  /**
12
- * @override
13
- * @privateRemarks Because the "mobile" commands (execute methods) in this
14
- * driver universally accept an options object, this method will _not_ call
15
- * into `BaseDriver.executeMethod`.
16
10
  * @this {AndroidUiautomator2Driver}
17
- * @param {string} script
18
- * @param {any[]} [args]
19
- * @returns {Promise<any>}
11
+ * @returns {import('@appium/types').StringRecord<string>}
20
12
  */
21
- async function execute(script, args) {
22
- const mobileScriptName = toExecuteMethodName(script);
23
- const isWebContext = this.isWebContext();
24
- if (mobileScriptName && isWebContext || !isWebContext) {
25
- if (mobileScriptName) {
26
- const executeMethodArgs = preprocessExecuteMethodArgs(args);
27
- this.log.info(`Executing method '${mobileScriptName}'`);
28
- return await this.executeMobile(mobileScriptName, executeMethodArgs);
29
- }
30
- // Just pass the script name through and let it fail with a proper error message
31
- return await this.executeMobile(`${script}`, {});
32
- }
33
- const endpoint =
34
- /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy
35
- .downstreamProtocol === driver_1.PROTOCOLS.MJSONWP
36
- ? '/execute'
37
- : '/execute/sync';
38
- return await /** @type {import('appium-chromedriver').Chromedriver} */ (this.chromedriver).jwproxy.command(endpoint, 'POST', {
39
- script,
40
- args,
41
- });
13
+ function mobileCommandsMapping() {
14
+ const commonMapping = new appium_android_driver_1.AndroidDriver().mobileCommandsMapping.call(this);
15
+ return {
16
+ ...commonMapping,
17
+ dragGesture: 'mobileDragGesture',
18
+ flingGesture: 'mobileFlingGesture',
19
+ doubleClickGesture: 'mobileDoubleClickGesture',
20
+ clickGesture: 'mobileClickGesture',
21
+ longClickGesture: 'mobileLongClickGesture',
22
+ pinchCloseGesture: 'mobilePinchCloseGesture',
23
+ pinchOpenGesture: 'mobilePinchOpenGesture',
24
+ swipeGesture: 'mobileSwipeGesture',
25
+ scrollGesture: 'mobileScrollGesture',
26
+ scrollBackTo: 'mobileScrollBackTo',
27
+ scroll: 'mobileScroll',
28
+ viewportScreenshot: 'mobileViewportScreenshot',
29
+ viewportRect: 'mobileViewPortRect',
30
+ deepLink: 'mobileDeepLink',
31
+ acceptAlert: 'mobileAcceptAlert',
32
+ dismissAlert: 'mobileDismissAlert',
33
+ batteryInfo: 'mobileGetBatteryInfo',
34
+ deviceInfo: 'mobileGetDeviceInfo',
35
+ openNotifications: 'openNotifications',
36
+ type: 'mobileType',
37
+ replaceElementValue: 'mobileReplaceElementValue',
38
+ getAppStrings: 'mobileGetAppStrings',
39
+ installMultipleApks: 'mobileInstallMultipleApks',
40
+ pressKey: 'mobilePressKey',
41
+ screenshots: 'mobileScreenshots',
42
+ scheduleAction: 'mobileScheduleAction',
43
+ getActionHistory: 'mobileGetActionHistory',
44
+ unscheduleAction: 'mobileUnscheduleAction',
45
+ };
42
46
  }
43
- exports.execute = execute;
47
+ exports.mobileCommandsMapping = mobileCommandsMapping;
44
48
  /**
45
49
  * @override
46
50
  * @this {AndroidUiautomator2Driver}
47
- * @param {string} script Must be of the form `mobile: <something>`, which
48
- * differs from its parent class implementation.
51
+ * @param {string} mobileCommand
49
52
  * @param {import('@appium/types').StringRecord} [opts={}]
50
53
  * @returns {Promise<any>}
51
54
  */
52
- async function executeMobile(script, opts = {}) {
53
- if (!(script in driver_2.AndroidUiautomator2Driver.executeMethodMap)) {
54
- const commandNames = lodash_1.default.map(lodash_1.default.keys(driver_2.AndroidUiautomator2Driver.executeMethodMap), (value) => value.slice(8));
55
- throw new driver_1.errors.UnknownCommandError(`Unknown mobile command "${script}". ` +
56
- `Only ${commandNames.join(', ')} commands are supported.`);
57
- }
58
- const methodName = driver_2.AndroidUiautomator2Driver.executeMethodMap[
59
- /** @type {keyof import('../execute-method-map').Uiautomator2ExecuteMethodMap} */ (script)].command;
60
- return await /** @type {(opts?: any) => Promise<unknown>} */ (this[methodName])(opts);
55
+ async function executeMobile(mobileCommand, opts = {}) {
56
+ return await new appium_android_driver_1.AndroidDriver().executeMobile.call(this, mobileCommand, preprocessOptions(opts));
61
57
  }
62
58
  exports.executeMobile = executeMobile;
63
59
  // #region Internal Helpers
64
60
  /**
65
- * Messages the arguments going into an execute method.
66
- * @remarks A similar method is implemented in `appium-xcuitest-driver`, but it
67
- * appears the methods in here handle unwrapping of `Element` objects, so we do
68
- * not do that here.
69
- * @param {readonly any[] | readonly [StringRecord] | Readonly<StringRecord>} [args]
61
+ * Renames the deprecated `element` key to `elementId`. Historically,
62
+ * all of the pre-Execute-Method-Map execute methods accepted an `element` _or_ and `elementId` param.
63
+ * This assigns the `element` value to `elementId` if `elementId` is not already present.
64
+ *
65
+ * @param {import('@appium/types').StringRecord} [opts={}]
70
66
  * @internal
71
- * @returns {StringRecord<unknown>}
67
+ * @returns {import('@appium/types').StringRecord|undefined}
72
68
  */
73
- function preprocessExecuteMethodArgs(args) {
74
- if (lodash_1.default.isArray(args)) {
75
- args = lodash_1.default.first(args);
76
- }
77
- const executeMethodArgs = /** @type {StringRecord<unknown>} */ (args ?? {});
78
- /**
79
- * Renames the deprecated `element` key to `elementId`. Historically,
80
- * all of the pre-Execute-Method-Map execute methods accepted an `element` _or_ and `elementId` param.
81
- * This assigns the `element` value to `elementId` if `elementId` is not already present.
82
- */
83
- if (!('elementId' in executeMethodArgs) && 'element' in executeMethodArgs) {
84
- executeMethodArgs.elementId = executeMethodArgs.element;
85
- delete executeMethodArgs.element;
69
+ function preprocessOptions(opts = {}) {
70
+ if (lodash_1.default.isPlainObject(opts) && !('elementId' in opts) && 'element' in opts) {
71
+ opts.elementId = opts.element;
72
+ delete opts.element;
73
+ this.log.debug(`Replaced the obsolete 'element' key with 'elementId'`);
86
74
  }
87
- return executeMethodArgs;
88
- }
89
- /**
90
- * Type guard to check if a script is an execute method.
91
- * @param {any} script
92
- * @internal
93
- * @returns {string?}
94
- */
95
- function toExecuteMethodName(script) {
96
- return lodash_1.default.startsWith(script, MOBILE_SCRIPT_NAME_PREFIX)
97
- ? script.replace(new RegExp(`${MOBILE_SCRIPT_NAME_PREFIX}\\s*`), `${MOBILE_SCRIPT_NAME_PREFIX} `)
98
- : null;
75
+ return opts;
99
76
  }
100
77
  // #endregion
101
78
  /**
102
- * @typedef {import('../uiautomator2').UiAutomator2Server} UiAutomator2Server
103
- * @typedef {import('appium-adb').ADB} ADB
104
- */
105
- /**
106
- * @template [T=any]
107
- * @typedef {import('@appium/types').StringRecord<T>} StringRecord
79
+ * @typedef {import('../driver').AndroidUiautomator2Driver} AndroidUiautomator2Driver
108
80
  */
109
81
  //# sourceMappingURL=execute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../lib/commands/execute.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,iEAAoD;AAEpD;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,MAAM,aAAa,GAAG,IAAI,qCAAa,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO;QACL,GAAG,aAAa;QAChB,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,0BAA0B;QAC9C,YAAY,EAAE,oBAAoB;QAClC,gBAAgB,EAAE,wBAAwB;QAC1C,iBAAiB,EAAE,yBAAyB;QAC5C,gBAAgB,EAAE,wBAAwB;QAC1C,YAAY,EAAE,oBAAoB;QAClC,aAAa,EAAE,qBAAqB;QACpC,YAAY,EAAE,oBAAoB;QAClC,MAAM,EAAE,cAAc;QACtB,kBAAkB,EAAE,0BAA0B;QAC9C,YAAY,EAAE,oBAAoB;QAElC,QAAQ,EAAE,gBAAgB;QAE1B,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,oBAAoB;QAElC,WAAW,EAAE,sBAAsB;QAEnC,UAAU,EAAE,qBAAqB;QAEjC,iBAAiB,EAAE,mBAAmB;QAEtC,IAAI,EAAE,YAAY;QAClB,mBAAmB,EAAE,2BAA2B;QAEhD,aAAa,EAAE,qBAAqB;QAEpC,mBAAmB,EAAE,2BAA2B;QAEhD,QAAQ,EAAE,gBAAgB;QAE1B,WAAW,EAAE,mBAAmB;QAEhC,cAAc,EAAE,sBAAsB;QACtC,gBAAgB,EAAE,wBAAwB;QAC1C,gBAAgB,EAAE,wBAAwB;KAC3C,CAAC;AACJ,CAAC;AA5CD,sDA4CC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE;IAC1D,OAAO,MAAM,IAAI,qCAAa,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpG,CAAC;AAFD,sCAEC;AAED,2BAA2B;AAE3B;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,IAAI,GAAG,EAAE;IAClC,IAAI,gBAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,aAAa;AAEb;;GAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../lib/commands/gestures.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,4IAHa,QAAQ,IAAI,CAAC,CAazB;AAED;;;;;;;GAOG;AACH,oJAHa,QAAQ,IAAI,CAAC,CAczB;AAED;;;;;;GAMG;AACH,kJAHa,QAAQ,IAAI,CAAC,CAazB;AAED;;;;;;GAMG;AACH,6FAJW,OAAO,SAAS,EAAE,WAAW,GAC3B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;;GAOG;AACH,8FAHW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,OAAO,CAAC,CAgB5B;AAED;;;;;;GAMG;AACH,mGAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;GAMG;AACH,kGAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;GAMG;AACH,8FAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAgBzB;AAED;;;;;;;GAOG;AACH,+FAHW,OAAO,SAAS,EAAE,oBAAoB,GACpC,QAAQ,OAAO,CAAC,CAiB5B;AAED;;;;;;;;;;;GAWG;AACH,8FAJW,OAAO,SAAS,EAAE,0BAA0B,GAC1C,QAAQ,IAAI,CAAC,CAiBzB;AAED;;;;;;;;;;;GAWG;AACH,wFAJW,OAAO,SAAS,EAAE,aAAa,GAC7B,QAAQ,IAAI,CAAC,CAwBzB;wCAwCY,OAAO,WAAW,EAAE,yBAAyB"}
1
+ {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../lib/commands/gestures.js"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,4IAHa,QAAQ,IAAI,CAAC,CAazB;AAED;;;;;;;GAOG;AACH,oJAHa,QAAQ,IAAI,CAAC,CAczB;AAED;;;;;;GAMG;AACH,kJAHa,QAAQ,IAAI,CAAC,CAazB;AAED;;;;;;GAMG;AACH,6FAJW,OAAO,SAAS,EAAE,WAAW,GAC3B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;;GAOG;AACH,8FAHW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,OAAO,CAAC,CAgB5B;AAED;;;;;;GAMG;AACH,mGAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;GAMG;AACH,kGAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAezB;AAED;;;;;;GAMG;AACH,8FAJW,OAAO,SAAS,EAAE,YAAY,GAC5B,QAAQ,IAAI,CAAC,CAgBzB;AAED;;;;;;;GAOG;AACH,+FAHW,OAAO,SAAS,EAAE,oBAAoB,GACpC,QAAQ,OAAO,CAAC,CAiB5B;AAED;;;;;;;;;;;GAWG;AACH,8FAJW,OAAO,SAAS,EAAE,0BAA0B,GAC1C,QAAQ,IAAI,CAAC,CAiBzB;AAED;;;;;;;;;;;GAWG;AACH,wFAJW,OAAO,SAAS,EAAE,aAAa,GAC7B,QAAQ,IAAI,CAAC,CAuBzB;wCAwCY,OAAO,WAAW,EAAE,yBAAyB"}
@@ -194,13 +194,12 @@ exports.mobileScrollBackTo = mobileScrollBackTo;
194
194
  * @throws {Error} if the scrolling operation cannot be performed
195
195
  */
196
196
  async function mobileScroll(opts) {
197
- const { element, elementId, // `element` is deprecated, use `elementId` instead
198
- strategy, selector, maxSwipes, } = opts;
197
+ const { elementId, strategy, selector, maxSwipes, } = opts;
199
198
  if (!strategy || !selector) {
200
199
  throw new driver_1.errors.InvalidArgumentError(`Both strategy and selector arguments must be provided`);
201
200
  }
202
201
  await this.uiautomator2.jwproxy.command('/gestures/scroll_to', 'POST', {
203
- origin: toOrigin(elementId || element),
202
+ origin: toOrigin(elementId),
204
203
  params: { strategy, selector, maxSwipes },
205
204
  });
206
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../../lib/commands/gestures.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gestures.js","sourceRoot":"","sources":["../../../lib/commands/gestures.js"],"names":[],"mappings":"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"}