appium-uiautomator2-driver 6.7.5 → 6.7.7

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/lib/commands/actions.d.ts +26 -29
  3. package/build/lib/commands/actions.d.ts.map +1 -1
  4. package/build/lib/commands/actions.js +19 -27
  5. package/build/lib/commands/actions.js.map +1 -1
  6. package/build/lib/commands/alert.d.ts +14 -22
  7. package/build/lib/commands/alert.d.ts.map +1 -1
  8. package/build/lib/commands/alert.js +8 -19
  9. package/build/lib/commands/alert.js.map +1 -1
  10. package/build/lib/commands/app-management.d.ts +7 -10
  11. package/build/lib/commands/app-management.d.ts.map +1 -1
  12. package/build/lib/commands/app-management.js +4 -14
  13. package/build/lib/commands/app-management.js.map +1 -1
  14. package/build/lib/commands/battery.d.ts +4 -5
  15. package/build/lib/commands/battery.d.ts.map +1 -1
  16. package/build/lib/commands/battery.js +4 -9
  17. package/build/lib/commands/battery.js.map +1 -1
  18. package/build/lib/commands/clipboard.d.ts +9 -13
  19. package/build/lib/commands/clipboard.d.ts.map +1 -1
  20. package/build/lib/commands/clipboard.js +7 -14
  21. package/build/lib/commands/clipboard.js.map +1 -1
  22. package/build/lib/commands/element.d.ts +64 -69
  23. package/build/lib/commands/element.d.ts.map +1 -1
  24. package/build/lib/commands/element.js +64 -84
  25. package/build/lib/commands/element.js.map +1 -1
  26. package/build/lib/commands/find.d.ts +13 -9
  27. package/build/lib/commands/find.d.ts.map +1 -1
  28. package/build/lib/commands/find.js +4 -16
  29. package/build/lib/commands/find.js.map +1 -1
  30. package/build/lib/commands/gestures.d.ts +87 -189
  31. package/build/lib/commands/gestures.d.ts.map +1 -1
  32. package/build/lib/commands/gestures.js +77 -204
  33. package/build/lib/commands/gestures.js.map +1 -1
  34. package/build/lib/commands/keyboard.d.ts +30 -41
  35. package/build/lib/commands/keyboard.d.ts.map +1 -1
  36. package/build/lib/commands/keyboard.js +22 -37
  37. package/build/lib/commands/keyboard.js.map +1 -1
  38. package/build/lib/commands/misc.d.ts +19 -35
  39. package/build/lib/commands/misc.d.ts.map +1 -1
  40. package/build/lib/commands/misc.js +15 -30
  41. package/build/lib/commands/misc.js.map +1 -1
  42. package/build/lib/commands/navigation.d.ts +11 -16
  43. package/build/lib/commands/navigation.d.ts.map +1 -1
  44. package/build/lib/commands/navigation.js +9 -17
  45. package/build/lib/commands/navigation.js.map +1 -1
  46. package/build/lib/commands/viewport.d.ts +23 -22
  47. package/build/lib/commands/viewport.d.ts.map +1 -1
  48. package/build/lib/commands/viewport.js +17 -24
  49. package/build/lib/commands/viewport.js.map +1 -1
  50. package/build/tsconfig.tsbuildinfo +1 -1
  51. package/lib/commands/actions.ts +95 -0
  52. package/lib/commands/alert.ts +46 -0
  53. package/lib/commands/app-management.ts +25 -0
  54. package/lib/commands/battery.ts +19 -0
  55. package/lib/commands/clipboard.ts +29 -0
  56. package/lib/commands/element.ts +180 -0
  57. package/lib/commands/find.ts +48 -0
  58. package/lib/commands/gestures.ts +297 -0
  59. package/lib/commands/keyboard.ts +102 -0
  60. package/lib/commands/misc.ts +67 -0
  61. package/lib/commands/navigation.ts +32 -0
  62. package/lib/commands/viewport.ts +78 -0
  63. package/npm-shrinkwrap.json +16 -46
  64. package/package.json +1 -1
  65. package/lib/commands/actions.js +0 -107
  66. package/lib/commands/alert.js +0 -63
  67. package/lib/commands/app-management.js +0 -32
  68. package/lib/commands/battery.js +0 -23
  69. package/lib/commands/clipboard.js +0 -37
  70. package/lib/commands/element.js +0 -261
  71. package/lib/commands/find.js +0 -47
  72. package/lib/commands/gestures.js +0 -446
  73. package/lib/commands/keyboard.js +0 -108
  74. package/lib/commands/misc.js +0 -109
  75. package/lib/commands/navigation.js +0 -33
  76. package/lib/commands/viewport.js +0 -100
