@appium/fake-driver 6.0.1 → 6.1.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 (111) hide show
  1. package/build/lib/commands/alert.d.ts +10 -13
  2. package/build/lib/commands/alert.d.ts.map +1 -1
  3. package/build/lib/commands/alert.js +39 -46
  4. package/build/lib/commands/alert.js.map +1 -1
  5. package/build/lib/commands/contexts.d.ts +9 -13
  6. package/build/lib/commands/contexts.d.ts.map +1 -1
  7. package/build/lib/commands/contexts.js +55 -62
  8. package/build/lib/commands/contexts.js.map +1 -1
  9. package/build/lib/commands/element.d.ts +23 -26
  10. package/build/lib/commands/element.d.ts.map +1 -1
  11. package/build/lib/commands/element.js +100 -89
  12. package/build/lib/commands/element.js.map +1 -1
  13. package/build/lib/commands/find.d.ts +14 -17
  14. package/build/lib/commands/find.d.ts.map +1 -1
  15. package/build/lib/commands/find.js +66 -63
  16. package/build/lib/commands/find.js.map +1 -1
  17. package/build/lib/commands/general.d.ts +25 -28
  18. package/build/lib/commands/general.d.ts.map +1 -1
  19. package/build/lib/commands/general.js +90 -75
  20. package/build/lib/commands/general.js.map +1 -1
  21. package/build/lib/desired-caps.d.ts +14 -0
  22. package/build/lib/desired-caps.d.ts.map +1 -0
  23. package/build/lib/desired-caps.js +16 -0
  24. package/build/lib/desired-caps.js.map +1 -0
  25. package/build/lib/doctor/common.d.ts +11 -0
  26. package/build/lib/doctor/common.d.ts.map +1 -0
  27. package/build/lib/doctor/common.js +25 -0
  28. package/build/lib/doctor/common.js.map +1 -0
  29. package/build/lib/doctor/fake1.d.ts +3 -0
  30. package/build/lib/doctor/fake1.d.ts.map +1 -0
  31. package/build/lib/doctor/fake1.js +6 -0
  32. package/build/lib/doctor/fake1.js.map +1 -0
  33. package/build/lib/doctor/fake2.d.ts +3 -0
  34. package/build/lib/doctor/fake2.d.ts.map +1 -0
  35. package/build/lib/doctor/fake2.js +6 -0
  36. package/build/lib/doctor/fake2.js.map +1 -0
  37. package/build/lib/driver.d.ts +128 -156
  38. package/build/lib/driver.d.ts.map +1 -1
  39. package/build/lib/driver.js +146 -154
  40. package/build/lib/driver.js.map +1 -1
  41. package/build/lib/fake-app.d.ts +37 -45
  42. package/build/lib/fake-app.d.ts.map +1 -1
  43. package/build/lib/fake-app.js +61 -38
  44. package/build/lib/fake-app.js.map +1 -1
  45. package/build/lib/fake-driver-schema.d.ts +16 -11
  46. package/build/lib/fake-driver-schema.d.ts.map +1 -1
  47. package/build/lib/fake-driver-schema.js +2 -17
  48. package/build/lib/fake-driver-schema.js.map +1 -1
  49. package/build/lib/fake-element.d.ts +27 -26
  50. package/build/lib/fake-element.d.ts.map +1 -1
  51. package/build/lib/fake-element.js +19 -19
  52. package/build/lib/fake-element.js.map +1 -1
  53. package/build/lib/index.d.ts +2 -3
  54. package/build/lib/index.d.ts.map +1 -1
  55. package/build/lib/index.js +2 -6
  56. package/build/lib/index.js.map +1 -1
  57. package/build/lib/logger.d.ts +1 -2
  58. package/build/lib/logger.d.ts.map +1 -1
  59. package/build/lib/logger.js +2 -2
  60. package/build/lib/logger.js.map +1 -1
  61. package/build/lib/scripts/fake-error.d.ts.map +1 -1
  62. package/build/lib/scripts/fake-error.js.map +1 -1
  63. package/build/lib/scripts/fake-stdin.d.ts.map +1 -1
  64. package/build/lib/scripts/fake-stdin.js.map +1 -1
  65. package/build/lib/scripts/fake-success.d.ts.map +1 -1
  66. package/build/lib/scripts/fake-success.js +3 -6
  67. package/build/lib/scripts/fake-success.js.map +1 -1
  68. package/build/lib/server.d.ts +2 -1
  69. package/build/lib/server.d.ts.map +1 -1
  70. package/build/lib/server.js +3 -5
  71. package/build/lib/server.js.map +1 -1
  72. package/build/lib/types.d.ts +1 -1
  73. package/build/lib/types.d.ts.map +1 -1
  74. package/lib/commands/alert.ts +31 -61
  75. package/lib/commands/contexts.ts +50 -73
  76. package/lib/commands/element.ts +122 -135
  77. package/lib/commands/find.ts +100 -115
  78. package/lib/commands/general.ts +122 -127
  79. package/lib/desired-caps.ts +16 -0
  80. package/lib/doctor/common.ts +26 -0
  81. package/lib/doctor/fake1.ts +3 -0
  82. package/lib/doctor/fake2.ts +3 -0
  83. package/lib/driver.ts +321 -0
  84. package/lib/fake-app.ts +234 -0
  85. package/lib/fake-driver-schema.ts +43 -0
  86. package/lib/fake-element.ts +128 -0
  87. package/lib/{index.js → index.ts} +5 -9
  88. package/lib/logger.ts +3 -0
  89. package/lib/scripts/{fake-success.js → fake-success.ts} +1 -1
  90. package/lib/{server.js → server.ts} +3 -4
  91. package/lib/types.ts +1 -1
  92. package/package.json +10 -14
  93. package/tsconfig.json +2 -1
  94. package/build/lib/commands/index.d.ts +0 -14
  95. package/build/lib/commands/index.d.ts.map +0 -1
  96. package/build/lib/commands/index.js +0 -16
  97. package/build/lib/commands/index.js.map +0 -1
  98. package/build/lib/commands/mixin.d.ts +0 -11
  99. package/build/lib/commands/mixin.d.ts.map +0 -1
  100. package/build/lib/commands/mixin.js +0 -16
  101. package/build/lib/commands/mixin.js.map +0 -1
  102. package/lib/commands/index.ts +0 -14
  103. package/lib/commands/mixin.ts +0 -13
  104. package/lib/driver.js +0 -356
  105. package/lib/fake-app.js +0 -190
  106. package/lib/fake-driver-schema.js +0 -35
  107. package/lib/fake-element.js +0 -117
  108. package/lib/logger.js +0 -5
  109. package/test/fixtures/app.xml +0 -38
  110. /package/lib/scripts/{fake-error.js → fake-error.ts} +0 -0
  111. /package/lib/scripts/{fake-stdin.js → fake-stdin.ts} +0 -0
