appium-android-driver 7.8.2 → 8.0.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.
Files changed (261) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/build/lib/commands/app-management.d.ts +129 -5
  3. package/build/lib/commands/app-management.d.ts.map +1 -1
  4. package/build/lib/commands/app-management.js +433 -128
  5. package/build/lib/commands/app-management.js.map +1 -1
  6. package/build/lib/commands/appearance.d.ts +17 -4
  7. package/build/lib/commands/appearance.d.ts.map +1 -1
  8. package/build/lib/commands/appearance.js +32 -33
  9. package/build/lib/commands/appearance.js.map +1 -1
  10. package/build/lib/commands/context/cache.d.ts +19 -0
  11. package/build/lib/commands/context/cache.d.ts.map +1 -0
  12. package/build/lib/commands/context/cache.js +32 -0
  13. package/build/lib/commands/context/cache.js.map +1 -0
  14. package/build/lib/commands/context/exports.d.ts +141 -0
  15. package/build/lib/commands/context/exports.d.ts.map +1 -0
  16. package/build/lib/commands/context/exports.js +351 -0
  17. package/build/lib/commands/context/exports.js.map +1 -0
  18. package/build/lib/commands/context/helpers.d.ts +98 -0
  19. package/build/lib/commands/context/helpers.d.ts.map +1 -0
  20. package/build/lib/commands/context/helpers.js +715 -0
  21. package/build/lib/commands/context/helpers.js.map +1 -0
  22. package/build/lib/commands/device/common.d.ts +23 -0
  23. package/build/lib/commands/device/common.d.ts.map +1 -0
  24. package/build/lib/commands/device/common.js +230 -0
  25. package/build/lib/commands/device/common.js.map +1 -0
  26. package/build/lib/commands/device/emulator-actions.d.ts +114 -0
  27. package/build/lib/commands/device/emulator-actions.d.ts.map +1 -0
  28. package/build/lib/commands/device/emulator-actions.js +197 -0
  29. package/build/lib/commands/device/emulator-actions.js.map +1 -0
  30. package/build/lib/commands/device/emulator-console.d.ts +7 -0
  31. package/build/lib/commands/device/emulator-console.d.ts.map +1 -0
  32. package/build/lib/commands/device/emulator-console.js +24 -0
  33. package/build/lib/commands/device/emulator-console.js.map +1 -0
  34. package/build/lib/commands/device/utils.d.ts +50 -0
  35. package/build/lib/commands/device/utils.d.ts.map +1 -0
  36. package/build/lib/commands/device/utils.js +238 -0
  37. package/build/lib/commands/device/utils.js.map +1 -0
  38. package/build/lib/commands/deviceidle.d.ts +8 -5
  39. package/build/lib/commands/deviceidle.d.ts.map +1 -1
  40. package/build/lib/commands/deviceidle.js +31 -37
  41. package/build/lib/commands/deviceidle.js.map +1 -1
  42. package/build/lib/commands/element.d.ts +99 -5
  43. package/build/lib/commands/element.d.ts.map +1 -1
  44. package/build/lib/commands/element.js +152 -116
  45. package/build/lib/commands/element.js.map +1 -1
  46. package/build/lib/commands/execute.d.ts +12 -4
  47. package/build/lib/commands/execute.d.ts.map +1 -1
  48. package/build/lib/commands/execute.js +83 -78
  49. package/build/lib/commands/execute.js.map +1 -1
  50. package/build/lib/commands/file-actions.d.ts +42 -5
  51. package/build/lib/commands/file-actions.d.ts.map +1 -1
  52. package/build/lib/commands/file-actions.js +230 -194
  53. package/build/lib/commands/file-actions.js.map +1 -1
  54. package/build/lib/commands/find.d.ts +5 -4
  55. package/build/lib/commands/find.d.ts.map +1 -1
  56. package/build/lib/commands/find.js +7 -10
  57. package/build/lib/commands/find.js.map +1 -1
  58. package/build/lib/commands/geolocation.d.ts +45 -0
  59. package/build/lib/commands/geolocation.d.ts.map +1 -0
  60. package/build/lib/commands/geolocation.js +182 -0
  61. package/build/lib/commands/geolocation.js.map +1 -0
  62. package/build/lib/commands/ime.d.ts +25 -5
  63. package/build/lib/commands/ime.d.ts.map +1 -1
  64. package/build/lib/commands/ime.js +59 -42
  65. package/build/lib/commands/ime.js.map +1 -1
  66. package/build/lib/commands/intent.d.ts +56 -5
  67. package/build/lib/commands/intent.d.ts.map +1 -1
  68. package/build/lib/commands/intent.js +135 -83
  69. package/build/lib/commands/intent.js.map +1 -1
  70. package/build/lib/commands/keyboard.d.ts +58 -4
  71. package/build/lib/commands/keyboard.d.ts.map +1 -1
  72. package/build/lib/commands/keyboard.js +119 -17
  73. package/build/lib/commands/keyboard.js.map +1 -1
  74. package/build/lib/commands/lock/exports.d.ts +301 -0
  75. package/build/lib/commands/lock/exports.d.ts.map +1 -0
  76. package/build/lib/commands/lock/exports.js +121 -0
  77. package/build/lib/commands/lock/exports.js.map +1 -0
  78. package/build/lib/commands/lock/helpers.d.ts +349 -0
  79. package/build/lib/commands/lock/helpers.d.ts.map +1 -0
  80. package/build/lib/commands/lock/helpers.js +375 -0
  81. package/build/lib/commands/lock/helpers.js.map +1 -0
  82. package/build/lib/commands/log.d.ts +59 -5
  83. package/build/lib/commands/log.d.ts.map +1 -1
  84. package/build/lib/commands/log.js +150 -140
  85. package/build/lib/commands/log.js.map +1 -1
  86. package/build/lib/commands/media-projection.d.ts +16 -5
  87. package/build/lib/commands/media-projection.d.ts.map +1 -1
  88. package/build/lib/commands/media-projection.js +69 -58
  89. package/build/lib/commands/media-projection.js.map +1 -1
  90. package/build/lib/commands/memory.d.ts +9 -5
  91. package/build/lib/commands/memory.d.ts.map +1 -1
  92. package/build/lib/commands/memory.js +19 -24
  93. package/build/lib/commands/memory.js.map +1 -1
  94. package/build/lib/commands/misc.d.ts +42 -0
  95. package/build/lib/commands/misc.d.ts.map +1 -0
  96. package/build/lib/commands/misc.js +100 -0
  97. package/build/lib/commands/misc.js.map +1 -0
  98. package/build/lib/commands/network.d.ts +61 -5
  99. package/build/lib/commands/network.d.ts.map +1 -1
  100. package/build/lib/commands/network.js +196 -189
  101. package/build/lib/commands/network.js.map +1 -1
  102. package/build/lib/commands/performance.d.ts +67 -27
  103. package/build/lib/commands/performance.d.ts.map +1 -1
  104. package/build/lib/commands/performance.js +105 -80
  105. package/build/lib/commands/performance.js.map +1 -1
  106. package/build/lib/commands/permissions.d.ts +12 -6
  107. package/build/lib/commands/permissions.d.ts.map +1 -1
  108. package/build/lib/commands/permissions.js +65 -62
  109. package/build/lib/commands/permissions.js.map +1 -1
  110. package/build/lib/commands/recordscreen.d.ts +44 -5
  111. package/build/lib/commands/recordscreen.d.ts.map +1 -1
  112. package/build/lib/commands/recordscreen.js +131 -126
  113. package/build/lib/commands/recordscreen.js.map +1 -1
  114. package/build/lib/commands/resources.d.ts +16 -0
  115. package/build/lib/commands/resources.d.ts.map +1 -0
  116. package/build/lib/commands/resources.js +91 -0
  117. package/build/lib/commands/resources.js.map +1 -0
  118. package/build/lib/commands/shell.d.ts +8 -5
  119. package/build/lib/commands/shell.d.ts.map +1 -1
  120. package/build/lib/commands/shell.js +29 -33
  121. package/build/lib/commands/shell.js.map +1 -1
  122. package/build/lib/commands/streamscreen.d.ts +34 -6
  123. package/build/lib/commands/streamscreen.d.ts.map +1 -1
  124. package/build/lib/commands/streamscreen.js +166 -162
  125. package/build/lib/commands/streamscreen.js.map +1 -1
  126. package/build/lib/commands/system-bars.d.ts +18 -13
  127. package/build/lib/commands/system-bars.d.ts.map +1 -1
  128. package/build/lib/commands/system-bars.js +68 -64
  129. package/build/lib/commands/system-bars.js.map +1 -1
  130. package/build/lib/commands/time.d.ts +14 -0
  131. package/build/lib/commands/time.d.ts.map +1 -0
  132. package/build/lib/commands/time.js +39 -0
  133. package/build/lib/commands/time.js.map +1 -0
  134. package/build/lib/commands/touch.d.ts +99 -6
  135. package/build/lib/commands/touch.d.ts.map +1 -1
  136. package/build/lib/commands/touch.js +399 -280
  137. package/build/lib/commands/touch.js.map +1 -1
  138. package/build/lib/commands/types.d.ts +115 -3
  139. package/build/lib/commands/types.d.ts.map +1 -1
  140. package/build/lib/doctor/checks.d.ts.map +1 -1
  141. package/build/lib/doctor/checks.js +4 -4
  142. package/build/lib/doctor/checks.js.map +1 -1
  143. package/build/lib/driver.d.ts +224 -27
  144. package/build/lib/driver.d.ts.map +1 -1
  145. package/build/lib/driver.js +232 -7
  146. package/build/lib/driver.js.map +1 -1
  147. package/build/lib/index.d.ts +1 -4
  148. package/build/lib/index.d.ts.map +1 -1
  149. package/build/lib/index.js +1 -13
  150. package/build/lib/index.js.map +1 -1
  151. package/build/lib/logger.js.map +1 -1
  152. package/build/lib/method-map.d.ts +0 -23
  153. package/build/lib/method-map.d.ts.map +1 -1
  154. package/build/lib/method-map.js +0 -11
  155. package/build/lib/method-map.js.map +1 -1
  156. package/build/lib/utils.d.ts +12 -0
  157. package/build/lib/utils.d.ts.map +1 -1
  158. package/build/lib/utils.js +38 -2
  159. package/build/lib/utils.js.map +1 -1
  160. package/lib/commands/app-management.js +470 -145
  161. package/lib/commands/appearance.js +29 -36
  162. package/lib/commands/context/cache.js +29 -0
  163. package/lib/commands/context/exports.js +379 -0
  164. package/lib/commands/context/helpers.js +802 -0
  165. package/lib/commands/device/common.js +264 -0
  166. package/lib/commands/device/emulator-actions.js +194 -0
  167. package/lib/commands/device/emulator-console.js +24 -0
  168. package/lib/commands/device/utils.js +285 -0
  169. package/lib/commands/deviceidle.js +31 -44
  170. package/lib/commands/element.js +149 -142
  171. package/lib/commands/execute.js +86 -87
  172. package/lib/commands/file-actions.js +249 -222
  173. package/lib/commands/find.ts +13 -19
  174. package/lib/commands/geolocation.js +179 -0
  175. package/lib/commands/ime.js +53 -45
  176. package/lib/commands/intent.js +149 -91
  177. package/lib/commands/keyboard.js +114 -17
  178. package/lib/commands/lock/exports.js +139 -0
  179. package/lib/commands/lock/helpers.js +379 -0
  180. package/lib/commands/log.js +170 -166
  181. package/lib/commands/media-projection.js +75 -70
  182. package/lib/commands/memory.js +17 -29
  183. package/lib/commands/misc.js +94 -0
  184. package/lib/commands/network.js +209 -223
  185. package/lib/commands/performance.js +88 -73
  186. package/lib/commands/permissions.js +83 -84
  187. package/lib/commands/recordscreen.js +171 -170
  188. package/lib/commands/resources.js +96 -0
  189. package/lib/commands/shell.js +28 -42
  190. package/lib/commands/streamscreen.js +207 -206
  191. package/lib/commands/system-bars.js +76 -77
  192. package/lib/commands/time.js +36 -0
  193. package/lib/commands/touch.js +442 -346
  194. package/lib/commands/types.ts +142 -10
  195. package/lib/doctor/checks.js +24 -16
  196. package/lib/driver.ts +454 -12
  197. package/lib/index.ts +1 -13
  198. package/lib/logger.js +1 -1
  199. package/lib/method-map.js +0 -11
  200. package/lib/utils.js +40 -3
  201. package/package.json +1 -1
  202. package/build/lib/commands/actions.d.ts +0 -8
  203. package/build/lib/commands/actions.d.ts.map +0 -1
  204. package/build/lib/commands/actions.js +0 -207
  205. package/build/lib/commands/actions.js.map +0 -1
  206. package/build/lib/commands/alert.d.ts +0 -8
  207. package/build/lib/commands/alert.d.ts.map +0 -1
  208. package/build/lib/commands/alert.js +0 -29
  209. package/build/lib/commands/alert.js.map +0 -1
  210. package/build/lib/commands/context.d.ts +0 -10
  211. package/build/lib/commands/context.d.ts.map +0 -1
  212. package/build/lib/commands/context.js +0 -431
  213. package/build/lib/commands/context.js.map +0 -1
  214. package/build/lib/commands/emu-console.d.ts +0 -7
  215. package/build/lib/commands/emu-console.d.ts.map +0 -1
  216. package/build/lib/commands/emu-console.js +0 -27
  217. package/build/lib/commands/emu-console.js.map +0 -1
  218. package/build/lib/commands/general.d.ts +0 -9
  219. package/build/lib/commands/general.d.ts.map +0 -1
  220. package/build/lib/commands/general.js +0 -293
  221. package/build/lib/commands/general.js.map +0 -1
  222. package/build/lib/commands/index.d.ts +0 -28
  223. package/build/lib/commands/index.d.ts.map +0 -1
  224. package/build/lib/commands/index.js +0 -57
  225. package/build/lib/commands/index.js.map +0 -1
  226. package/build/lib/commands/mixins.d.ts +0 -747
  227. package/build/lib/commands/mixins.d.ts.map +0 -1
  228. package/build/lib/commands/mixins.js +0 -19
  229. package/build/lib/commands/mixins.js.map +0 -1
  230. package/build/lib/helpers/android.d.ts +0 -163
  231. package/build/lib/helpers/android.d.ts.map +0 -1
  232. package/build/lib/helpers/android.js +0 -818
  233. package/build/lib/helpers/android.js.map +0 -1
  234. package/build/lib/helpers/index.d.ts +0 -7
  235. package/build/lib/helpers/index.d.ts.map +0 -1
  236. package/build/lib/helpers/index.js +0 -29
  237. package/build/lib/helpers/index.js.map +0 -1
  238. package/build/lib/helpers/types.d.ts +0 -122
  239. package/build/lib/helpers/types.d.ts.map +0 -1
  240. package/build/lib/helpers/types.js +0 -3
  241. package/build/lib/helpers/types.js.map +0 -1
  242. package/build/lib/helpers/unlock.d.ts +0 -32
  243. package/build/lib/helpers/unlock.d.ts.map +0 -1
  244. package/build/lib/helpers/unlock.js +0 -273
  245. package/build/lib/helpers/unlock.js.map +0 -1
  246. package/build/lib/helpers/webview.d.ts +0 -74
  247. package/build/lib/helpers/webview.d.ts.map +0 -1
  248. package/build/lib/helpers/webview.js +0 -442
  249. package/build/lib/helpers/webview.js.map +0 -1
  250. package/lib/commands/actions.js +0 -244
  251. package/lib/commands/alert.js +0 -34
  252. package/lib/commands/context.js +0 -507
  253. package/lib/commands/emu-console.js +0 -31
  254. package/lib/commands/general.js +0 -343
  255. package/lib/commands/index.ts +0 -54
  256. package/lib/commands/mixins.ts +0 -976
  257. package/lib/helpers/android.ts +0 -1153
  258. package/lib/helpers/index.ts +0 -6
  259. package/lib/helpers/types.ts +0 -136
  260. package/lib/helpers/unlock.ts +0 -329
  261. package/lib/helpers/webview.ts +0 -604
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mobileExecEmuConsoleCommand = void 0;
4
+ const driver_1 = require("appium/driver");
5
+ const EMU_CONSOLE_FEATURE = 'emulator_console';
6
+ /**
7
+ * @this {import('../../driver').AndroidDriver}
8
+ * @param {import('../types').ExecOptions} opts
9
+ * @returns {Promise<string>}
10
+ */
11
+ async function mobileExecEmuConsoleCommand(opts) {
12
+ this.ensureFeatureEnabled(EMU_CONSOLE_FEATURE);
13
+ const { command, execTimeout, connTimeout, initTimeout } = opts;
14
+ if (!command) {
15
+ throw new driver_1.errors.InvalidArgumentError(`The 'command' argument is mandatory`);
16
+ }
17
+ return await /** @type {import('appium-adb').ADB} */ (this.adb).execEmuConsoleCommand(command, {
18
+ execTimeout,
19
+ connTimeout,
20
+ initTimeout,
21
+ });
22
+ }
23
+ exports.mobileExecEmuConsoleCommand = mobileExecEmuConsoleCommand;
24
+ //# sourceMappingURL=emulator-console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulator-console.js","sourceRoot":"","sources":["../../../../lib/commands/device/emulator-console.js"],"names":[],"mappings":";;;AAAA,0CAAqC;AAErC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C;;;;GAIG;AACI,KAAK,UAAU,2BAA2B,CAAC,IAAI;IACpD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAE/C,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;IAE9D,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,eAAM,CAAC,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;KAC9E;IAED,OAAO,MAAM,uCAAuC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE;QAC7F,WAAW;QACX,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAdD,kEAcC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @this {import('../../driver').AndroidDriver}
3
+ * @param {string} errMsg
4
+ */
5
+ export function requireEmulator(this: import("../../driver").AndroidDriver, errMsg: string): void;
6
+ /**
7
+ * @this {import('../../driver').AndroidDriver}
8
+ * @returns {void}
9
+ */
10
+ export function validatePackageActivityNames(this: import("../../driver").AndroidDriver): void;
11
+ /**
12
+ * @this {import('../../driver').AndroidDriver}
13
+ * @param {string} networkSpeed
14
+ * @returns {string}
15
+ */
16
+ export function ensureNetworkSpeed(this: import("../../driver").AndroidDriver, networkSpeed: string): string;
17
+ /**
18
+ * @this {import('../../driver').AndroidDriver}
19
+ * @returns {string[]}
20
+ */
21
+ export function prepareAvdArgs(this: import("../../driver").AndroidDriver): string[];
22
+ /**
23
+ * @this {import('../../driver').AndroidDriver}
24
+ * @returns {Promise<void>}
25
+ */
26
+ export function prepareEmulator(this: import("../../driver").AndroidDriver): Promise<void>;
27
+ /**
28
+ * @param {import('../../driver').AndroidDriverOpts?} [opts=null]
29
+ * @returns {Promise<ADB>}
30
+ */
31
+ export function createBaseADB(opts?: import("../../driver").AndroidDriverOpts | null | undefined): Promise<ADB>;
32
+ /**
33
+ * @this {import('../../driver').AndroidDriver}
34
+ * @param {boolean} throwIfError
35
+ * @returns {Promise<void>}
36
+ */
37
+ export function pushSettingsApp(this: import("../../driver").AndroidDriver, throwIfError: boolean): Promise<void>;
38
+ /**
39
+ * @deprecated
40
+ * @this {import('../../driver').AndroidDriver}
41
+ * @returns {Promise<string?>}
42
+ */
43
+ export function initUnicodeKeyboard(this: import("../../driver").AndroidDriver): Promise<string | null>;
44
+ /**
45
+ * @this {import('../../driver').AndroidDriver}
46
+ * @returns {Promise<void>}
47
+ */
48
+ export function hideKeyboardCompletely(this: import("../../driver").AndroidDriver): Promise<void>;
49
+ import ADB from 'appium-adb';
50
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/commands/device/utils.js"],"names":[],"mappings":"AAeA;;;GAGG;AACH,oFAFW,MAAM,QAMhB;AAED;;;GAGG;AACH,0FAFa,IAAI,CAuBhB;AAED;;;;GAIG;AACH,6FAHW,MAAM,GACJ,MAAM,CAWlB;AAED;;;GAGG;AACH,4EAFa,MAAM,EAAE,CAmBpB;AAED;;;GAGG;AACH,6EAFa,QAAQ,IAAI,CAAC,CAyCzB;AAED;;;GAGG;AACH,mGAFa,QAAQ,GAAG,CAAC,CAqCxB;AAED;;;;GAIG;AACH,0FAHW,OAAO,GACL,QAAQ,IAAI,CAAC,CA4EzB;AAED;;;;GAIG;AACH,iFAFa,QAAQ,MAAM,QAAE,CAa5B;AAED;;;GAGG;AACH,oFAFa,QAAQ,IAAI,CAAC,CAMzB;gBA1Re,YAAY"}
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hideKeyboardCompletely = exports.initUnicodeKeyboard = exports.pushSettingsApp = exports.createBaseADB = exports.prepareEmulator = exports.prepareAvdArgs = exports.ensureNetworkSpeed = exports.validatePackageActivityNames = exports.requireEmulator = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const support_1 = require("@appium/support");
9
+ const appium_adb_1 = __importDefault(require("appium-adb"));
10
+ const asyncbox_1 = require("asyncbox");
11
+ const io_appium_settings_1 = require("io.appium.settings");
12
+ const bluebird_1 = __importDefault(require("bluebird"));
13
+ const HELPER_APP_INSTALL_RETRIES = 3;
14
+ const HELPER_APP_INSTALL_RETRY_DELAY_MS = 5000;
15
+ /**
16
+ * @this {import('../../driver').AndroidDriver}
17
+ * @param {string} errMsg
18
+ */
19
+ function requireEmulator(errMsg) {
20
+ if (!this.isEmulator()) {
21
+ this.log.errorAndThrow(errMsg);
22
+ }
23
+ }
24
+ exports.requireEmulator = requireEmulator;
25
+ /**
26
+ * @this {import('../../driver').AndroidDriver}
27
+ * @returns {void}
28
+ */
29
+ function validatePackageActivityNames() {
30
+ for (const key of ['appPackage', 'appActivity', 'appWaitPackage', 'appWaitActivity']) {
31
+ const name = this.opts[key];
32
+ if (!name) {
33
+ continue;
34
+ }
35
+ const match = /([^\w.*,])+/.exec(String(name));
36
+ if (!match) {
37
+ continue;
38
+ }
39
+ this.log.warn(`Capability '${key}' is expected to only include latin letters, digits, underscore, dot, comma and asterisk characters.`);
40
+ this.log.warn(`Current value '${name}' has non-matching character at index ${match.index}: '${String(name).substring(0, match.index + 1)}'`);
41
+ }
42
+ }
43
+ exports.validatePackageActivityNames = validatePackageActivityNames;
44
+ /**
45
+ * @this {import('../../driver').AndroidDriver}
46
+ * @param {string} networkSpeed
47
+ * @returns {string}
48
+ */
49
+ function ensureNetworkSpeed(networkSpeed) {
50
+ if (networkSpeed.toUpperCase() in this.adb.NETWORK_SPEED) {
51
+ return networkSpeed;
52
+ }
53
+ this.log.warn(`Wrong network speed param '${networkSpeed}', using default: ${this.adb.NETWORK_SPEED.FULL}. ` +
54
+ `Supported values: ${lodash_1.default.values(this.adb.NETWORK_SPEED)}`);
55
+ return this.adb.NETWORK_SPEED.FULL;
56
+ }
57
+ exports.ensureNetworkSpeed = ensureNetworkSpeed;
58
+ /**
59
+ * @this {import('../../driver').AndroidDriver}
60
+ * @returns {string[]}
61
+ */
62
+ function prepareAvdArgs() {
63
+ const { networkSpeed, isHeadless, avdArgs } = this.opts;
64
+ const result = [];
65
+ if (avdArgs) {
66
+ if (lodash_1.default.isArray(avdArgs)) {
67
+ result.push(...avdArgs);
68
+ }
69
+ else {
70
+ result.push(...support_1.util.shellParse(`${avdArgs}`));
71
+ }
72
+ }
73
+ if (networkSpeed) {
74
+ result.push('-netspeed', ensureNetworkSpeed.bind(this)(networkSpeed));
75
+ }
76
+ if (isHeadless) {
77
+ result.push('-no-window');
78
+ }
79
+ return result;
80
+ }
81
+ exports.prepareAvdArgs = prepareAvdArgs;
82
+ /**
83
+ * @this {import('../../driver').AndroidDriver}
84
+ * @returns {Promise<void>}
85
+ */
86
+ async function prepareEmulator() {
87
+ const { avd, avdEnv: env, language, locale: country, avdLaunchTimeout: launchTimeout, avdReadyTimeout: readyTimeout, } = this.opts;
88
+ if (!avd) {
89
+ throw new Error('Cannot launch AVD without AVD name');
90
+ }
91
+ const avdName = avd.replace('@', '');
92
+ let isEmulatorRunning = true;
93
+ try {
94
+ await this.adb.getRunningAVDWithRetry(avdName, 5000);
95
+ }
96
+ catch (e) {
97
+ this.log.debug(`Emulator '${avdName}' is not running: ${e.message}`);
98
+ isEmulatorRunning = false;
99
+ }
100
+ const args = prepareAvdArgs.bind(this)();
101
+ if (isEmulatorRunning) {
102
+ if (args.includes('-wipe-data')) {
103
+ this.log.debug(`Killing '${avdName}' because it needs to be wiped at start.`);
104
+ await this.adb.killEmulator(avdName);
105
+ }
106
+ else {
107
+ this.log.debug('Not launching AVD because it is already running.');
108
+ return;
109
+ }
110
+ }
111
+ await this.adb.launchAVD(avd, {
112
+ args,
113
+ env,
114
+ language,
115
+ country,
116
+ launchTimeout,
117
+ readyTimeout,
118
+ });
119
+ }
120
+ exports.prepareEmulator = prepareEmulator;
121
+ /**
122
+ * @param {import('../../driver').AndroidDriverOpts?} [opts=null]
123
+ * @returns {Promise<ADB>}
124
+ */
125
+ async function createBaseADB(opts = null) {
126
+ // filter out any unwanted options sent in
127
+ // this list should be updated as ADB takes more arguments
128
+ const { adbPort, suppressKillServer, remoteAdbHost, clearDeviceLogsOnStart, adbExecTimeout, useKeystore, keystorePath, keystorePassword, keyAlias, keyPassword, remoteAppsCacheLimit, buildToolsVersion, allowOfflineDevices, allowDelayAdb, } = opts ?? {};
129
+ return await appium_adb_1.default.createADB({
130
+ adbPort,
131
+ suppressKillServer,
132
+ remoteAdbHost,
133
+ clearDeviceLogsOnStart,
134
+ adbExecTimeout,
135
+ useKeystore,
136
+ keystorePath,
137
+ keystorePassword,
138
+ keyAlias,
139
+ keyPassword,
140
+ remoteAppsCacheLimit,
141
+ buildToolsVersion,
142
+ allowOfflineDevices,
143
+ allowDelayAdb,
144
+ });
145
+ }
146
+ exports.createBaseADB = createBaseADB;
147
+ /**
148
+ * @this {import('../../driver').AndroidDriver}
149
+ * @param {boolean} throwIfError
150
+ * @returns {Promise<void>}
151
+ */
152
+ async function pushSettingsApp(throwIfError) {
153
+ this.log.debug('Pushing settings apk to the device...');
154
+ try {
155
+ // Sometimes adb push or adb instal take more time than expected to install an app
156
+ // e.g. https://github.com/appium/io.appium.settings/issues/40#issuecomment-476593174
157
+ await (0, asyncbox_1.retryInterval)(HELPER_APP_INSTALL_RETRIES, HELPER_APP_INSTALL_RETRY_DELAY_MS, async () => await this.adb.installOrUpgrade(io_appium_settings_1.path, io_appium_settings_1.SETTINGS_HELPER_ID, {
158
+ grantPermissions: true,
159
+ }));
160
+ }
161
+ catch (err) {
162
+ if (throwIfError) {
163
+ throw err;
164
+ }
165
+ this.log.warn(`Ignored error while installing '${io_appium_settings_1.path}': ` +
166
+ `'${err.message}'. Features that rely on this helper ` +
167
+ 'require the apk such as toggle WiFi and getting location ' +
168
+ 'will raise an error if you try to use them.');
169
+ }
170
+ // Reinstall would stop the settings helper process anyway, so
171
+ // there is no need to continue if the application is still running
172
+ if (await this.settingsApp.isRunningInForeground()) {
173
+ this.log.debug(`${io_appium_settings_1.SETTINGS_HELPER_ID} is already running. ` + `There is no need to reset its permissions.`);
174
+ return;
175
+ }
176
+ const fixSettingsAppPermissionsForLegacyApis = async () => {
177
+ if ((await this.adb.getApiLevel()) > 23) {
178
+ return;
179
+ }
180
+ // Android 6- devices should have granted permissions
181
+ // https://github.com/appium/appium/pull/11640#issuecomment-438260477
182
+ const perms = ['SET_ANIMATION_SCALE', 'CHANGE_CONFIGURATION', 'ACCESS_FINE_LOCATION'];
183
+ this.log.info(`Granting permissions ${perms} to '${io_appium_settings_1.SETTINGS_HELPER_ID}'`);
184
+ await this.adb.grantPermissions(io_appium_settings_1.SETTINGS_HELPER_ID, perms.map((x) => `android.permission.${x}`));
185
+ };
186
+ try {
187
+ await bluebird_1.default.all([
188
+ this.settingsApp.adjustNotificationsPermissions(),
189
+ this.settingsApp.adjustMediaProjectionServicePermissions(),
190
+ fixSettingsAppPermissionsForLegacyApis(),
191
+ ]);
192
+ }
193
+ catch (e) {
194
+ this.log.debug(e.stack);
195
+ }
196
+ // launch io.appium.settings app due to settings failing to be set
197
+ // if the app is not launched prior to start the session on android 7+
198
+ // see https://github.com/appium/appium/issues/8957
199
+ try {
200
+ await this.settingsApp.requireRunning({
201
+ timeout: this.isEmulator() ? 30000 : 5000,
202
+ });
203
+ }
204
+ catch (err) {
205
+ this.log.debug(err.stack);
206
+ if (throwIfError) {
207
+ throw err;
208
+ }
209
+ }
210
+ }
211
+ exports.pushSettingsApp = pushSettingsApp;
212
+ /**
213
+ * @deprecated
214
+ * @this {import('../../driver').AndroidDriver}
215
+ * @returns {Promise<string?>}
216
+ */
217
+ async function initUnicodeKeyboard() {
218
+ this.log.debug('Enabling Unicode keyboard support');
219
+ // get the default IME so we can return back to it later if we want
220
+ const defaultIME = await this.adb.defaultIME();
221
+ this.log.debug(`Unsetting previous IME ${defaultIME}`);
222
+ this.log.debug(`Setting IME to '${io_appium_settings_1.UNICODE_IME}'`);
223
+ await this.adb.enableIME(io_appium_settings_1.UNICODE_IME);
224
+ await this.adb.setIME(io_appium_settings_1.UNICODE_IME);
225
+ return defaultIME;
226
+ }
227
+ exports.initUnicodeKeyboard = initUnicodeKeyboard;
228
+ /**
229
+ * @this {import('../../driver').AndroidDriver}
230
+ * @returns {Promise<void>}
231
+ */
232
+ async function hideKeyboardCompletely() {
233
+ this.log.debug(`Hiding the on-screen keyboard by setting IME to '${io_appium_settings_1.EMPTY_IME}'`);
234
+ await this.adb.enableIME(io_appium_settings_1.EMPTY_IME);
235
+ await this.adb.setIME(io_appium_settings_1.EMPTY_IME);
236
+ }
237
+ exports.hideKeyboardCompletely = hideKeyboardCompletely;
238
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/commands/device/utils.js"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- export default DeviceidleMixin;
2
- export type ADB = import('appium-adb').ADB;
3
1
  /**
4
- * @type {import('./mixins').DeviceidleMixin & ThisType<import('../driver').AndroidDriver>}
5
- * @satisfies {import('@appium/types').ExternalDriver}
2
+ * This is a wrapper to 'adb shell dumpsys deviceidle' interface.
3
+ * Read https://www.protechtraining.com/blog/post/diving-into-android-m-doze-875
4
+ * for more details.
5
+ *
6
+ * @param {import('./types').DeviceidleOpts} opts
7
+ * @returns {Promise<void>}
6
8
  */