@@ -1,102 +1,97 @@
1
+ import type { DoSetElementValueOpts } from 'appium-android-driver';
2
+ import type { Element as AppiumElement, Position, Rect, Size } from '@appium/types';
3
+ import type { AndroidUiautomator2Driver } from '../driver';
1
4
  /**
2
- * @this {AndroidUiautomator2Driver}
3
- * @returns {Promise<import('@appium/types').Element>}
5
+ * Gets the currently active element.
6
+ * @returns The currently active element.
4
7
  */
5
- export function active(this: import("../driver").AndroidUiautomator2Driver): Promise<import("@appium/types").Element>;
8
+ export declare function active(this: AndroidUiautomator2Driver): Promise<AppiumElement>;
6
9
  /**
7
- * @this {AndroidUiautomator2Driver}
8
- * @param {string} attribute
9
- * @param {string} elementId
10
- * @returns {Promise<string?>}
10
+ * Gets an element attribute value.
11
+ * @param attribute - Name of the attribute to retrieve.
12
+ * @param elementId - ID of the element.
13
+ * @returns The attribute value as a string.
11
14
  */
12
- export function getAttribute(this: import("../driver").AndroidUiautomator2Driver, attribute: string, elementId: string): Promise<string | null>;
15
+ export declare function getAttribute(this: AndroidUiautomator2Driver, attribute: string, elementId: string): Promise<string>;
13
16
  /**
14
- * @this {AndroidUiautomator2Driver}
15
- * @param {string} elementId
16
- * @returns {Promise<boolean>}
17
+ * Returns whether the element is displayed.
18
+ * @param elementId - ID of the element.
19
+ * @returns True if the element is displayed, false otherwise.
17
20
  */