@@ -1,14 +1,11 @@
1
- interface FakeDriverAlertMixin {
2
- assertNoAlert(): void;
3
- assertAlert(): void;
4
- getAlertText(): Promise<string>;
5
- setAlertText(text: string): Promise<void>;
6
- postAcceptAlert(): Promise<void>;
7
- postDismissAlert(): Promise<void>;
8
- }
9
- declare module '../driver' {
10
- interface FakeDriver extends FakeDriverAlertMixin {
11
- }
12
- }
13
- export {};
1
+ import type { FakeDriver } from '../driver';
2
+ /** Throw if an alert is currently open (blocks other commands). */
3
+ export declare function assertNoAlert(this: FakeDriver): void;
4
+ /** Throw if no alert is open (required before get/set alert text, accept, etc.). */
5
+ export declare function assertAlert(this: FakeDriver): void;
6
+ export declare function getAlertText(this: FakeDriver): Promise<string>;
7
+ export declare function setAlertText(this: FakeDriver, text: string): Promise<void>;
8
+ export declare function postAcceptAlert(this: FakeDriver): Promise<void>;
9
+ /** In this fake, dismiss is the same as accept. */
10
+ export declare function postDismissAlert(this: FakeDriver): Promise<void>;
14
11
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../lib/commands/alert.ts"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,aAAa,IAAI,IAAI,CAAC;IACtB,WAAW,IAAI,IAAI,CAAC;IAEpB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,oBAAoB;KAAG;CACrD"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../lib/commands/alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAG1C,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAIpD;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAIlD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,mDAAmD;AACnD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
@@ -1,50 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertNoAlert = assertNoAlert;
4
+ exports.assertAlert = assertAlert;
5
+ exports.getAlertText = getAlertText;
6
+ exports.setAlertText = setAlertText;
7
+ exports.postAcceptAlert = postAcceptAlert;
8
+ exports.postDismissAlert = postDismissAlert;
3
9
  const driver_1 = require("appium/driver");