7
- declare const DeviceidleMixin: import('./mixins').DeviceidleMixin & ThisType<import('../driver').AndroidDriver>;
9
+ export function mobileDeviceidle(opts: import('./types').DeviceidleOpts): Promise<void>;
10
+ export type ADB = import('appium-adb').ADB;
8
11
  //# sourceMappingURL=deviceidle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceidle.d.ts","sourceRoot":"","sources":["../../../lib/commands/deviceidle.js"],"names":[],"mappings":";kBAuDa,OAAO,YAAY,EAAE,GAAG;AAjDrC;;;GAGG;AACH,+BAHU,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,OAAO,WAAW,EAAE,aAAa,CAAC,CAyCxF"}
1
+ {"version":3,"file":"deviceidle.d.ts","sourceRoot":"","sources":["../../../lib/commands/deviceidle.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,uCAHW,OAAO,SAAS,EAAE,cAAc,GAC9B,QAAQ,IAAI,CAAC,CA4BzB;kBAGY,OAAO,YAAY,EAAE,GAAG"}
@@ -3,48 +3,42 @@ 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.mobileDeviceidle = void 0;
6
7
  const driver_1 = require("appium/driver");
7
8
  const lodash_1 = __importDefault(require("lodash"));
8
- const mixins_1 = require("./mixins");
9
9
  const SUPPORTED_ACTIONS = ['whitelistAdd', 'whitelistRemove'];
10
10
  /**
11
- * @type {import('./mixins').DeviceidleMixin & ThisType<import('../driver').AndroidDriver>}
12
- * @satisfies {import('@appium/types').ExternalDriver}
11
+ * This is a wrapper to 'adb shell dumpsys deviceidle' interface.
12
+ * Read https://www.protechtraining.com/blog/post/diving-into-android-m-doze-875
13
+ * for more details.
14
+ *
15
+ * @param {import('./types').DeviceidleOpts} opts
16
+ * @returns {Promise<void>}
13
17
  */
14
- const DeviceidleMixin = {
15
- /**
16
- * This is a wrapper to 'adb shell dumpsys deviceidle' interface.
17
- * Read https://www.protechtraining.com/blog/post/diving-into-android-m-doze-875
18
- * for more details.
19
- *
20
- * @param {import('./types').DeviceidleOpts} opts
21
- */
22
- async mobileDeviceidle(opts) {
23
- const { action, packages, } = opts;
24
- if (!(lodash_1.default.isString(packages) || lodash_1.default.isArray(packages))) {
25
- throw new driver_1.errors.InvalidArgumentError(`packages argument must be a string or an array`);
26
- }
27
- /** @type {string[]} */
28
- const packagesArr = lodash_1.default.isArray(packages) ? packages : [packages];
29
- /** @type {string[]} */
30
- const commonArgs = ['dumpsys', 'deviceidle', 'whitelist'];
31
- /** @type {(x: string) => string[]} */
32
- let argsGenerator;
33
- switch (action) {
34
- case SUPPORTED_ACTIONS[0]:
35
- argsGenerator = (pkg) => [...commonArgs, `+${pkg}`];
36
- break;
37
- case SUPPORTED_ACTIONS[1]:
38
- argsGenerator = (pkg) => [...commonArgs, `-${pkg}`];
39
- break;
40
- default:
41
- throw new driver_1.errors.InvalidArgumentError(`action must be one of ${JSON.stringify(SUPPORTED_ACTIONS)}. Got '${action}' instead`);
42
- }
43
- await (this.adb).shellChunks(argsGenerator, packagesArr);
44
- },
45
- };
46
- (0, mixins_1.mixin)(DeviceidleMixin);
47
- exports.default = DeviceidleMixin;
18
+ async function mobileDeviceidle(opts) {
19
+ const { action, packages } = opts;
20
+ if (!(lodash_1.default.isString(packages) || lodash_1.default.isArray(packages))) {
21
+ throw new driver_1.errors.InvalidArgumentError(`packages argument must be a string or an array`);
22
+ }
23
+ /** @type {string[]} */
24
+ const packagesArr = lodash_1.default.isArray(packages) ? packages : [packages];
25
+ /** @type {string[]} */
26
+ const commonArgs = ['dumpsys', 'deviceidle', 'whitelist'];
27
+ /** @type {(x: string) => string[]} */
28
+ let argsGenerator;
29
+ switch (action) {
30
+ case SUPPORTED_ACTIONS[0]:
31
+ argsGenerator = (pkg) => [...commonArgs, `+${pkg}`];
32
+ break;
33
+ case SUPPORTED_ACTIONS[1]:
34
+ argsGenerator = (pkg) => [...commonArgs, `-${pkg}`];
35
+ break;
36
+ default:
37
+ throw new driver_1.errors.InvalidArgumentError(`action must be one of ${JSON.stringify(SUPPORTED_ACTIONS)}. Got '${action}' instead`);
38
+ }
39
+ await this.adb.shellChunks(argsGenerator, packagesArr);
40
+ }
41
+ exports.mobileDeviceidle = mobileDeviceidle;
48
42
  /**
49
43
  * @typedef {import('appium-adb').ADB} ADB
50
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"deviceidle.js","sourceRoot":"","sources":["../../../lib/commands/deviceidle.js"],"names":[],"mappings":";;;;;AAAA,0CAAqC;AACrC,oDAAuB;AACvB,qCAA+B;AAE/B,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,eAAe,GAAG;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CAAC,IAAI;QACzB,MAAM,EACJ,MAAM,EACN,QAAQ,GACT,GAAG,IAAI,CAAC;QAET,IAAI,CAAC,CAAC,gBAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;YAClD,MAAM,IAAI,eAAM,CAAC,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;SACzF;QAED,uBAAuB;QACvB,MAAM,WAAW,GAAG,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,uBAAuB;QACvB,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1D,sCAAsC;QACtC,IAAI,aAAa,CAAC;QAClB,QAAQ,MAAM,EAAE;YACd,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR;gBACE,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,yBAAyB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,MAAM,WAAW,CACtF,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CACF,CAAC;AAEF,IAAA,cAAK,EAAC,eAAe,CAAC,CAAC;AAEvB,kBAAe,eAAe,CAAC;AAE/B;;GAEG"}
1
+ {"version":3,"file":"deviceidle.js","sourceRoot":"","sources":["../../../lib/commands/deviceidle.js"],"names":[],"mappings":";;;;;;AAAA,0CAAqC;AACrC,oDAAuB;AAEvB,MAAM,iBAAiB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAE9D;;;;;;;GAOG;AACI,KAAK,UAAU,gBAAgB,CAAC,IAAI;IACzC,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,CAAC,gBAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;QAClD,MAAM,IAAI,eAAM,CAAC,oBAAoB,CAAC,gDAAgD,CAAC,CAAC;KACzF;IAED,uBAAuB;IACvB,MAAM,WAAW,GAAG,gBAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChE,uBAAuB;IACvB,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1D,sCAAsC;IACtC,IAAI,aAAa,CAAC;IAClB,QAAQ,MAAM,EAAE;QACd,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACpD,MAAM;QACR;YACE,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,yBAAyB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,MAAM,WAAW,CACtF,CAAC;KACL;IACD,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AA1BD,4CA0BC;AAED;;GAEG"}
@@ -1,8 +1,102 @@
1
- export default ElementMixin;
2
- export type ADB = import('appium-adb').ADB;
3
1
  /**
4
- * @type {import('./mixins').ElementMixin & ThisType<import('../driver').AndroidDriver>}
5
- * @satisfies {import('@appium/types').ExternalDriver}
2
+ * @this {import('../driver').AndroidDriver}
3
+ * @param {string} attribute
4
+ * @param {string} elementId
5
+ * @returns {Promise<string?>}
6
6
  */
7
- declare const ElementMixin: import('./mixins').ElementMixin & ThisType<import('../driver').AndroidDriver>;
7
+ export function getAttribute(this: import("../driver").AndroidDriver, attribute: string, elementId: string): Promise<string | null>;
8
+ /**
9
+ * @this {import('../driver').AndroidDriver}
10
+ * @param {string} elementId
11
+ * @returns {Promise<void>}
12
+ */
13
+ export function click(this: import("../driver").AndroidDriver, elementId: string): Promise<void>;
14
+ /**
15
+ * @this {import('../driver').AndroidDriver}
16
+ * @param {string} elementId
17
+ * @returns {Promise<string>}
18
+ */
19
+ export function getText(this: import("../driver").AndroidDriver, elementId: string): Promise<string>;
20
+ /**
21
+ * @this {import('../driver').AndroidDriver}
22
+ * @param {string} elementId
23
+ * @returns {Promise<import('@appium/types').Position>}
24
+ */
25
+ export function getLocation(this: import("../driver").AndroidDriver, elementId: string): Promise<import('@appium/types').Position>;
26
+ /**
27
+ * @this {import('../driver').AndroidDriver}
28
+ * @param {string} elementId
29
+ * @returns {Promise<import('@appium/types').Size>}
30
+ */
31
+ export function getSize(this: import("../driver").AndroidDriver, elementId: string): Promise<import('@appium/types').Size>;
32
+ /**
33
+ * @this {import('../driver').AndroidDriver}
34
+ * @param {string} elementId
35
+ * @returns {Promise<string>}
36
+ */
37
+ export function getName(this: import("../driver").AndroidDriver, elementId: string): Promise<string>;
38
+ /**
39
+ * @this {import('../driver').AndroidDriver}
40
+ * @param {string} elementId
41
+ * @returns {Promise<boolean>}
42
+ */
43
+ export function elementDisplayed(this: import("../driver").AndroidDriver, elementId: string): Promise<boolean>;
44
+ /**
45
+ * @this {import('../driver').AndroidDriver}
46
+ * @param {string} elementId
47
+ * @returns {Promise<boolean>}
48
+ */
49
+ export function elementEnabled(this: import("../driver").AndroidDriver, elementId: string): Promise<boolean>;
50
+ /**
51
+ * @this {import('../driver').AndroidDriver}
52
+ * @param {string} elementId
53
+ * @returns {Promise<boolean>}
54
+ */
55
+ export function elementSelected(this: import("../driver").AndroidDriver, elementId: string): Promise<boolean>;
56
+ /**
57
+ * @this {import('../driver').AndroidDriver}
58
+ * @param {string|string[]} keys
59
+ * @param {string} elementId
60
+ * @param {boolean} [replace=false]
61
+ * @returns {Promise<void>}
62
+ */
63
+ export function setElementValue(this: import("../driver").AndroidDriver, keys: string | string[], elementId: string, replace?: boolean | undefined): Promise<void>;
64
+ /**
65
+ * Reason for isolating doSetElementValue from setElementValue is for reusing setElementValue
66
+ * across android-drivers (like appium-uiautomator2-driver) and to avoid code duplication.
67
+ * Other android-drivers (like appium-uiautomator2-driver) need to override doSetElementValue
68
+ * to facilitate setElementValue.
69
+ *
70
+ * @this {import('../driver').AndroidDriver}
71
+ * @param {import('./types').DoSetElementValueOpts} params
72
+ * @returns {Promise<void>}
73
+ */
74
+ export function doSetElementValue(this: import("../driver").AndroidDriver, params: import('./types').DoSetElementValueOpts): Promise<void>;
75
+ /**
76
+ * @this {import('../driver').AndroidDriver}
77
+ * @param {string|string[]} keys
78
+ * @param {string} elementId
79
+ * @returns {Promise<void>}
80
+ */
81
+ export function setValue(this: import("../driver").AndroidDriver, keys: string | string[], elementId: string): Promise<void>;
82
+ /**
83
+ * @this {import('../driver').AndroidDriver}
84
+ * @param {string|string[]} keys
85
+ * @param {string} elementId
86
+ * @returns {Promise<void>}
87
+ */
88
+ export function replaceValue(this: import("../driver").AndroidDriver, keys: string | string[], elementId: string): Promise<void>;
89
+ /**
90
+ * @this {import('../driver').AndroidDriver}
91
+ * @param {string|string[]} keys
92
+ * @param {string} elementId
93
+ * @returns {Promise<void>}
94
+ */
95
+ export function setValueImmediate(this: import("../driver").AndroidDriver, keys: string | string[], elementId: string): Promise<void>;
96
+ /**
97
+ * @this {import('../driver').AndroidDriver}
98
+ * @param {string} elementId
99
+ * @returns {Promise<import('@appium/types').Position>}
100
+ */
101
+ export function getLocationInView(this: import("../driver").AndroidDriver, elementId: string): Promise<import('@appium/types').Position>;
8
102
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":";kBAqJa,OAAO,YAAY,EAAE,GAAG;AA/IrC;;;GAGG;AACH,4BAHU,OAAO,UAAU,EAAE,YAAY,GAAG,SAAS,OAAO,WAAW,EAAE,aAAa,CAAC,CAuIrF"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,iFAJW,MAAM,aACN,MAAM,GACJ,QAAQ,MAAM,QAAE,CAI5B;AAED;;;;GAIG;AACH,0EAHW,MAAM,GACJ,QAAQ,IAAI,CAAC,CAIzB;AAED;;;;GAIG;AACH,4EAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAI3B;AAED;;;;GAIG;AACH,gFAHW,MAAM,GACJ,QAAQ,OAAO,eAAe,EAAE,QAAQ,CAAC,CAIrD;AAED;;;;GAIG;AACH,4EAHW,MAAM,GACJ,QAAQ,OAAO,eAAe,EAAE,IAAI,CAAC,CAIjD;AAED;;;;GAIG;AACH,4EAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAI3B;AAED;;;;GAIG;AACH,qFAHW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAI5B;AAED;;;;GAIG;AACH,mFAHW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAI5B;AAED;;;;GAIG;AACH,oFAHW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAI5B;AAED;;;;;;GAMG;AACH,+EALW,MAAM,GAAC,MAAM,EAAE,aACf,MAAM,kCAEJ,QAAQ,IAAI,CAAC,CASzB;AAED;;;;;;;;;GASG;AACH,mFAHW,OAAO,SAAS,EAAE,qBAAqB,GACrC,QAAQ,IAAI,CAAC,CAIzB;AAED;;;;;GAKG;AACH,wEAJW,MAAM,GAAC,MAAM,EAAE,aACf,MAAM,GACJ,QAAQ,IAAI,CAAC,CAIzB;AAED;;;;;GAKG;AACH,4EAJW,MAAM,GAAC,MAAM,EAAE,aACf,MAAM,GACJ,QAAQ,IAAI,CAAC,CAIzB;AAED;;;;;GAKG;AACH,iFAJW,MAAM,GAAC,MAAM,EAAE,aACf,MAAM,GACJ,QAAQ,IAAI,CAAC,CAQzB;AAED;;;;GAIG;AACH,sFAHW,MAAM,GACJ,QAAQ,OAAO,eAAe,EAAE,QAAQ,CAAC,CAIrD"}