appium-xcuitest-driver 5.16.0 → 5.16.1
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 +7 -0
- package/build/lib/commands/gesture.d.ts +24 -19
- package/build/lib/commands/gesture.d.ts.map +1 -1
- package/build/lib/commands/gesture.js +172 -65
- package/build/lib/commands/gesture.js.map +1 -1
- package/build/lib/driver.d.ts +17 -13
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +1 -0
- package/build/lib/driver.js.map +1 -1
- package/build/lib/execute-method-map.d.ts +2 -3
- package/build/lib/execute-method-map.d.ts.map +1 -1
- package/build/lib/execute-method-map.js +2 -3
- package/build/lib/execute-method-map.js.map +1 -1
- package/lib/commands/gesture.js +186 -65
- package/lib/driver.js +1 -0
- package/lib/execute-method-map.ts +2 -3
- package/npm-shrinkwrap.json +6 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [5.16.1](https://github.com/appium/appium-xcuitest-driver/compare/v5.16.0...v5.16.1) (2024-02-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Reverts
|
|
5
|
+
|
|
6
|
+
* Revert "feat: Unify gesture extensions (#2313)" ([00161d8](https://github.com/appium/appium-xcuitest-driver/commit/00161d8c71a25cdc9c34707b467f0737c2fcc2d3)), closes [#2313](https://github.com/appium/appium-xcuitest-driver/issues/2313)
|
|
7
|
+
|
|
1
8
|
## [5.16.0](https://github.com/appium/appium-xcuitest-driver/compare/v5.15.1...v5.16.0) (2024-02-01)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -98,7 +98,7 @@ declare namespace _default {
|
|
|
98
98
|
* @param {Element|string} [elementId]
|
|
99
99
|
* @this {XCUITestDriver}
|
|
100
100
|
*/
|
|
101
|
-
function mobileSwipe(this: import("../driver").default, direction: import("./types").Direction, velocity?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<
|
|
101
|
+
function mobileSwipe(this: import("../driver").default, direction: import("./types").Direction, velocity?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<unknown>;
|
|
102
102
|
/**
|
|
103
103
|
* Performs a pinch gesture on the given element or on the Application element.
|
|
104
104
|
*
|
|
@@ -118,9 +118,9 @@ declare namespace _default {
|
|
|
118
118
|
/**
|
|
119
119
|
* Performs double tap gesture on the given element or on the screen.
|
|
120
120
|
*
|
|
121
|
-
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on.
|
|
122
|
-
* @param {number} [x] - The _x_ coordinate (float value) to double tap on.
|
|
123
|
-
* @param {number} [y] - The _y_ coordinate (float value) to double tap on.
|
|
121
|
+
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
|
|
122
|
+
* @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
123
|
+
* @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
124
124
|
* @returns {Promise<void>}
|
|
125
125
|
* @this {XCUITestDriver}
|
|
126
126
|
* @example
|
|
@@ -149,9 +149,9 @@ declare namespace _default {
|
|
|
149
149
|
* Performs a "long press" gesture on the given element or on the screen.
|
|
150
150
|
*
|
|
151
151
|
* @param {number} duration - The duration (in seconds) of the gesture.
|
|
152
|
-
* @param {number} [y] - The _y_ coordinate (float value) to
|
|
153
|
-
* @param {number} [x] - The _x_ coordinate (float value) to
|
|
154
|
-
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on.
|
|
152
|
+
* @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
153
|
+
* @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
154
|
+
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
|
|
155
155
|
* @this {XCUITestDriver}
|
|
156
156
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc
|
|
157
157
|
* @example
|
|
@@ -162,13 +162,13 @@ declare namespace _default {
|
|
|
162
162
|
* ((IJavaScriptExecutor)driver).ExecuteScript("mobile: touchAndHold", tfLongTap);
|
|
163
163
|
* ```
|
|
164
164
|
*/
|
|
165
|
-
function mobileTouchAndHold(this: import("../driver").default, duration: number, x?: number | undefined, y?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<
|
|
165
|
+
function mobileTouchAndHold(this: import("../driver").default, duration: number, x?: number | undefined, y?: number | undefined, elementId?: string | import("@appium/types").Element<string> | undefined): Promise<unknown>;
|
|
166
166
|
/**
|
|
167
167
|
* Performs tap gesture by coordinates on the given element or on the screen.
|
|
168
168
|
*
|
|
169
169
|
* @param {number} x - The _x_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
|
|
170
170
|
* @param {number} y - The _y_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
|
|
171
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
|
|
171
|
+
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
|
|
172
172
|
* @this {XCUITestDriver}
|
|
173
173
|
* @returns {Promise<void>}
|
|
174
174
|
*/
|
|
@@ -221,10 +221,9 @@ declare namespace _default {
|
|
|
221
221
|
* Sends one or more taps with one or more touch points.
|
|
222
222
|
*
|
|
223
223
|
* @since 1.17.1
|
|
224
|
-
* @param {
|
|
225
|
-
* @param {number}
|
|
226
|
-
* @param {
|
|
227
|
-
* The Application element will be used if this parameter is not provided.
|
|
224
|
+
* @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
|
|
225
|
+
* @param {number} numberOfTaps - Number of taps to perform.
|
|
226
|
+
* @param {number} numberOfTouches - Number of touch points to use.
|
|
228
227
|
* @returns {Promise<void>}
|
|
229
228
|
* @this {XCUITestDriver}
|
|
230
229
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc
|
|
@@ -235,7 +234,7 @@ declare namespace _default {
|
|
|
235
234
|
* @driver.execute_script 'mobile: tapWithNumberOfTaps', {element: e.ref, numberOfTaps: 2, numberOfTouches: 1}
|
|
236
235
|
* ```
|
|
237
236
|
*/
|
|
238
|
-
function mobileTapWithNumberOfTaps(this: import("../driver").default,
|
|
237
|
+
function mobileTapWithNumberOfTaps(this: import("../driver").default, elementId: string | import("@appium/types").Element<string>, numberOfTouches: number, numberOfTaps: number): Promise<void>;
|
|
239
238
|
/**
|
|
240
239
|
* Performs a "force press" on the given element or coordinates.
|
|
241
240
|
*
|
|
@@ -244,8 +243,7 @@ declare namespace _default {
|
|
|
244
243
|
* @param {number} [y] - The _y_ coordinate of the gesture. If `elementId` is set, this is calculated relative to its position; otherwise it's calculated relative to the active Application.
|
|
245
244
|
* @param {number} [duration] - The duraiton (in seconds) of the force press. If this is provided, `pressure` must also be provided.
|
|
246
245
|
* @param {number} [pressure] - A float value defining the pressure of the force press. If this is provided, `duration` must also be provided.
|
|
247
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
|
|
248
|
-
* The Application element will be used if this parameter is not provided.
|
|
246
|
+
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps. If this is _not_ provided, both `x` and `y` must be provided. If this is provided _and_ `x` and `y` are not provided, the actual touch point will be calculated internally.
|
|
249
247
|
* @returns {Promise<void>}
|
|
250
248
|
* @this {XCUITestDriver}
|
|
251
249
|
*/
|
|
@@ -277,10 +275,9 @@ declare namespace _default {
|
|
|
277
275
|
* Performs a rotate gesture on the given element.
|
|
278
276
|
*
|
|
279
277
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc
|
|
278
|
+
* @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
|
|
280
279
|
* @param {number} rotation - The rotation gesture (in radians)
|
|
281
280
|
* @param {number} velocity - The velocity (in radians-per-second) of the gesture.
|
|
282
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
|
|
283
|
-
* The Application element will be used if this parameter is not provided.
|
|
284
281
|
* @returns {Promise<void>}
|
|
285
282
|
* @this {XCUITestDriver}
|
|
286
283
|
* @example
|
|
@@ -295,7 +292,15 @@ declare namespace _default {
|
|
|
295
292
|
* ));
|
|
296
293
|
* ```
|
|
297
294
|
*/
|
|
298
|
-
function mobileRotateElement(this: import("../driver").default,
|
|
295
|
+
function mobileRotateElement(this: import("../driver").default, elementId: string | import("@appium/types").Element<string>, rotation: number, velocity: number): Promise<void>;
|
|
296
|
+
/**
|
|
297
|
+
* @this {XCUITestDriver}
|
|
298
|
+
*/
|
|
299
|
+
function getCoordinates(this: import("../driver").default, gesture: any): Promise<{
|
|
300
|
+
x: number;
|
|
301
|
+
y: number;
|
|
302
|
+
areOffsets: boolean;
|
|
303
|
+
}>;
|
|
299
304
|
}
|
|
300
305
|
export default _default;
|
|
301
306
|
export type XCUITestDriver = import('../driver').XCUITestDriver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"AAyEA;;;;;GAKG;AACH,gDAJW,GAAG,EAAE,kBACL,MAAM,EAAE,GAAC,IAAI,GACX,MAAM,CAmBlB;;IAGC;;;;OAIG;IACH,uEAMC;IACD;;OAEG;IACH,yEA2BC;IACD;;OAEG;IAEH,0EAEC;IACD;;;;OAIG;IACH,6HA4BC;IACD;;;;;;OAMG;IACH,4FAcC;IACD;;;;;;;OAOG;IACH,iGAiBC;IACD;;;;OAIG;IACH,gIAIC;IAED;;;;;;;;;;;;;OAaG;IACH,8IAKC;IAID;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,wUAuCC;IACD;;;;;OAKG;IACH,2NAYC;IACD;;;;;;;;;;;;;;OAcG;IACH,kLAOC;IACD;;;;;;;;;;;;;OAaG;IACH,qMAWC;IACD;;;;;;;;;;;;;OAaG;IACH,wJAGC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,6NAYC;IACD;;;;;;;;OAQG;IACH,qKAMC;IACD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,2OAcC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,6ZAoCC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,iMAWC;IACD;;;;;;;;;;;OAWG;IACH,oQAIC;IACD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sRAwBC;IACD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,gLAYC;IACD;;OAEG;IACH;;;;OA2CC;;;6BAMU,OAAO,WAAW,EAAE,cAAc;sBAClC,OAAO,eAAe,EAAE,OAAO"}
|
|
@@ -8,6 +8,33 @@ const driver_1 = require("appium/driver");
|
|
|
8
8
|
const support_1 = require("appium/support");
|
|
9
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
10
10
|
const SUPPORTED_GESTURE_DIRECTIONS = ['up', 'down', 'left', 'right'];
|
|
11
|
+
/**
|
|
12
|
+
* @param {any} [opts]
|
|
13
|
+
* @returns {string|undefined}
|
|
14
|
+
*/
|
|
15
|
+
function toElementId(opts) {
|
|
16
|
+
if (lodash_1.default.isUndefined(opts)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (lodash_1.default.isString(opts) || lodash_1.default.isNumber(opts)) {
|
|
20
|
+
return String(opts);
|
|
21
|
+
}
|
|
22
|
+
if ('elementId' in opts || 'element' in opts) {
|
|
23
|
+
return support_1.util.unwrapElement(opts);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param {XCUITestDriver} driver
|
|
29
|
+
* @param {Element|string} [elementId]
|
|
30
|
+
* @returns {Promise<string>}
|
|
31
|
+
*/
|
|
32
|
+
async function toElementOrApplicationId(driver, elementId) {
|
|
33
|
+
if (!lodash_1.default.isUndefined(elementId)) {
|
|
34
|
+
return support_1.util.unwrapElement(elementId);
|
|
35
|
+
}
|
|
36
|
+
return support_1.util.unwrapElement(await driver.findNativeElementOrElements(`class name`, `XCUIElementTypeApplication`, false));
|
|
37
|
+
}
|
|
11
38
|
/**
|
|
12
39
|
* Converts the given value to a float number.
|
|
13
40
|
*
|
|
@@ -16,13 +43,28 @@ const SUPPORTED_GESTURE_DIRECTIONS = ['up', 'down', 'left', 'right'];
|
|
|
16
43
|
* @param {string} paramName
|
|
17
44
|
* @returns {number}
|
|
18
45
|
*/
|
|
19
|
-
function
|
|
46
|
+
function asFloat(value, paramName) {
|
|
20
47
|
const num = parseFloat(String(value));
|
|
21
48
|
if (Number.isNaN(num)) {
|
|
22
49
|
throw new driver_1.errors.InvalidArgumentError(`"${paramName}" parameter should be a valid number. "${value}" is given instead`);
|
|
23
50
|
}
|
|
24
51
|
return num;
|
|
25
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Converts the given value to an integer number.
|
|
55
|
+
*
|
|
56
|
+
* @throws If `value` is `NaN`
|
|
57
|
+
* @param {any} value
|
|
58
|
+
* @param {string} paramName
|
|
59
|
+
* @returns {number}
|
|
60
|
+
*/
|
|
61
|
+
function asInt(value, paramName) {
|
|
62
|
+
const num = parseInt(String(value), 10);
|
|
63
|
+
if (Number.isNaN(num)) {
|
|
64
|
+
throw new driver_1.errors.InvalidArgumentError(`"${paramName}" parameter should be a valid integer. "${value}" is given instead`);
|
|
65
|
+
}
|
|
66
|
+
return num;
|
|
67
|
+
}
|
|
26
68
|
/**
|
|
27
69
|
*
|
|
28
70
|
* @param {any[]} gestures
|
|
@@ -263,8 +305,8 @@ const helpers = {
|
|
|
263
305
|
if (!lodash_1.default.isNil(distance)) {
|
|
264
306
|
params.distance = distance;
|
|
265
307
|
}
|
|
266
|
-
|
|
267
|
-
return await this.proxyCommand(
|
|
308
|
+
elementId = await toElementOrApplicationId(this, elementId);
|
|
309
|
+
return await this.proxyCommand(`/wda/element/${elementId}/scroll`, 'POST', params);
|
|
268
310
|
},
|
|
269
311
|
/**
|
|
270
312
|
* @param {import('./types').Direction} direction
|
|
@@ -280,8 +322,8 @@ const helpers = {
|
|
|
280
322
|
if (!lodash_1.default.isNil(velocity)) {
|
|
281
323
|
params.velocity = velocity;
|
|
282
324
|
}
|
|
283
|
-
|
|
284
|
-
await this.proxyCommand(
|
|
325
|
+
elementId = await toElementOrApplicationId(this, elementId);
|
|
326
|
+
return await this.proxyCommand(`/wda/element/${elementId}/swipe`, 'POST', params);
|
|
285
327
|
},
|
|
286
328
|
/**
|
|
287
329
|
* Performs a pinch gesture on the given element or on the Application element.
|
|
@@ -300,18 +342,18 @@ const helpers = {
|
|
|
300
342
|
*/
|
|
301
343
|
async mobilePinch(scale, velocity, elementId) {
|
|
302
344
|
const params = {
|
|
303
|
-
scale:
|
|
304
|
-
velocity:
|
|
345
|
+
scale: asFloat(scale, 'scale'),
|
|
346
|
+
velocity: asFloat(velocity, 'velocity'),
|
|
305
347
|
};
|
|
306
|
-
|
|
307
|
-
await this.proxyCommand(
|
|
348
|
+
elementId = await toElementOrApplicationId(this, elementId);
|
|
349
|
+
return await this.proxyCommand(`/wda/element/${elementId}/pinch`, 'POST', params);
|
|
308
350
|
},
|
|
309
351
|
/**
|
|
310
352
|
* Performs double tap gesture on the given element or on the screen.
|
|
311
353
|
*
|
|
312
|
-
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on.
|
|
313
|
-
* @param {number} [x] - The _x_ coordinate (float value) to double tap on.
|
|
314
|
-
* @param {number} [y] - The _y_ coordinate (float value) to double tap on.
|
|
354
|
+
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
|
|
355
|
+
* @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
356
|
+
* @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
315
357
|
* @returns {Promise<void>}
|
|
316
358
|
* @this {XCUITestDriver}
|
|
317
359
|
* @example
|
|
@@ -321,8 +363,16 @@ const helpers = {
|
|
|
321
363
|
* ```
|
|
322
364
|
*/
|
|
323
365
|
async mobileDoubleTap(elementId, x, y) {
|
|
324
|
-
|
|
325
|
-
|
|
366
|
+
if (elementId) {
|
|
367
|
+
// Double tap element
|
|
368
|
+
return await this.proxyCommand(`/wda/element/${elementId}/doubleTap`, 'POST');
|
|
369
|
+
}
|
|
370
|
+
// Double tap coordinates
|
|
371
|
+
const params = {
|
|
372
|
+
x: asFloat(x, 'x'),
|
|
373
|
+
y: asFloat(y, 'y'),
|
|
374
|
+
};
|
|
375
|
+
return await this.proxyCommand('/wda/doubleTap', 'POST', params);
|
|
326
376
|
},
|
|
327
377
|
/**
|
|
328
378
|
* Performs two finger tap gesture on the given element or on the application element.
|
|
@@ -339,16 +389,16 @@ const helpers = {
|
|
|
339
389
|
* ```
|
|
340
390
|
*/
|
|
341
391
|
async mobileTwoFingerTap(elementId) {
|
|
342
|
-
|
|
343
|
-
await this.proxyCommand(
|
|
392
|
+
elementId = await toElementOrApplicationId(this, elementId);
|
|
393
|
+
return await this.proxyCommand(`/wda/element/${elementId}/twoFingerTap`, 'POST');
|
|
344
394
|
},
|
|
345
395
|
/**
|
|
346
396
|
* Performs a "long press" gesture on the given element or on the screen.
|
|
347
397
|
*
|
|
348
398
|
* @param {number} duration - The duration (in seconds) of the gesture.
|
|
349
|
-
* @param {number} [y] - The _y_ coordinate (float value) to
|
|
350
|
-
* @param {number} [x] - The _x_ coordinate (float value) to
|
|
351
|
-
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on.
|
|
399
|
+
* @param {number} [y] - The _y_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
400
|
+
* @param {number} [x] - The _x_ coordinate (float value) to double tap on. This is required if `elementId` is not provided.
|
|
401
|
+
* @param {Element|string} [elementId] - The internal element identifier (as hexadecimal hash string) to double tap on. This is required if `x` and `y` are not provided.
|
|
352
402
|
* @this {XCUITestDriver}
|
|
353
403
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618663-pressforduration?language=objc
|
|
354
404
|
* @example
|
|
@@ -360,24 +410,33 @@ const helpers = {
|
|
|
360
410
|
* ```
|
|
361
411
|
*/
|
|
362
412
|
async mobileTouchAndHold(duration, x, y, elementId) {
|
|
363
|
-
const
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
413
|
+
const params = {
|
|
414
|
+
duration: asFloat(duration, 'duration'),
|
|
415
|
+
};
|
|
416
|
+
if (elementId) {
|
|
417
|
+
// Long tap element
|
|
418
|
+
return await this.proxyCommand(`/wda/element/${elementId}/touchAndHold`, 'POST', params);
|
|
419
|
+
}
|
|
420
|
+
// Long tap coordinates
|
|
421
|
+
params.x = asFloat(x, 'x');
|
|
422
|
+
params.y = asFloat(y, 'y');
|
|
423
|
+
return await this.proxyCommand('/wda/touchAndHold', 'POST', params);
|
|
368
424
|
},
|
|
369
425
|
/**
|
|
370
426
|
* Performs tap gesture by coordinates on the given element or on the screen.
|
|
371
427
|
*
|
|
372
428
|
* @param {number} x - The _x_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
|
|
373
429
|
* @param {number} y - The _y_ coordinate (float value) to tap on. If `elementId` is provided, this is computed relative to the element; otherwise it is computed relative to the active Application element.
|
|
374
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
|
|
430
|
+
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to tap on.
|
|
375
431
|
* @this {XCUITestDriver}
|
|
376
432
|
* @returns {Promise<void>}
|
|
377
433
|
*/
|
|
378
|
-
async mobileTap(x, y, elementId) {
|
|
379
|
-
const
|
|
380
|
-
|
|
434
|
+
async mobileTap(x, y, elementId = '0') {
|
|
435
|
+
const params = {
|
|
436
|
+
x: asFloat(x, 'x'),
|
|
437
|
+
y: asFloat(y, 'y'),
|
|
438
|
+
};
|
|
439
|
+
return await this.proxyCommand(`/wda/tap/${elementId}`, 'POST', params);
|
|
381
440
|
},
|
|
382
441
|
/**
|
|
383
442
|
* Performs drag and drop gesture by coordinates on the given element or on the screen.
|
|
@@ -406,15 +465,16 @@ const helpers = {
|
|
|
406
465
|
*/
|
|
407
466
|
async mobileDragFromToForDuration(duration, fromX, fromY, toX, toY, elementId) {
|
|
408
467
|
const params = {
|
|
409
|
-
duration:
|
|
410
|
-
fromX:
|
|
411
|
-
fromY:
|
|
412
|
-
toX:
|
|
413
|
-
toY:
|
|
468
|
+
duration: asFloat(duration, 'duration'),
|
|
469
|
+
fromX: asFloat(fromX, 'fromX'),
|
|
470
|
+
fromY: asFloat(fromY, 'fromY'),
|
|
471
|
+
toX: asFloat(toX, 'toX'),
|
|
472
|
+
toY: asFloat(toY, 'toY'),
|
|
414
473
|
};
|
|
474
|
+
elementId = toElementId(elementId);
|
|
415
475
|
return elementId
|
|
416
476
|
? // Drag element
|
|
417
|
-
await this.proxyCommand(`/wda/element/${
|
|
477
|
+
await this.proxyCommand(`/wda/element/${elementId}/dragfromtoforduration`, 'POST', params)
|
|
418
478
|
: // Drag coordinates
|
|
419
479
|
await this.proxyCommand('/wda/dragfromtoforduration', 'POST', params);
|
|
420
480
|
},
|
|
@@ -437,9 +497,9 @@ const helpers = {
|
|
|
437
497
|
*/
|
|
438
498
|
async mobileDragFromToWithVelocity(pressDuration, holdDuration, velocity, fromElementId, toElementId, fromX, fromY, toX, toY) {
|
|
439
499
|
const params = {
|
|
440
|
-
pressDuration:
|
|
441
|
-
holdDuration:
|
|
442
|
-
velocity:
|
|
500
|
+
pressDuration: asFloat(pressDuration, 'pressDuration'),
|
|
501
|
+
holdDuration: asFloat(holdDuration, 'holdDuration'),
|
|
502
|
+
velocity: asFloat(velocity, 'velocity'),
|
|
443
503
|
};
|
|
444
504
|
fromElementId = fromElementId ? support_1.util.unwrapElement(fromElementId) : undefined;
|
|
445
505
|
if (fromElementId) {
|
|
@@ -450,20 +510,19 @@ const helpers = {
|
|
|
450
510
|
params.toElement = toElementId;
|
|
451
511
|
return await this.proxyCommand(`/wda/element/${fromElementId}/pressAndDragWithVelocity`, 'POST', params);
|
|
452
512
|
}
|
|
453
|
-
params.fromX =
|
|
454
|
-
params.fromY =
|
|
455
|
-
params.toX =
|
|
456
|
-
params.toY =
|
|
513
|
+
params.fromX = asFloat(fromX, 'fromX');
|
|
514
|
+
params.fromY = asFloat(fromY, 'fromY');
|
|
515
|
+
params.toX = asFloat(toX, 'toX');
|
|
516
|
+
params.toY = asFloat(toY, 'toY');
|
|
457
517
|
return await this.proxyCommand('/wda/pressAndDragWithVelocity', 'POST', params);
|
|
458
518
|
},
|
|
459
519
|
/**
|
|
460
520
|
* Sends one or more taps with one or more touch points.
|
|
461
521
|
*
|
|
462
522
|
* @since 1.17.1
|
|
463
|
-
* @param {
|
|
464
|
-
* @param {number}
|
|
465
|
-
* @param {
|
|
466
|
-
* The Application element will be used if this parameter is not provided.
|
|
523
|
+
* @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
|
|
524
|
+
* @param {number} numberOfTaps - Number of taps to perform.
|
|
525
|
+
* @param {number} numberOfTouches - Number of touch points to use.
|
|
467
526
|
* @returns {Promise<void>}
|
|
468
527
|
* @this {XCUITestDriver}
|
|
469
528
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618671-tapwithnumberoftaps?language=objc
|
|
@@ -474,14 +533,15 @@ const helpers = {
|
|
|
474
533
|
* @driver.execute_script 'mobile: tapWithNumberOfTaps', {element: e.ref, numberOfTaps: 2, numberOfTouches: 1}
|
|
475
534
|
* ```
|
|
476
535
|
*/
|
|
477
|
-
async mobileTapWithNumberOfTaps(numberOfTouches
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
numberOfTaps,
|
|
483
|
-
numberOfTouches,
|
|
484
|
-
}
|
|
536
|
+
async mobileTapWithNumberOfTaps(elementId, numberOfTouches, numberOfTaps) {
|
|
537
|
+
if (!elementId) {
|
|
538
|
+
throw new driver_1.errors.InvalidArgumentError('Element id is expected to be set for tapWithNumberOfTaps method');
|
|
539
|
+
}
|
|
540
|
+
const params = {
|
|
541
|
+
numberOfTaps: asInt(numberOfTaps, 'numberOfTaps'),
|
|
542
|
+
numberOfTouches: asInt(numberOfTouches, 'numberOfTouches'),
|
|
543
|
+
};
|
|
544
|
+
return await this.proxyCommand(`/wda/element/${elementId}/tapWithNumberOfTaps`, 'POST', params);
|
|
485
545
|
},
|
|
486
546
|
/**
|
|
487
547
|
* Performs a "force press" on the given element or coordinates.
|
|
@@ -491,13 +551,13 @@ const helpers = {
|
|
|
491
551
|
* @param {number} [y] - The _y_ coordinate of the gesture. If `elementId` is set, this is calculated relative to its position; otherwise it's calculated relative to the active Application.
|
|
492
552
|
* @param {number} [duration] - The duraiton (in seconds) of the force press. If this is provided, `pressure` must also be provided.
|
|
493
553
|
* @param {number} [pressure] - A float value defining the pressure of the force press. If this is provided, `duration` must also be provided.
|
|
494
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps.
|
|
495
|
-
* The Application element will be used if this parameter is not provided.
|
|
554
|
+
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform one or more taps. If this is _not_ provided, both `x` and `y` must be provided. If this is provided _and_ `x` and `y` are not provided, the actual touch point will be calculated internally.
|
|
496
555
|
* @returns {Promise<void>}
|
|
497
556
|
* @this {XCUITestDriver}
|
|
498
557
|
*/
|
|
499
558
|
async mobileForcePress(x, y, duration, pressure, elementId) {
|
|
500
|
-
|
|
559
|
+
elementId = toElementId(elementId);
|
|
560
|
+
const endpoint = elementId ? `/wda/element/${elementId}/forceTouch` : `/wda/forceTouch`;
|
|
501
561
|
return await this.proxyCommand(endpoint, 'POST', { x, y, duration, pressure });
|
|
502
562
|
},
|
|
503
563
|
/**
|
|
@@ -523,6 +583,7 @@ const helpers = {
|
|
|
523
583
|
* ```
|
|
524
584
|
*/
|
|
525
585
|
async mobileSelectPickerWheelValue(elementId, order, offset, value, maxAttempts) {
|
|
586
|
+
elementId = /** @type {string} */ (toElementId(elementId));
|
|
526
587
|
if (!elementId) {
|
|
527
588
|
throw new driver_1.errors.InvalidArgumentError('elementId is expected to be set for selectPickerWheelValue method');
|
|
528
589
|
}
|
|
@@ -532,7 +593,7 @@ const helpers = {
|
|
|
532
593
|
}
|
|
533
594
|
const params = { order };
|
|
534
595
|
if (offset) {
|
|
535
|
-
params.offset =
|
|
596
|
+
params.offset = asFloat(offset, 'offset');
|
|
536
597
|
}
|
|
537
598
|
if (!lodash_1.default.isNil(value)) {
|
|
538
599
|
params.value = value;
|
|
@@ -540,16 +601,15 @@ const helpers = {
|
|
|
540
601
|
if (!lodash_1.default.isNil(maxAttempts)) {
|
|
541
602
|
params.maxAttempts = maxAttempts;
|
|
542
603
|
}
|
|
543
|
-
return await this.proxyCommand(`/wda/pickerwheel/${
|
|
604
|
+
return await this.proxyCommand(`/wda/pickerwheel/${elementId}/select`, 'POST', params);
|
|
544
605
|
},
|
|
545
606
|
/**
|
|
546
607
|
* Performs a rotate gesture on the given element.
|
|
547
608
|
*
|
|
548
609
|
* @see https://developer.apple.com/documentation/xctest/xcuielement/1618665-rotate?language=objc
|
|
610
|
+
* @param {string|Element} elementId - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
|
|
549
611
|
* @param {number} rotation - The rotation gesture (in radians)
|
|
550
612
|
* @param {number} velocity - The velocity (in radians-per-second) of the gesture.
|
|
551
|
-
* @param {string|Element} [elementId] - The internal element identifier (as hexadecimal hash string) to perform the gesture on.
|
|
552
|
-
* The Application element will be used if this parameter is not provided.
|
|
553
613
|
* @returns {Promise<void>}
|
|
554
614
|
* @this {XCUITestDriver}
|
|
555
615
|
* @example
|
|
@@ -564,13 +624,60 @@ const helpers = {
|
|
|
564
624
|
* ));
|
|
565
625
|
* ```
|
|
566
626
|
*/
|
|
567
|
-
async mobileRotateElement(rotation, velocity
|
|
627
|
+
async mobileRotateElement(elementId, rotation, velocity) {
|
|
628
|
+
elementId = /** @type {string} */ (toElementId(elementId));
|
|
629
|
+
if (!elementId) {
|
|
630
|
+
throw new driver_1.errors.InvalidArgumentError('Element id is expected to be set for rotateElement method');
|
|
631
|
+
}
|
|
568
632
|
const params = {
|
|
569
|
-
rotation:
|
|
570
|
-
velocity:
|
|
633
|
+
rotation: asFloat(rotation, 'rotation'),
|
|
634
|
+
velocity: asFloat(velocity, 'velocity'),
|
|
571
635
|
};
|
|
572
|
-
|
|
573
|
-
|
|
636
|
+
return await this.proxyCommand(`/wda/element/${elementId}/rotate`, 'POST', params);
|
|
637
|
+
},
|
|
638
|
+
/**
|
|
639
|
+
* @this {XCUITestDriver}
|
|
640
|
+
*/
|
|
641
|
+
async getCoordinates(gesture) {
|
|
642
|
+
// defaults
|
|
643
|
+
let coordinates = { x: 0, y: 0, areOffsets: false };
|
|
644
|
+
let optionX = null;
|
|
645
|
+
if (gesture.options.x) {
|
|
646
|
+
optionX = asFloat(gesture.options.x, 'x');
|
|
647
|
+
}
|
|
648
|
+
let optionY = null;
|
|
649
|
+
if (gesture.options.y) {
|
|
650
|
+
optionY = asFloat(gesture.options.y, 'y');
|
|
651
|
+
}
|
|
652
|
+
// figure out the element coordinates.
|
|
653
|
+
const elementId = toElementId(gesture.options);
|
|
654
|
+
if (elementId) {
|
|
655
|
+
let rect = await this.getElementRect(elementId);
|
|
656
|
+
let pos = { x: rect.x, y: rect.y };
|
|
657
|
+
let size = { w: rect.width, h: rect.height };
|
|
658
|
+
// defaults
|
|
659
|
+
let offsetX = 0;
|
|
660
|
+
let offsetY = 0;
|
|
661
|
+
// get the real offsets
|
|
662
|
+
if (optionX || optionY) {
|
|
663
|
+
offsetX = optionX || 0;
|
|
664
|
+
offsetY = optionY || 0;
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
offsetX = size.w / 2;
|
|
668
|
+
offsetY = size.h / 2;
|
|
669
|
+
}
|
|
670
|
+
// apply the offsets
|
|
671
|
+
coordinates.x = pos.x + offsetX;
|
|
672
|
+
coordinates.y = pos.y + offsetY;
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
// moveTo coordinates are passed in as offsets
|
|
676
|
+
coordinates.areOffsets = gesture.action === 'moveTo';
|
|
677
|
+
coordinates.x = optionX || 0;
|
|
678
|
+
coordinates.y = optionY || 0;
|
|
679
|
+
}
|
|
680
|
+
return coordinates;
|
|
574
681
|
},
|
|
575
682
|
};
|
|
576
683
|
exports.default = { ...helpers, ...commands };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../../lib/commands/gesture.js"],"names":[],"mappings":"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"}
|