4
- const mixin_1 = require("./mixin");
5
- const AlertMixin = {
6
- assertNoAlert() {
7
- if (this.appModel.hasAlert()) {
8
- throw new driver_1.errors.UnexpectedAlertOpenError();
9
- }
10
- },
11
- assertAlert() {
12
- if (!this.appModel.hasAlert()) {
13
- throw new driver_1.errors.NoAlertOpenError();
14
- }
15
- },
16
- /**
17
- * Get the text of an alert
18
- */
19
- async getAlertText() {
20
- this.assertAlert();
21
- return this.appModel.alertText();
22
- },
23
- /**
24
- * Set the text of an alert
25
- */
26
- async setAlertText(text) {
27
- this.assertAlert();
28
- try {
29
- this.appModel.setAlertText(text);
30
- }
31
- catch {
32
- throw new driver_1.errors.InvalidElementStateError();
33
- }
34
- },
35
- /**
36
- * Accept an alert
37
- */
38
- async postAcceptAlert() {
39
- this.assertAlert();
40
- this.appModel.handleAlert();
41
- },
42
- /**
43
- * Dismiss an alert
44
- */
45
- async postDismissAlert() {
46
- return this.postAcceptAlert();
47
- },
48
- };
49
- (0, mixin_1.mixin)(AlertMixin);
10
+ /** Throw if an alert is currently open (blocks other commands). */
11
+ function assertNoAlert() {
12
+ if (this.appModel.hasAlert()) {
13
+ throw new driver_1.errors.UnexpectedAlertOpenError();
14
+ }
15
+ }
16
+ /** Throw if no alert is open (required before get/set alert text, accept, etc.). */
17
+ function assertAlert() {
18
+ if (!this.appModel.hasAlert()) {
19
+ throw new driver_1.errors.NoAlertOpenError();
20
+ }
21
+ }
22
+ async function getAlertText() {
23
+ this.assertAlert();
24
+ return this.appModel.alertText();
25
+ }
26
+ async function setAlertText(text) {
27
+ this.assertAlert();
28
+ try {
29
+ this.appModel.setAlertText(text);
30
+ }
31
+ catch {
32
+ throw new driver_1.errors.InvalidElementStateError();
33
+ }
34
+ }
35
+ async function postAcceptAlert() {
36
+ this.assertAlert();
37
+ this.appModel.handleAlert();
38
+ }
39
+ /** In this fake, dismiss is the same as accept. */
40
+ async function postDismissAlert() {
41
+ return this.postAcceptAlert();
42
+ }
50
43
  //# sourceMappingURL=alert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../lib/commands/alert.ts"],"names":[],"mappings":";;AACA,0CAAqC;AACrC,mCAA8B;AAkB9B,MAAM,UAAU,GAAyB;IACvC,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,eAAM,CAAC,wBAAwB,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAmB,IAAY;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,eAAM,CAAC,wBAAwB,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;CACF,CAAC;AAEF,IAAA,aAAK,EAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../lib/commands/alert.ts"],"names":[],"mappings":";;AAIA,sCAIC;AAGD,kCAIC;AAED,oCAGC;AAED,oCAOC;AAED,0CAGC;AAGD,4CAEC;AAtCD,0CAAqC;AAErC,mEAAmE;AACnE,SAAgB,aAAa;IAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAM,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAgB,WAAW;IACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,YAAY,CAAmB,IAAY;IAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,eAAM,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED,mDAAmD;AAC5C,KAAK,UAAU,gBAAgB;IACpC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;AAChC,CAAC"}