18
- export function elementDisplayed(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
21
+ export declare function elementDisplayed(this: AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
19
22
  /**
20
- * @this {AndroidUiautomator2Driver}
21
- * @param {string} elementId
22
- * @returns {Promise<boolean>}
23
+ * Returns whether the element is enabled.
24
+ * @param elementId - ID of the element.
25
+ * @returns True if the element is enabled, false otherwise.
23
26
  */
24
- export function elementEnabled(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
27
+ export declare function elementEnabled(this: AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
25
28
  /**
26
- * @this {AndroidUiautomator2Driver}
27
- * @param {string} elementId
28
- * @returns {Promise<boolean>}
29
+ * Returns whether the element is selected.
30
+ * @param elementId - ID of the element.
31
+ * @returns True if the element is selected, false otherwise.
29
32
  */
30
- export function elementSelected(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
33
+ export declare function elementSelected(this: AndroidUiautomator2Driver, elementId: string): Promise<boolean>;
31
34
  /**
32
- * @this {AndroidUiautomator2Driver}
33
- * @param {string} elementId
34
- * @returns {Promise<string>}
35
+ * Gets the element tag name.
36
+ * @param elementId - ID of the element.
37
+ * @returns The element tag name.
35
38
  */
36
- export function getName(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<string>;
39
+ export declare function getName(this: AndroidUiautomator2Driver, elementId: string): Promise<string>;
37
40
  /**
38
- * @this {AndroidUiautomator2Driver}
39
- * @param {string} elementId
40
- * @returns {Promise<import('@appium/types').Position>}
41
+ * Gets the element location.
42
+ * @param elementId - ID of the element.
43
+ * @returns The element position coordinates (x, y).
41
44
  */
42
- export function getLocation(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<import("@appium/types").Position>;
45
+ export declare function getLocation(this: AndroidUiautomator2Driver, elementId: string): Promise<Position>;
43
46
  /**
44
- * @this {AndroidUiautomator2Driver}
45
- * @param {string} elementId
46
- * @returns {Promise<import('@appium/types').Size>}
47
+ * Gets the element size.
48
+ * @param elementId - ID of the element.
49
+ * @returns The element size (width, height).
47
50
  */
48
- export function getSize(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<import("@appium/types").Size>;
51
+ export declare function getSize(this: AndroidUiautomator2Driver, elementId: string): Promise<Size>;
49
52
  /**
50
- * @this {AndroidUiautomator2Driver}
51
- * @param {import('appium-android-driver').DoSetElementValueOpts} params
52
- * @returns {Promise<void>}
53
+ * Sets the value of an element using the upstream driver API.
54
+ * @param params - Options containing the element ID and value to set.
53
55
  */
54
- export function doSetElementValue(this: import("../driver").AndroidUiautomator2Driver, params: import("appium-android-driver").DoSetElementValueOpts): Promise<void>;
56
+ export declare function doSetElementValue(this: AndroidUiautomator2Driver, params: DoSetElementValueOpts): Promise<void>;
55
57
  /**
56
- * @this {AndroidUiautomator2Driver}
57
- * @param {string|string[]} keys
58
- * @param {string} elementId
59
- * @returns {Promise<void>}
58
+ * Sends text to an element without replacement.
59
+ * @param keys - Text to send, either as a string or array of strings (which will be joined).
60
+ * @param elementId - ID of the element.
60
61
  */
61
- export function setValueImmediate(this: import("../driver").AndroidUiautomator2Driver, keys: string | string[], elementId: string): Promise<void>;
62
+ export declare function setValueImmediate(this: AndroidUiautomator2Driver, keys: string | string[], elementId: string): Promise<void>;
62
63
  /**
63
- * @this {AndroidUiautomator2Driver}
64
- * @param {string} elementId
65
- * @returns {Promise<string>}
64
+ * Gets the element text.
65
+ * @param elementId - ID of the element.
66
+ * @returns The element text content.
66
67
  */
67
- export function getText(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<string>;
68
+ export declare function getText(this: AndroidUiautomator2Driver, elementId: string): Promise<string>;
68
69
  /**
69
- * @this {AndroidUiautomator2Driver}
70
- * @param {string} element
71
- * @returns {Promise<void>}
70
+ * Clicks the given element.
71
+ * @param element - ID of the element to click.
72
72
  */
73
- export function click(this: import("../driver").AndroidUiautomator2Driver, element: string): Promise<void>;
73
+ export declare function click(this: AndroidUiautomator2Driver, element: string): Promise<void>;
74
74
  /**
75
- * @this {AndroidUiautomator2Driver}
76
- * @param {string} element
77
- * @returns {Promise<string>}
75
+ * Takes a screenshot of the element.
76
+ * @param element - ID of the element.
77
+ * @returns Base64-encoded PNG screenshot of the element.
78
78
  */
79
- export function getElementScreenshot(this: import("../driver").AndroidUiautomator2Driver, element: string): Promise<string>;
79
+ export declare function getElementScreenshot(this: AndroidUiautomator2Driver, element: string): Promise<string>;
80
80
  /**
81
- * @this {AndroidUiautomator2Driver}
82
- * @param {string} elementId
83
- * @returns {Promise<void>}
81
+ * Clears the element text.
82
+ * @param elementId - ID of the element to clear.
84
83
  */
85
- export function clear(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<void>;
84
+ export declare function clear(this: AndroidUiautomator2Driver, elementId: string): Promise<void>;
86
85
  /**
87
- * @this {AndroidUiautomator2Driver}
88
- * @param {string} elementId
89
- * @returns {Promise<import('@appium/types').Rect>}
86
+ * Gets the element rectangle.
87
+ * @param elementId - ID of the element.
88
+ * @returns The element rectangle (x, y, width, height).
90
89
  */
91
- export function getElementRect(this: import("../driver").AndroidUiautomator2Driver, elementId: string): Promise<import("@appium/types").Rect>;
90
+ export declare function getElementRect(this: AndroidUiautomator2Driver, elementId: string): Promise<Rect>;
92
91
  /**
93
- * Sends text to the given element by replacing its previous content
94
- * @this {AndroidUiautomator2Driver}
95
- * @param {string} elementId The id of the element whose content will be replaced.
96
- * @param {string} text The actual text to set.
97
- * @throws {Error} If there was a faulre while setting the text
98
- * @returns {Promise<void>}
92
+ * Replaces the element text.
93
+ * @param elementId - ID of the element.
94
+ * @param text - Text to replace the current element value with.
99
95
  */
100
- export function mobileReplaceElementValue(this: import("../driver").AndroidUiautomator2Driver, elementId: string, text: string): Promise<void>;
101
- export type AndroidUiautomator2Driver = import("../driver").AndroidUiautomator2Driver;
96
+ export declare function mobileReplaceElementValue(this: AndroidUiautomator2Driver, elementId: string, text: string): Promise<void>;
102
97
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,6EAFa,OAAO,CAAC,OAAO,eAAe,EAAE,OAAO,CAAC,CASpD;AAED;;;;;GAKG;AACH,6FAJW,MAAM,aACN,MAAM,GACJ,OAAO,CAAC,MAAM,OAAC,CAAC,CAU5B;AAED;;;;GAIG;AACH,iGAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;GAIG;AACH,+FAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;GAIG;AACH,gGAHW,MAAM,GACJ,OAAO,CAAC,OAAO,CAAC,CAI5B;AAED;;;;GAIG;AACH,wFAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;AAED;;;;GAIG;AACH,4FAHW,MAAM,GACJ,OAAO,CAAC,OAAO,eAAe,EAAE,QAAQ,CAAC,CAUrD;AAED;;;;GAIG;AACH,wFAHW,MAAM,GACJ,OAAO,CAAC,OAAO,eAAe,EAAE,IAAI,CAAC,CAUjD;AAED;;;;GAIG;AACH,+FAHW,OAAO,uBAAuB,EAAE,qBAAqB,GACnD,OAAO,CAAC,IAAI,CAAC,CAQzB;AAED;;;;;GAKG;AACH,6FAJW,MAAM,GAAC,MAAM,EAAE,aACf,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAYzB;AAED;;;;GAIG;AACH,wFAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;AAED;;;;GAIG;AACH,oFAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAQzB;AAED;;;;GAIG;AACH,mGAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;AAED;;;;GAIG;AACH,sFAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAUzB;AAED;;;;GAIG;AACH,+FAHW,MAAM,GACJ,OAAO,CAAC,OAAO,eAAe,EAAE,IAAI,CAAC,CA4BjD;AAED;;;;;;;GAOG;AACH,0GALW,MAAM,QACN,MAAM,GAEJ,OAAO,CAAC,IAAI,CAAC,CAWzB;wCAeY,OAAO,WAAW,EAAE,yBAAyB"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAC,OAAO,IAAI,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAClF,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AAGzD;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAEpF;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzH;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3G;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1G;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjG;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEvG;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAErH;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,yBAAyB,EAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjG;AAED;;;GAGG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5G;AAED;;;GAGG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CActG;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,yBAAyB,EAC/B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -19,86 +19,84 @@ exports.getElementScreenshot = getElementScreenshot;
19
19
  exports.clear = clear;
20
20
  exports.getElementRect = getElementRect;
21
21
  exports.mobileReplaceElementValue = mobileReplaceElementValue;
22
+ const driver_1 = require("appium/driver");
22
23
  const bluebird_1 = __importDefault(require("bluebird"));
23
24
  const lodash_1 = __importDefault(require("lodash"));
24
- const driver_1 = require("appium/driver");
25
25
  /**
26
- * @this {AndroidUiautomator2Driver}
27
- * @returns {Promise<import('@appium/types').Element>}
26
+ * Gets the currently active element.
27
+ * @returns The currently active element.
28
28
  */
29
29
  async function active() {
30
- return /** @type {import('@appium/types').Element} */ (await this.uiautomator2.jwproxy.command('/element/active', 'GET'));
30
+ return (await this.uiautomator2.jwproxy.command('/element/active', 'GET'));
31
31
  }
32
32
  /**
33
- * @this {AndroidUiautomator2Driver}
34
- * @param {string} attribute
35
- * @param {string} elementId
36
- * @returns {Promise<string?>}
33
+ * Gets an element attribute value.
34
+ * @param attribute - Name of the attribute to retrieve.
35
+ * @param elementId - ID of the element.
36
+ * @returns The attribute value as a string.
37
37
  */
38
38
  async function getAttribute(attribute, elementId) {
39
39
  return String(await this.uiautomator2.jwproxy.command(`/element/${elementId}/attribute/${attribute}`, 'GET', {}));
40
40
  }
41
41
  /**
42
- * @this {AndroidUiautomator2Driver}
43
- * @param {string} elementId
44
- * @returns {Promise<boolean>}
42
+ * Returns whether the element is displayed.
43
+ * @param elementId - ID of the element.
44
+ * @returns True if the element is displayed, false otherwise.
45
45
  */
46
46
  async function elementDisplayed(elementId) {
47
47
  return toBool(await this.getAttribute('displayed', elementId));
48
48
  }
49
49
  /**
50
- * @this {AndroidUiautomator2Driver}
51
- * @param {string} elementId
52
- * @returns {Promise<boolean>}
50
+ * Returns whether the element is enabled.
51
+ * @param elementId - ID of the element.
52
+ * @returns True if the element is enabled, false otherwise.
53
53
  */
54
54
  async function elementEnabled(elementId) {
55
55
  return toBool(await this.getAttribute('enabled', elementId));
56
56
  }
57
57
  /**
58
- * @this {AndroidUiautomator2Driver}
59
- * @param {string} elementId
60
- * @returns {Promise<boolean>}
58
+ * Returns whether the element is selected.
59
+ * @param elementId - ID of the element.
60
+ * @returns True if the element is selected, false otherwise.
61
61
  */
62
62
  async function elementSelected(elementId) {
63
63
  return toBool(await this.getAttribute('selected', elementId));
64
64
  }
65
65
  /**
66
- * @this {AndroidUiautomator2Driver}
67
- * @param {string} elementId
68
- * @returns {Promise<string>}
66
+ * Gets the element tag name.
67
+ * @param elementId - ID of the element.
68
+ * @returns The element tag name.
69
69
  */
70
70
  async function getName(elementId) {
71
- return /** @type {string} */ (await this.uiautomator2.jwproxy.command(`/element/${elementId}/name`, 'GET', {}));
71
+ return (await this.uiautomator2.jwproxy.command(`/element/${elementId}/name`, 'GET', {}));
72
72
  }
73
73
  /**
74
- * @this {AndroidUiautomator2Driver}
75
- * @param {string} elementId
76
- * @returns {Promise<import('@appium/types').Position>}
74
+ * Gets the element location.
75
+ * @param elementId - ID of the element.
76
+ * @returns The element position coordinates (x, y).
77
77
  */
78
78
  async function getLocation(elementId) {
79
- return /** @type {import('@appium/types').Position} */ (await this.uiautomator2.jwproxy.command(`/element/${elementId}/location`, 'GET', {}));
79
+ return (await this.uiautomator2.jwproxy.command(`/element/${elementId}/location`, 'GET', {}));
80
80
  }
81
81
  /**
82
- * @this {AndroidUiautomator2Driver}
83
- * @param {string} elementId
84
- * @returns {Promise<import('@appium/types').Size>}
82
+ * Gets the element size.
83
+ * @param elementId - ID of the element.
84
+ * @returns The element size (width, height).
85
85
  */
86
86
  async function getSize(elementId) {
87
- return /** @type {import('@appium/types').Size} */ (await this.uiautomator2.jwproxy.command(`/element/${elementId}/size`, 'GET', {}));
87
+ return (await this.uiautomator2.jwproxy.command(`/element/${elementId}/size`, 'GET', {}));
88
88
  }
89
89
  /**
90
- * @this {AndroidUiautomator2Driver}
91
- * @param {import('appium-android-driver').DoSetElementValueOpts} params
92
- * @returns {Promise<void>}
90
+ * Sets the value of an element using the upstream driver API.
91
+ * @param params - Options containing the element ID and value to set.
93
92
  */
94
93
  async function doSetElementValue(params) {
95
94
  await this.uiautomator2.jwproxy.command(`/element/${params.elementId}/value`, 'POST', params);
96
95
  }
97
96
  /**
98
- * @this {AndroidUiautomator2Driver}
99
- * @param {string|string[]} keys
100
- * @param {string} elementId
101
- * @returns {Promise<void>}
97
+ * Sends text to an element without replacement.
98
+ * @param keys - Text to send, either as a string or array of strings (which will be joined).
99
+ * @param elementId - ID of the element.
102
100
  */
103
101
  async function setValueImmediate(keys, elementId) {
104
102
  await this.uiautomator2.jwproxy.command(`/element/${elementId}/value`, 'POST', {
@@ -108,67 +106,58 @@ async function setValueImmediate(keys, elementId) {
108
106
  });
109
107
  }
110
108
  /**
111
- * @this {AndroidUiautomator2Driver}
112
- * @param {string} elementId
113
- * @returns {Promise<string>}
109
+ * Gets the element text.
110
+ * @param elementId - ID of the element.
111
+ * @returns The element text content.
114
112
  */
115
113
  async function getText(elementId) {
116
114
  return String(await this.uiautomator2.jwproxy.command(`/element/${elementId}/text`, 'GET', {}));
117
115
  }
118
116
  /**
119
- * @this {AndroidUiautomator2Driver}
120
- * @param {string} element
121
- * @returns {Promise<void>}
117
+ * Clicks the given element.
118
+ * @param element - ID of the element to click.
122
119
  */
123
120
  async function click(element) {
124
121
  await this.uiautomator2.jwproxy.command(`/element/${element}/click`, 'POST', { element });
125
122
  }
126
123
  /**
127
- * @this {AndroidUiautomator2Driver}
128
- * @param {string} element
129
- * @returns {Promise<string>}
124
+ * Takes a screenshot of the element.
125
+ * @param element - ID of the element.
126
+ * @returns Base64-encoded PNG screenshot of the element.
130
127
  */
131
128
  async function getElementScreenshot(element) {
132
129
  return String(await this.uiautomator2.jwproxy.command(`/element/${element}/screenshot`, 'GET', {}));
133
130
  }
134
131
  /**
135
- * @this {AndroidUiautomator2Driver}
136
- * @param {string} elementId
137
- * @returns {Promise<void>}
132
+ * Clears the element text.
133
+ * @param elementId - ID of the element to clear.
138
134
  */
139
135
  async function clear(elementId) {
140
- await this.uiautomator2.jwproxy.command(`/element/${elementId}/clear`, 'POST', {
141
- elementId,
142
- });
136
+ await this.uiautomator2.jwproxy.command(`/element/${elementId}/clear`, 'POST', { elementId });
143
137
  }
144
138
  /**
145
- * @this {AndroidUiautomator2Driver}
146
- * @param {string} elementId
147
- * @returns {Promise<import('@appium/types').Rect>}
139
+ * Gets the element rectangle.
140
+ * @param elementId - ID of the element.
141
+ * @returns The element rectangle (x, y, width, height).
148
142
  */
149
143
  async function getElementRect(elementId) {
150
- const chromedriver = /** @type {import('appium-chromedriver').default} */ (this.chromedriver);
151
- if (this.isWebContext()) {
152
- this.log.debug(`Detected downstream chromedriver protocol: ${chromedriver.jwproxy.downstreamProtocol}`);
153
- if (chromedriver.jwproxy.downstreamProtocol === driver_1.PROTOCOLS.MJSONWP) {
154
- const [{ x, y }, { width, height }] =
155
- /** @type {[import('@appium/types').Position, import('@appium/types').Size]} */ (await bluebird_1.default.all([
156
- chromedriver.jwproxy.command(`/element/${elementId}/location`, 'GET'),
157
- chromedriver.jwproxy.command(`/element/${elementId}/size`, 'GET'),
158
- ]));
159
- return { x, y, width, height };
160
- }
161
- return /** @type {import('@appium/types').Rect} */ (await chromedriver.jwproxy.command(`/element/${elementId}/rect`, 'GET'));
144
+ if (!this.isWebContext()) {
145
+ return (await this.uiautomator2.jwproxy.command(`/element/${elementId}/rect`, 'GET'));
146
+ }
147
+ const chromedriver = this.chromedriver;
148
+ if (chromedriver.jwproxy.downstreamProtocol === driver_1.PROTOCOLS.MJSONWP) {
149
+ const [{ x, y }, { width, height }] = (await bluebird_1.default.all([
150
+ chromedriver.jwproxy.command(`/element/${elementId}/location`, 'GET'),
151
+ chromedriver.jwproxy.command(`/element/${elementId}/size`, 'GET'),
152
+ ]));
153
+ return { x, y, width, height };
162
154
  }
163
- return /** @type {import('@appium/types').Rect} */ (await this.uiautomator2.jwproxy.command(`/element/${elementId}/rect`, 'GET'));
155
+ return (await chromedriver.jwproxy.command(`/element/${elementId}/rect`, 'GET'));
164
156
  }
165
157
  /**
166
- * Sends text to the given element by replacing its previous content
167
- * @this {AndroidUiautomator2Driver}
168
- * @param {string} elementId The id of the element whose content will be replaced.
169
- * @param {string} text The actual text to set.
170
- * @throws {Error} If there was a faulre while setting the text
171
- * @returns {Promise<void>}
158
+ * Replaces the element text.
159
+ * @param elementId - ID of the element.
160
+ * @param text - Text to replace the current element value with.
172
161
  */
173
162
  async function mobileReplaceElementValue(elementId, text) {
174
163
  await this.uiautomator2.jwproxy.command(`/element/${elementId}/value`, 'POST', {
@@ -176,16 +165,7 @@ async function mobileReplaceElementValue(elementId, text) {
176
165
  replace: true,
177
166
  });
178
167
  }
179
- // #region Internal Helpers
180
- /**
181
- * @param {any} s
182
- * @returns {boolean}
183
- */
184
- function toBool(s) {
185
- return lodash_1.default.isString(s) ? s.toLowerCase() === 'true' : !!s;
168
+ function toBool(value) {
169
+ return lodash_1.default.isString(value) ? value.toLowerCase() === 'true' : !!value;
186
170
  }
187
- // #endregion
188
- /**
189
- * @typedef {import('../driver').AndroidUiautomator2Driver} AndroidUiautomator2Driver
190
- */
191
171
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
+ import type { Element as AppiumElement } from '@appium/types';
2
+ import type { FindElementOpts } from 'appium-android-driver';
3
+ import type { AndroidUiautomator2Driver } from '../driver';
1
4
  /**
2
- * @privateRemarks Overriding helpers.doFindElementOrEls functionality of appium-android-driver,
3
- * this.element initialized in find.js of appium-android-drive.
4
- *
5
- * @this {AndroidUiautomator2Driver}
6
- * @param {import('appium-android-driver').FindElementOpts} params
7
- * @returns {Promise<Element | Element[]>}
5
+ * Overrides helpers.doFindElementOrEls functionality of appium-android-driver.
6
+ * Handles special xpath selectors and CSS selector conversion.
7
+ * @param params - Element finding options including strategy, selector, context, and multiple flag.
8
+ * @returns A single element if `params.multiple` is false, or an array of elements if true.
8
9
  */
9
- export function doFindElementOrEls(this: import("../driver").AndroidUiautomator2Driver, params: import("appium-android-driver").FindElementOpts): Promise<Element | Element[]>;
10
- export type Element = import("@appium/types").Element;
11
- export type AndroidUiautomator2Driver = import("../driver").AndroidUiautomator2Driver;
10
+ export declare function doFindElementOrEls(this: AndroidUiautomator2Driver, params: FindElementOpts & {
11
+ multiple: true;
12
+ }): Promise<AppiumElement[]>;
13
+ export declare function doFindElementOrEls(this: AndroidUiautomator2Driver, params: FindElementOpts & {
14
+ multiple: false;
15
+ }): Promise<AppiumElement>;
12
16
  //# sourceMappingURL=find.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.js"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH,gGAHW,OAAO,uBAAuB,EAAE,eAAe,GAC7C,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC,CA0BxC;sBAGY,OAAO,eAAe,EAAE,OAAO;wCAC/B,OAAO,WAAW,EAAE,yBAAyB"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AASzD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,yBAAyB,EAC/B,MAAM,EAAE,eAAe,GAAG;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAC,GACzC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAC5B,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,yBAAyB,EAC/B,MAAM,EAAE,eAAe,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAC,GAC1C,OAAO,CAAC,aAAa,CAAC,CAAC"}
@@ -7,19 +7,11 @@ const css_converter_1 = require("../css-converter");
7
7
  const MAGIC_FIRST_VIS_CHILD_SEL = /\/\*\[@firstVisible ?= ?('|")true\1\]/;
8
8
  const MAGIC_SCROLLABLE_SEL = /\/\/\*\[@scrollable ?= ?('|")true\1\]/;
9
9
  const MAGIC_SCROLLABLE_BY = 'new UiSelector().scrollable(true)';
10
- /**
11
- * @privateRemarks Overriding helpers.doFindElementOrEls functionality of appium-android-driver,
12
- * this.element initialized in find.js of appium-android-drive.
13
- *
14
- * @this {AndroidUiautomator2Driver}
15
- * @param {import('appium-android-driver').FindElementOpts} params
16
- * @returns {Promise<Element | Element[]>}
17
- */
18
10
  async function doFindElementOrEls(params) {
19
- const uiautomator2 = /** @type {import('../uiautomator2').UiAutomator2Server} */ (this.uiautomator2);
11
+ const uiautomator2 = this.uiautomator2;
20
12
  if (params.strategy === 'xpath' && MAGIC_FIRST_VIS_CHILD_SEL.test(params.selector)) {
21
- let elementId = params.context;
22
- return /** @type {Element} */ (await uiautomator2.jwproxy.command(`/appium/element/${elementId}/first_visible`, 'GET', {}));
13
+ const elementId = params.context;
14
+ return (await uiautomator2.jwproxy.command(`/appium/element/${elementId}/first_visible`, 'GET', {}));
23
15
  }
24
16
  if (params.strategy === 'xpath' && MAGIC_SCROLLABLE_SEL.test(params.selector)) {
25
17
  params.strategy = '-android uiautomator';
@@ -29,10 +21,6 @@ async function doFindElementOrEls(params) {
29
21
  params.strategy = '-android uiautomator';
30
22
  params.selector = new css_converter_1.CssConverter(params.selector, this.opts.appPackage).toUiAutomatorSelector();
31
23
  }
32
- return /** @type {Element|Element[]} */ (await uiautomator2.jwproxy.command(`/element${params.multiple ? 's' : ''}`, 'POST', params));
24
+ return (await uiautomator2.jwproxy.command(`/element${params.multiple ? 's' : ''}`, 'POST', params));
33
25
  }
34
- /**
35
- * @typedef {import('@appium/types').Element} Element
36
- * @typedef {import('../driver').AndroidUiautomator2Driver} AndroidUiautomator2Driver
37
- */
38
26
  //# sourceMappingURL=find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.js"],"names":[],"mappings":";;AAiBA,gDAwBC;AAzCD,oDAA8C;AAE9C,4EAA4E;AAC5E,sCAAsC;AACtC,MAAM,yBAAyB,GAAG,uCAAuC,CAAC;AAE1E,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AACrE,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAEhE;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CAAC,MAAM;IAC7C,MAAM,YAAY,GAAG,2DAA2D,CAAC,CAC/E,IAAI,CAAC,YAAY,CAClB,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnF,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,OAAO,sBAAsB,CAAC,CAC5B,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,SAAS,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,CAAC,QAAQ,GAAG,sBAAsB,CAAC;QACzC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;QACvC,MAAM,CAAC,QAAQ,GAAG,sBAAsB,CAAC;QACzC,MAAM,CAAC,QAAQ,GAAG,IAAI,4BAAY,CAChC,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,IAAI,CAAC,UAAU,CACrB,CAAC,qBAAqB,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,gCAAgC,CAAC,CACtC,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED;;;GAGG"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":";;AA0BA,gDAoBC;AA9CD,oDAA8C;AAK9C,4EAA4E;AAC5E,sCAAsC;AACtC,MAAM,yBAAyB,GAAG,uCAAuC,CAAC;AAE1E,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AACrE,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AAgBzD,KAAK,UAAU,kBAAkB,CAEtC,MAAuB;IAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,SAAS,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAkB,CAAC;IACxH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,MAAM,CAAC,QAAQ,GAAG,sBAAsB,CAAC;QACzC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;QACvC,MAAM,CAAC,QAAQ,GAAG,sBAAsB,CAAC;QACzC,MAAM,CAAC,QAAQ,GAAG,IAAI,4BAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,qBAAqB,EAAE,CAAC;IACpG,CAAC;IACD,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAEhF,CAAC;AACtB,CAAC"}