@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.
- package/build/lib/commands/alert.d.ts +10 -13
- package/build/lib/commands/alert.d.ts.map +1 -1
- package/build/lib/commands/alert.js +39 -46
- package/build/lib/commands/alert.js.map +1 -1
- package/build/lib/commands/contexts.d.ts +9 -13
- package/build/lib/commands/contexts.d.ts.map +1 -1
- package/build/lib/commands/contexts.js +55 -62
- package/build/lib/commands/contexts.js.map +1 -1
- package/build/lib/commands/element.d.ts +23 -26
- package/build/lib/commands/element.d.ts.map +1 -1
- package/build/lib/commands/element.js +100 -89
- package/build/lib/commands/element.js.map +1 -1
- package/build/lib/commands/find.d.ts +14 -17
- package/build/lib/commands/find.d.ts.map +1 -1
- package/build/lib/commands/find.js +66 -63
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/general.d.ts +25 -28
- package/build/lib/commands/general.d.ts.map +1 -1
- package/build/lib/commands/general.js +90 -75
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/desired-caps.d.ts +14 -0
- package/build/lib/desired-caps.d.ts.map +1 -0
- package/build/lib/desired-caps.js +16 -0
- package/build/lib/desired-caps.js.map +1 -0
- package/build/lib/doctor/common.d.ts +11 -0
- package/build/lib/doctor/common.d.ts.map +1 -0
- package/build/lib/doctor/common.js +25 -0
- package/build/lib/doctor/common.js.map +1 -0
- package/build/lib/doctor/fake1.d.ts +3 -0
- package/build/lib/doctor/fake1.d.ts.map +1 -0
- package/build/lib/doctor/fake1.js +6 -0
- package/build/lib/doctor/fake1.js.map +1 -0
- package/build/lib/doctor/fake2.d.ts +3 -0
- package/build/lib/doctor/fake2.d.ts.map +1 -0
- package/build/lib/doctor/fake2.js +6 -0
- package/build/lib/doctor/fake2.js.map +1 -0
- package/build/lib/driver.d.ts +128 -156
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +146 -154
- package/build/lib/driver.js.map +1 -1
- package/build/lib/fake-app.d.ts +37 -45
- package/build/lib/fake-app.d.ts.map +1 -1
- package/build/lib/fake-app.js +61 -38
- package/build/lib/fake-app.js.map +1 -1
- package/build/lib/fake-driver-schema.d.ts +16 -11
- package/build/lib/fake-driver-schema.d.ts.map +1 -1
- package/build/lib/fake-driver-schema.js +2 -17
- package/build/lib/fake-driver-schema.js.map +1 -1
- package/build/lib/fake-element.d.ts +27 -26
- package/build/lib/fake-element.d.ts.map +1 -1
- package/build/lib/fake-element.js +19 -19
- package/build/lib/fake-element.js.map +1 -1
- package/build/lib/index.d.ts +2 -3
- package/build/lib/index.d.ts.map +1 -1
- package/build/lib/index.js +2 -6
- package/build/lib/index.js.map +1 -1
- package/build/lib/logger.d.ts +1 -2
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +2 -2
- package/build/lib/logger.js.map +1 -1
- package/build/lib/scripts/fake-error.d.ts.map +1 -1
- package/build/lib/scripts/fake-error.js.map +1 -1
- package/build/lib/scripts/fake-stdin.d.ts.map +1 -1
- package/build/lib/scripts/fake-stdin.js.map +1 -1
- package/build/lib/scripts/fake-success.d.ts.map +1 -1
- package/build/lib/scripts/fake-success.js +3 -6
- package/build/lib/scripts/fake-success.js.map +1 -1
- package/build/lib/server.d.ts +2 -1
- package/build/lib/server.d.ts.map +1 -1
- package/build/lib/server.js +3 -5
- package/build/lib/server.js.map +1 -1
- package/build/lib/types.d.ts +1 -1
- package/build/lib/types.d.ts.map +1 -1
- package/lib/commands/alert.ts +31 -61
- package/lib/commands/contexts.ts +50 -73
- package/lib/commands/element.ts +122 -135
- package/lib/commands/find.ts +100 -115
- package/lib/commands/general.ts +122 -127
- package/lib/desired-caps.ts +16 -0
- package/lib/doctor/common.ts +26 -0
- package/lib/doctor/fake1.ts +3 -0
- package/lib/doctor/fake2.ts +3 -0
- package/lib/driver.ts +321 -0
- package/lib/fake-app.ts +234 -0
- package/lib/fake-driver-schema.ts +43 -0
- package/lib/fake-element.ts +128 -0
- package/lib/{index.js → index.ts} +5 -9
- package/lib/logger.ts +3 -0
- package/lib/scripts/{fake-success.js → fake-success.ts} +1 -1
- package/lib/{server.js → server.ts} +3 -4
- package/lib/types.ts +1 -1
- package/package.json +10 -14
- package/tsconfig.json +2 -1
- package/build/lib/commands/index.d.ts +0 -14
- package/build/lib/commands/index.d.ts.map +0 -1
- package/build/lib/commands/index.js +0 -16
- package/build/lib/commands/index.js.map +0 -1
- package/build/lib/commands/mixin.d.ts +0 -11
- package/build/lib/commands/mixin.d.ts.map +0 -1
- package/build/lib/commands/mixin.js +0 -16
- package/build/lib/commands/mixin.js.map +0 -1
- package/lib/commands/index.ts +0 -14
- package/lib/commands/mixin.ts +0 -13
- package/lib/driver.js +0 -356
- package/lib/fake-app.js +0 -190
- package/lib/fake-driver-schema.js +0 -35
- package/lib/fake-element.js +0 -117
- package/lib/logger.js +0 -5
- package/test/fixtures/app.xml +0 -38
- /package/lib/scripts/{fake-error.js → fake-error.ts} +0 -0
- /package/lib/scripts/{fake-stdin.js → fake-stdin.ts} +0 -0
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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":"
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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":";;
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
declare
|
|
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":"
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
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":";;;;;
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
declare
|
|
23
|
-
|
|
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":"
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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":";;;;;
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
|