@@ -1,14 +1,10 @@
1
- interface FakeDriverContextsMixin {
2
- getRawContexts(): Record<string, any>;
3
- assertWebviewContext(): void;
4
- getCurrentContext(): Promise<string>;
5
- getContexts(): Promise<string[]>;
6
- setContext(context: string): Promise<void>;
7
- setFrame(frame: number | null): Promise<void>;
8
- }
9
- declare module '../driver' {
10
- interface FakeDriver extends FakeDriverContextsMixin {
11
- }
12
- }
13
- export {};
1
+ import type { FakeDriver } from '../driver';
2
+ /** NATIVE_APP, PROXY, and WEBVIEW_1, WEBVIEW_2, ... from app model. */
3
+ export declare function getRawContexts(this: FakeDriver): Record<string, unknown>;
4
+ /** Throw if current context is NATIVE_APP (e.g. CSS/title require a webview). */
5
+ export declare function assertWebviewContext(this: FakeDriver): void;
6
+ export declare function getCurrentContext(this: FakeDriver): Promise<string>;
7
+ export declare function getContexts(this: FakeDriver): Promise<string[]>;
8
+ export declare function setContext(this: FakeDriver, context: string): Promise<void>;
9
+ export declare function setFrame(this: FakeDriver, frameId: number | null): Promise<void>;
14
10
  //# sourceMappingURL=contexts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC/B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,oBAAoB,IAAI,IAAI,CAAC;IAC7B,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AACD,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,uBAAuB;KAAG;CACxD"}
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAI1C,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOxE;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAI3D;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAErE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBjF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtF"}
@@ -3,73 +3,66 @@ 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.getRawContexts = getRawContexts;
7
+ exports.assertWebviewContext = assertWebviewContext;
8
+ exports.getCurrentContext = getCurrentContext;
9
+ exports.getContexts = getContexts;
10
+ exports.setContext = setContext;
11
+ exports.setFrame = setFrame;
6
12
  const lodash_1 = __importDefault(require("lodash"));
7
13
  const driver_1 = require("appium/driver");
8
- const mixin_1 = require("./mixin");
9
- const ContextsMixin = {
10
- getRawContexts() {
11
- const contexts = { NATIVE_APP: null, PROXY: null };
12
- const wvs = this.appModel.getWebviews() ?? [];
13
- for (let i = 1; i < wvs.length + 1; i++) {
14
- contexts[`WEBVIEW_${i}`] = wvs[i - 1];
14
+ /** NATIVE_APP, PROXY, and WEBVIEW_1, WEBVIEW_2, ... from app model. */
15
+ function getRawContexts() {
16
+ const contexts = { NATIVE_APP: null, PROXY: null };
17
+ const wvs = this.appModel.getWebviews() ?? [];
18
+ for (let i = 1; i < wvs.length + 1; i++) {
19
+ contexts[`WEBVIEW_${i}`] = wvs[i - 1];
20
+ }
21
+ return contexts;
22
+ }
23
+ /** Throw if current context is NATIVE_APP (e.g. CSS/title require a webview). */
24
+ function assertWebviewContext() {
25
+ if (this.curContext === 'NATIVE_APP') {
26
+ throw new driver_1.errors.InvalidContextError();
27
+ }
28
+ }
29
+ async function getCurrentContext() {
30
+ return this.curContext;
31
+ }
32
+ async function getContexts() {
33
+ return lodash_1.default.keys(this.getRawContexts());
34
+ }
35
+ async function setContext(context) {
36
+ const contexts = this.getRawContexts();
37
+ if (context in contexts) {
38
+ this.curContext = context;
39
+ if (context === 'NATIVE_APP') {
40
+ this.appModel.deactivateWebview();
41
+ this._proxyActive = false;
15
42
  }
16
- return contexts;
17
- },
18
- assertWebviewContext() {
19
- if (this.curContext === 'NATIVE_APP') {
20
- throw new driver_1.errors.InvalidContextError();
21
- }
22
- },
23
- async getCurrentContext() {
24
- return this.curContext;
25
- },
26
- /**
27
- * Get the list of available contexts
28
- */
29
- async getContexts() {
30
- return lodash_1.default.keys(this.getRawContexts());
31
- },
32
- /**
33
- * Set the current context
34
- *
35
- * @param context - name of the context
36
- */
37
- async setContext(context) {
38
- const contexts = this.getRawContexts();
39
- if (context in contexts) {
40
- this.curContext = context;
41
- if (context === 'NATIVE_APP') {
42
- this.appModel.deactivateWebview();
43
- this._proxyActive = false;
44
- }
45
- else if (context === 'PROXY') {
46
- this._proxyActive = true;
47
- }
48
- else {
49
- this.appModel.activateWebview(contexts[context]);
50
- this._proxyActive = false;
51
- }
43
+ else if (context === 'PROXY') {
44
+ this._proxyActive = true;
52
45
  }
53
46
  else {
54
- throw new driver_1.errors.NoSuchContextError();
55
- }
56
- },
57
- /**
58
- * Set the active frame
59
- */
60
- async setFrame(frameId) {
61
- this.assertWebviewContext();
62
- if (frameId === null) {
63
- this.appModel.deactivateFrame();
47
+ this.appModel.activateWebview(contexts[context]);
48
+ this._proxyActive = false;
64
49
  }
65
- else {
66
- const nodes = this.appModel.xpathQuery(`//iframe[@id="${frameId}"]`);
67
- if (!lodash_1.default.isArray(nodes) || lodash_1.default.isEmpty(nodes)) {
68
- throw new driver_1.errors.NoSuchFrameError();
69
- }
70
- this.appModel.activateFrame(nodes[0]);
50
+ }
51
+ else {
52
+ throw new driver_1.errors.NoSuchContextError();
53
+ }
54
+ }
55
+ async function setFrame(frameId) {
56
+ this.assertWebviewContext();
57
+ if (frameId === null) {
58
+ this.appModel.deactivateFrame();
59
+ }
60
+ else {
61
+ const nodes = this.appModel.xpathQuery(`//iframe[@id="${frameId}"]`);
62
+ if (!lodash_1.default.isArray(nodes) || lodash_1.default.isEmpty(nodes)) {
63
+ throw new driver_1.errors.NoSuchFrameError();
71
64
  }
72
- },
73
- };
74
- (0, mixin_1.mixin)(ContextsMixin);
65
+ this.appModel.activateFrame(nodes[0]);
66
+ }
67
+ }
75
68
  //# sourceMappingURL=contexts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":";;;;;AAAA,oDAAuB;AAEvB,0CAAqC;AACrC,mCAA8B;AAa9B,MAAM,aAAa,GAA4B;IAC7C,cAAc;QACZ,MAAM,QAAQ,GAAG,EAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAmB,OAAe;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC;iBAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,eAAM,CAAC,kBAAkB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAmB,OAAsB;QACrD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;YACtC,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":";;;;;AAOA,wCAOC;AAGD,oDAIC;AAED,8CAEC;AAED,kCAEC;AAED,gCAgBC;AAED,4BAWC;AA5DD,oDAAuB;AAIvB,0CAAqC;AAErC,uEAAuE;AACvE,SAAgB,cAAc;IAC5B,MAAM,QAAQ,GAA4B,EAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,SAAgB,oBAAoB;IAClC,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,OAAO,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,UAAU,CAAmB,OAAe;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACvC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAgB,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,eAAM,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAmB,OAAsB;IACrE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -1,27 +1,24 @@
1
- import { Position, Rect, Size } from '@appium/types';
2
- import { FakeElement } from '../fake-element';
3
- interface FakeDriverElementsMixin {
4
- getElements(elementIds: string[]): FakeElement[];
5
- getElement(elementId: string): FakeElement;
6
- getName(elementId: string): Promise<string>;
7
- elementDisplayed(elementId: string): Promise<boolean>;
8
- elementEnabled(elementId: string): Promise<boolean>;
9
- elementSelected(elementId: string): Promise<boolean>;
10
- setValue(keys: string | string[], value: string): Promise<void>;
11
- getText(elementId: string): Promise<string>;
12
- clear(elementId: string): Promise<void>;
13
- click(elementId: string): Promise<void>;
14
- getAttribute(elementId: string, attributeName: string): Promise<string>;
15
- getElementRect(elementId: string): Promise<Rect>;
16
- getSize(elementId: string): Promise<Size>;
17
- equalsElement(elementId: string, otherElementId: string): Promise<boolean>;
18
- getCssProperty(elementId: string, propertyName: string): Promise<string>;
19
- getLocation(elementId: string): Promise<Position>;
20
- getLocationInView(elementId: string): Promise<Position>;
21
- }
22
- declare module '../driver' {
23
- interface FakeDriver extends FakeDriverElementsMixin {
24
- }
25
- }
26
- export {};
1
+ import type { FakeDriver } from '../driver';
2
+ import type { Position, Rect, Size } from '@appium/types';
3
+ import type { FakeElement } from '../fake-element';
4
+ /** Resolve element ids to FakeElements; throws StaleElementReferenceError if any id is missing. */
5
+ export declare function getElements(this: FakeDriver, elementIds: string[]): FakeElement[];
6
+ export declare function getElement(this: FakeDriver, elementId: string): FakeElement;
7
+ export declare function getName(this: FakeDriver, elementId: string): Promise<string>;
8
+ export declare function elementDisplayed(this: FakeDriver, elementId: string): Promise<boolean>;
9
+ export declare function elementEnabled(this: FakeDriver, elementId: string): Promise<boolean>;
10
+ export declare function elementSelected(this: FakeDriver, elementId: string): Promise<boolean>;
11
+ export declare function setValue(this: FakeDriver, keys: string | string[], elementId: string): Promise<void>;
12
+ export declare function getText(this: FakeDriver, elementId: string): Promise<string>;
13
+ export declare function clear(this: FakeDriver, elementId: string): Promise<void>;
14
+ export declare function click(this: FakeDriver, elementId: string): Promise<void>;
15
+ /** Protocol order: attribute name, then element id (from route /attribute/:name). */
16
+ export declare function getAttribute(this: FakeDriver, attributeName: string, elementId: string): Promise<string>;
17
+ export declare function getElementRect(this: FakeDriver, elementId: string): Promise<Rect>;
18
+ export declare function getSize(this: FakeDriver, elementId: string): Promise<Size>;
19
+ export declare function equalsElement(this: FakeDriver, elementIdA: string, elementIdB: string): Promise<boolean>;
20
+ /** Protocol order: property name, then element id. Requires webview context. */
21
+ export declare function getCssProperty(this: FakeDriver, propertyName: string, elementId: string): Promise<string>;
22
+ export declare function getLocation(this: FakeDriver, elementId: string): Promise<Position>;
23
+ export declare function getLocationInView(this: FakeDriver, elementId: string): Promise<Position>;
27
24
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAG5C,UAAU,uBAAuB;IAC/B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACjD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzD;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,uBAAuB;KAAG;CACxD"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAEjD,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAOjF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAE3E;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlF;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3F;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlF;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9E;AAED,qFAAqF;AACrF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGxF;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
@@ -3,96 +3,107 @@ 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.getElements = getElements;
7
+ exports.getElement = getElement;
8
+ exports.getName = getName;
9
+ exports.elementDisplayed = elementDisplayed;
10
+ exports.elementEnabled = elementEnabled;
11
+ exports.elementSelected = elementSelected;
12
+ exports.setValue = setValue;
13
+ exports.getText = getText;
14
+ exports.clear = clear;
15
+ exports.click = click;
16
+ exports.getAttribute = getAttribute;
17
+ exports.getElementRect = getElementRect;
18
+ exports.getSize = getSize;
19
+ exports.equalsElement = equalsElement;
20
+ exports.getCssProperty = getCssProperty;
21
+ exports.getLocation = getLocation;
22
+ exports.getLocationInView = getLocationInView;
6
23
  const lodash_1 = __importDefault(require("lodash"));
7
24
  const driver_1 = require("appium/driver");
8
- const mixin_1 = require("./mixin");
9
- const ElementsMixin = {
10
- getElements(elementIds) {
11
- for (const elId of elementIds) {
12
- if (!lodash_1.default.has(this.elMap, elId)) {
13
- throw new driver_1.errors.StaleElementReferenceError();
14
- }
25
+ /** Resolve element ids to FakeElements; throws StaleElementReferenceError if any id is missing. */
26
+ function getElements(elementIds) {
27
+ for (const elId of elementIds) {
28
+ if (!lodash_1.default.has(this.elMap, elId)) {
29
+ throw new driver_1.errors.StaleElementReferenceError();
15
30
  }
16
- return elementIds.map((e) => this.elMap[e]);
17
- },
18
- getElement(elementId) {
19
- return this.getElements([elementId])[0];
20
- },
21
- async getName(elementId) {
22
- const el = this.getElement(elementId);
23
- return el.tagName;
24
- },
25
- async elementDisplayed(elementId) {
26
- const el = this.getElement(elementId);
27
- return el.isVisible();
28
- },
29
- async elementEnabled(elementId) {
30
- const el = this.getElement(elementId);
31
- return el.isEnabled();
32
- },
33
- async elementSelected(elementId) {
34
- const el = this.getElement(elementId);
35
- return el.isSelected();
36
- },
37
- async setValue(keys, elementId) {
38
- let value = keys;
39
- if (keys instanceof Array) {
40
- value = keys.join('');
41
- }
42
- const el = this.getElement(elementId);
43
- if (el.type !== 'MockInputField') {
44
- throw new driver_1.errors.InvalidElementStateError();
45
- }
46
- el.setAttr('value', value);
47
- },
48
- async getText(elementId) {
49
- const el = this.getElement(elementId);
50
- return el.getAttr('value');
51
- },
52
- async clear(elementId) {
53
- await this.setValue('', elementId);
54
- },
55
- /**
56
- * This comment should be displayed instead of the one from ExternalDriver
57
- */
58
- async click(elementId) {
59
- this.assertNoAlert();
60
- const el = this.getElement(elementId);
61
- if (!el.isVisible()) {
62
- throw new driver_1.errors.InvalidElementStateError();
63
- }
64
- el.click();
65
- this.focusedElId = elementId;
66
- },
67
- async getAttribute(attr, elementId) {
68
- const el = this.getElement(elementId);
69
- return el.getAttr(attr);
70
- },
71
- async getElementRect(elementId) {
72
- const el = this.getElement(elementId);
73
- return el.getElementRect();
74
- },
75
- async getSize(elementId) {
76
- const el = this.getElement(elementId);
77
- return el.getSize();
78
- },
79
- async equalsElement(elementIdA, elementIdB) {
80
- const el1 = this.getElement(elementIdA);
81
- const el2 = this.getElement(elementIdB);
82
- return el1.equals(el2);
83
- },
84
- async getCssProperty(prop, elementId) {
85
- this.assertWebviewContext();
86
- const el = this.getElement(elementId);
87
- return el.getCss(prop) ?? '';
88
- },
89
- async getLocation(elementId) {
90
- const el = this.getElement(elementId);
91
- return el.getLocation();
92
- },
93
- async getLocationInView(elementId) {
94
- return this.getLocation(elementId);
95
- },
96
- };
97
- (0, mixin_1.mixin)(ElementsMixin);
31
+ }
32
+ return elementIds.map((e) => this.elMap[e]);
33
+ }
34
+ function getElement(elementId) {
35
+ return this.getElements([elementId])[0];
36
+ }
37
+ async function getName(elementId) {
38
+ const el = this.getElement(elementId);
39
+ return el.tagName;
40
+ }
41
+ async function elementDisplayed(elementId) {
42
+ const el = this.getElement(elementId);
43
+ return el.isVisible();
44
+ }
45
+ async function elementEnabled(elementId) {
46
+ const el = this.getElement(elementId);
47
+ return el.isEnabled();
48
+ }
49
+ async function elementSelected(elementId) {
50
+ const el = this.getElement(elementId);
51
+ return el.isSelected();
52
+ }
53
+ async function setValue(keys, elementId) {
54
+ const value = lodash_1.default.isArray(keys) ? keys.join('') : keys;
55
+ const el = this.getElement(elementId);
56
+ // Only MockInputField supports value in the fake app XML.
57
+ if (el.type !== 'MockInputField') {
58
+ throw new driver_1.errors.InvalidElementStateError();
59
+ }
60
+ el.setAttr('value', value);
61
+ }
62
+ async function getText(elementId) {
63
+ const el = this.getElement(elementId);
64
+ return el.getAttr('value');
65
+ }
66
+ async function clear(elementId) {
67
+ await this.setValue('', elementId);
68
+ }
69
+ async function click(elementId) {
70
+ this.assertNoAlert();
71
+ const el = this.getElement(elementId);
72
+ if (!el.isVisible()) {
73
+ throw new driver_1.errors.InvalidElementStateError();
74
+ }
75
+ el.click();
76
+ this.focusedElId = elementId;
77
+ }
78
+ /** Protocol order: attribute name, then element id (from route /attribute/:name). */
79
+ async function getAttribute(attributeName, elementId) {
80
+ const el = this.getElement(elementId);
81
+ return el.getAttr(attributeName);
82
+ }
83
+ async function getElementRect(elementId) {
84
+ const el = this.getElement(elementId);
85
+ return el.getElementRect();
86
+ }
87
+ async function getSize(elementId) {
88
+ const el = this.getElement(elementId);
89
+ return el.getSize();
90
+ }
91
+ async function equalsElement(elementIdA, elementIdB) {
92
+ const el1 = this.getElement(elementIdA);
93
+ const el2 = this.getElement(elementIdB);
94
+ return el1.equals(el2);
95
+ }
96
+ /** Protocol order: property name, then element id. Requires webview context. */
97
+ async function getCssProperty(propertyName, elementId) {
98
+ this.assertWebviewContext();
99
+ const el = this.getElement(elementId);
100
+ return el.getCss(propertyName) ?? '';
101
+ }
102
+ async function getLocation(elementId) {
103
+ const el = this.getElement(elementId);
104
+ return el.getLocation();
105
+ }
106
+ async function getLocationInView(elementId) {
107
+ return this.getLocation(elementId);
108
+ }
98
109
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}