appium-remote-debugger 11.4.1 → 11.5.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/CHANGELOG.md +12 -0
- package/build/lib/mixins/connect.d.ts +53 -56
- package/build/lib/mixins/connect.d.ts.map +1 -1
- package/build/lib/mixins/connect.js +72 -96
- package/build/lib/mixins/connect.js.map +1 -1
- package/build/lib/mixins/cookies.d.ts +22 -0
- package/build/lib/mixins/cookies.d.ts.map +1 -0
- package/build/lib/mixins/cookies.js +48 -0
- package/build/lib/mixins/cookies.js.map +1 -0
- package/build/lib/mixins/events.d.ts +17 -2
- package/build/lib/mixins/events.d.ts.map +1 -1
- package/build/lib/mixins/events.js +29 -2
- package/build/lib/mixins/events.js.map +1 -1
- package/build/lib/mixins/execute.d.ts +5 -12
- package/build/lib/mixins/execute.d.ts.map +1 -1
- package/build/lib/mixins/execute.js +18 -30
- package/build/lib/mixins/execute.js.map +1 -1
- package/build/lib/mixins/message-handlers.d.ts +13 -23
- package/build/lib/mixins/message-handlers.d.ts.map +1 -1
- package/build/lib/mixins/message-handlers.js +56 -27
- package/build/lib/mixins/message-handlers.js.map +1 -1
- package/build/lib/mixins/misc.d.ts +51 -0
- package/build/lib/mixins/misc.d.ts.map +1 -0
- package/build/lib/mixins/misc.js +132 -0
- package/build/lib/mixins/misc.js.map +1 -0
- package/build/lib/mixins/navigate.d.ts +20 -29
- package/build/lib/mixins/navigate.d.ts.map +1 -1
- package/build/lib/mixins/navigate.js +25 -23
- package/build/lib/mixins/navigate.js.map +1 -1
- package/build/lib/mixins/screenshot.d.ts +13 -0
- package/build/lib/mixins/screenshot.d.ts.map +1 -0
- package/build/lib/mixins/screenshot.js +31 -0
- package/build/lib/mixins/screenshot.js.map +1 -0
- package/build/lib/remote-debugger-real-device.d.ts +16 -2
- package/build/lib/remote-debugger-real-device.d.ts.map +1 -1
- package/build/lib/remote-debugger-real-device.js +11 -1
- package/build/lib/remote-debugger-real-device.js.map +1 -1
- package/build/lib/remote-debugger.d.ts +155 -174
- package/build/lib/remote-debugger.d.ts.map +1 -1
- package/build/lib/remote-debugger.js +149 -210
- package/build/lib/remote-debugger.js.map +1 -1
- package/build/lib/rpc/rpc-client.d.ts +14 -13
- package/build/lib/rpc/rpc-client.d.ts.map +1 -1
- package/build/lib/rpc/rpc-client.js +8 -6
- package/build/lib/rpc/rpc-client.js.map +1 -1
- package/build/lib/utils.d.ts +20 -16
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +33 -25
- package/build/lib/utils.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/mixins/connect.js +77 -111
- package/lib/mixins/cookies.js +45 -0
- package/lib/mixins/events.js +25 -1
- package/lib/mixins/execute.js +18 -39
- package/lib/mixins/message-handlers.js +67 -36
- package/lib/mixins/misc.js +128 -0
- package/lib/mixins/navigate.js +26 -30
- package/lib/mixins/screenshot.js +34 -0
- package/lib/remote-debugger-real-device.js +14 -1
- package/lib/remote-debugger.js +138 -302
- package/lib/rpc/rpc-client.js +9 -7
- package/lib/utils.js +42 -38
- package/package.json +1 -1
- package/build/lib/mixins/index.d.ts +0 -5
- package/build/lib/mixins/index.d.ts.map +0 -1
- package/build/lib/mixins/index.js +0 -16
- package/build/lib/mixins/index.js.map +0 -1
- package/lib/mixins/index.js +0 -14
|
@@ -0,0 +1,132 @@
|
|
|
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.launchSafari = launchSafari;
|
|
7
|
+
exports.startTimeline = startTimeline;
|
|
8
|
+
exports.stopTimeline = stopTimeline;
|
|
9
|
+
exports.startConsole = startConsole;
|
|
10
|
+
exports.stopConsole = stopConsole;
|
|
11
|
+
exports.startNetwork = startNetwork;
|
|
12
|
+
exports.stopNetwork = stopNetwork;
|
|
13
|
+
exports.overrideUserAgent = overrideUserAgent;
|
|
14
|
+
exports.garbageCollect = garbageCollect;
|
|
15
|
+
const utils_1 = require("../utils");
|
|
16
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
17
|
+
const SAFARI_BUNDLE_ID = 'com.apple.mobilesafari';
|
|
18
|
+
const GARBAGE_COLLECT_TIMEOUT_MS = 5000;
|
|
19
|
+
/**
|
|
20
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
21
|
+
* @returns {Promise<void>}
|
|
22
|
+
*/
|
|
23
|
+
async function launchSafari() {
|
|
24
|
+
await this.requireRpcClient().send('launchApplication', {
|
|
25
|
+
bundleId: SAFARI_BUNDLE_ID
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
30
|
+
* @param {(event: import('@appium/types').StringRecord) => any} fn
|
|
31
|
+
* @returns {Promise<any>}
|
|
32
|
+
*/
|
|
33
|
+
async function startTimeline(fn) {
|
|
34
|
+
this.log.debug('Starting to record the timeline');
|
|
35
|
+
this.requireRpcClient().on('Timeline.eventRecorded', fn);
|
|
36
|
+
return await this.requireRpcClient().send('Timeline.start', {
|
|
37
|
+
appIdKey: this.appIdKey,
|
|
38
|
+
pageIdKey: this.pageIdKey,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
43
|
+
* @returns {Promise<any>}
|
|
44
|
+
*/
|
|
45
|
+
async function stopTimeline() {
|
|
46
|
+
this.log.debug('Stopping to record the timeline');
|
|
47
|
+
await this.requireRpcClient().send('Timeline.stop', {
|
|
48
|
+
appIdKey: this.appIdKey,
|
|
49
|
+
pageIdKey: this.pageIdKey,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
54
|
+
* @param {(event: import('@appium/types').StringRecord) => any} listener
|
|
55
|
+
* @returns {void}
|
|
56
|
+
*/
|
|
57
|
+
function startConsole(listener) {
|
|
58
|
+
this.log.debug('Starting to listen for JavaScript console');
|
|
59
|
+
this.addClientEventListener('Console.messageAdded', listener);
|
|
60
|
+
this.addClientEventListener('Console.messageRepeatCountUpdated', listener);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
64
|
+
* @returns {void}
|
|
65
|
+
*/
|
|
66
|
+
function stopConsole() {
|
|
67
|
+
this.log.debug('Stopping to listen for JavaScript console');
|
|
68
|
+
this.removeClientEventListener('Console.messageAdded');
|
|
69
|
+
this.removeClientEventListener('Console.messageRepeatCountUpdated');
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
73
|
+
* @param {(event: import('@appium/types').StringRecord) => any} listener
|
|
74
|
+
* @returns {void}
|
|
75
|
+
*/
|
|
76
|
+
function startNetwork(listener) {
|
|
77
|
+
this.log.debug('Starting to listen for network events');
|
|
78
|
+
this.addClientEventListener('NetworkEvent', listener);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
82
|
+
* @returns {void}
|
|
83
|
+
*/
|
|
84
|
+
function stopNetwork() {
|
|
85
|
+
this.log.debug('Stopping to listen for network events');
|
|
86
|
+
this.removeClientEventListener('NetworkEvent');
|
|
87
|
+
}
|
|
88
|
+
// Potentially this does not work for mobile safari
|
|
89
|
+
/**
|
|
90
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
91
|
+
* @param {string} value
|
|
92
|
+
* @returns {Promise<any>}
|
|
93
|
+
*/
|
|
94
|
+
async function overrideUserAgent(value) {
|
|
95
|
+
this.log.debug('Setting overrideUserAgent');
|
|
96
|
+
return await this.requireRpcClient().send('Page.overrideUserAgent', {
|
|
97
|
+
appIdKey: this.appIdKey,
|
|
98
|
+
pageIdKey: this.pageIdKey,
|
|
99
|
+
value
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
104
|
+
* @param {number} [timeoutMs=GARBAGE_COLLECT_TIMEOUT_MS]
|
|
105
|
+
* @returns {Promise<void>}
|
|
106
|
+
*/
|
|
107
|
+
async function garbageCollect(timeoutMs = GARBAGE_COLLECT_TIMEOUT_MS) {
|
|
108
|
+
this.log.debug(`Garbage collecting with ${timeoutMs}ms timeout`);
|
|
109
|
+
try {
|
|
110
|
+
(0, utils_1.checkParams)({ appIdKey: this.appIdKey, pageIdKey: this.pageIdKey });
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
this.log.debug(`Unable to collect garbage at this time`);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
try {
|
|
117
|
+
await bluebird_1.default.resolve(this.requireRpcClient().send('Heap.gc', {
|
|
118
|
+
appIdKey: this.appIdKey,
|
|
119
|
+
pageIdKey: this.pageIdKey,
|
|
120
|
+
})).timeout(timeoutMs);
|
|
121
|
+
this.log.debug(`Garbage collection successful`);
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
if (e instanceof bluebird_1.default.TimeoutError) {
|
|
125
|
+
this.log.debug(`Garbage collection timed out after ${timeoutMs}ms`);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this.log.debug(`Unable to collect garbage: ${e.message}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=misc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../lib/mixins/misc.js"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,37 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export { frameDetached };
|
|
3
|
-
export { cancelPageLoad };
|
|
4
|
-
export { waitForDom };
|
|
5
|
-
export { checkPageIsReady };
|
|
6
|
-
export { navToUrl };
|
|
7
|
-
export { isPageLoadingCompleted };
|
|
8
|
-
}
|
|
9
|
-
export default _default;
|
|
10
1
|
/**
|
|
11
2
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
12
3
|
* @returns {void}
|
|
13
4
|
*/
|
|
14
|
-
|
|
5
|
+
export function frameDetached(this: import("../remote-debugger").RemoteDebugger): void;
|
|
15
6
|
/**
|
|
16
7
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
17
8
|
* @returns {void}
|
|
18
9
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
export function cancelPageLoad(this: import("../remote-debugger").RemoteDebugger): void;
|
|
11
|
+
export class cancelPageLoad {
|
|
21
12
|
pageLoading: boolean;
|
|
22
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Return if current readState can be handles as page load completes
|
|
16
|
+
* for the given page load strategy.
|
|
17
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
18
|
+
* @param {string} readyState
|
|
19
|
+
* @returns {boolean}
|
|
20
|
+
*/
|
|
21
|
+
export function isPageLoadingCompleted(this: import("../remote-debugger").RemoteDebugger, readyState: string): boolean;
|
|
23
22
|
/**
|
|
24
23
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
25
|
-
* @param {timing.Timer
|
|
24
|
+
* @param {timing.Timer?} [startPageLoadTimer]
|
|
26
25
|
* @returns {Promise<void>}
|
|
27
26
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
export function waitForDom(this: import("../remote-debugger").RemoteDebugger, startPageLoadTimer?: timing.Timer | null | undefined): Promise<void>;
|
|
28
|
+
export class waitForDom {
|
|
30
29
|
/**
|
|
31
30
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
32
|
-
* @param {timing.Timer
|
|
31
|
+
* @param {timing.Timer?} [startPageLoadTimer]
|
|
33
32
|
* @returns {Promise<void>}
|
|
34
33
|
*/
|
|
35
|
-
constructor(this: import("../remote-debugger").
|
|
34
|
+
constructor(this: import("../remote-debugger").RemoteDebugger, startPageLoadTimer?: timing.Timer | null | undefined);
|
|
36
35
|
pageLoading: boolean;
|
|
37
36
|
pageLoadDelay: B<void>;
|
|
38
37
|
}
|
|
@@ -41,32 +40,24 @@ declare class waitForDom {
|
|
|
41
40
|
* @param {number} [timeoutMs]
|
|
42
41
|
* @returns {Promise<boolean>}
|
|
43
42
|
*/
|
|
44
|
-
|
|
43
|
+
export function checkPageIsReady(this: import("../remote-debugger").RemoteDebugger, timeoutMs?: number | undefined): Promise<boolean>;
|
|
45
44
|
/**
|
|
46
45
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
47
46
|
* @param {string} url
|
|
48
47
|
* @returns {Promise<void>}
|
|
49
48
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
export function navToUrl(this: import("../remote-debugger").RemoteDebugger, url: string): Promise<void>;
|
|
50
|
+
export class navToUrl {
|
|
52
51
|
/**
|
|
53
52
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
54
53
|
* @param {string} url
|
|
55
54
|
* @returns {Promise<void>}
|
|
56
55
|
*/
|
|
57
|
-
constructor(this: import("../remote-debugger").
|
|
56
|
+
constructor(this: import("../remote-debugger").RemoteDebugger, url: string);
|
|
58
57
|
_navigatingToPage: boolean;
|
|
59
58
|
pageLoadDelay: B<void>;
|
|
60
59
|
pageLoading: boolean;
|
|
61
60
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Return if current readState can be handles as page load completes
|
|
64
|
-
* for the given page load strategy.
|
|
65
|
-
* @this {import('../remote-debugger').RemoteDebugger}
|
|
66
|
-
* @param {string} readyState
|
|
67
|
-
* @returns {boolean}
|
|
68
|
-
*/
|
|
69
|
-
declare function isPageLoadingCompleted(this: import("../remote-debugger").default, readyState: string): boolean;
|
|
70
61
|
import { timing } from '@appium/support';
|
|
71
62
|
import B from 'bluebird';
|
|
72
63
|
//# sourceMappingURL=navigate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../lib/mixins/navigate.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../../../lib/mixins/navigate.js"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,kFAFa,IAAI,CAIhB;AAED;;;GAGG;AACH,mFAFa,IAAI,CAQhB;;IAJC,qBAAwB;;AAM1B;;;;;;GAMG;AACH,sGAHW,MAAM,GACJ,OAAO,CAenB;AAED;;;;GAIG;AACH,qIAFa,OAAO,CAAC,IAAI,CAAC,CAgEzB;;IAnED;;;;OAIG;IACH,qHA8DC;IArDC,qBAAuB;IACvB,uBAA8D;;AAsDhE;;;;GAIG;AACH,qHAFa,OAAO,CAAC,OAAO,CAAC,CAmB5B;AAED;;;;GAIG;AACH,iFAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAyHzB;;IA5HD;;;;OAIG;IACH,oEAHW,MAAM,EA0HhB;IA7GC,2BAA6B;IAS7B,uBAA8D;IAC9D,qBAAuB;;uBApLI,iBAAiB;cAEhC,UAAU"}
|
|
@@ -3,7 +3,12 @@ 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
|
-
|
|
6
|
+
exports.frameDetached = frameDetached;
|
|
7
|
+
exports.cancelPageLoad = cancelPageLoad;
|
|
8
|
+
exports.isPageLoadingCompleted = isPageLoadingCompleted;
|
|
9
|
+
exports.waitForDom = waitForDom;
|
|
10
|
+
exports.checkPageIsReady = checkPageIsReady;
|
|
11
|
+
exports.navToUrl = navToUrl;
|
|
7
12
|
const utils_1 = require("../utils");
|
|
8
13
|
const events_1 = __importDefault(require("./events"));
|
|
9
14
|
const support_1 = require("@appium/support");
|
|
@@ -35,7 +40,7 @@ function frameDetached() {
|
|
|
35
40
|
* @returns {void}
|
|
36
41
|
*/
|
|
37
42
|
function cancelPageLoad() {
|
|
38
|
-
|
|
43
|
+
this.log.debug('Unregistering from page readiness notifications');
|
|
39
44
|
this.pageLoading = false;
|
|
40
45
|
if (this.pageLoadDelay) {
|
|
41
46
|
this.pageLoadDelay.cancel();
|
|
@@ -62,14 +67,14 @@ function isPageLoadingCompleted(readyState) {
|
|
|
62
67
|
}
|
|
63
68
|
/**
|
|
64
69
|
* @this {import('../remote-debugger').RemoteDebugger}
|
|
65
|
-
* @param {timing.Timer
|
|
70
|
+
* @param {timing.Timer?} [startPageLoadTimer]
|
|
66
71
|
* @returns {Promise<void>}
|
|
67
72
|
*/
|
|
68
73
|
async function waitForDom(startPageLoadTimer) {
|
|
69
|
-
|
|
74
|
+
this.log.debug('Waiting for page readiness');
|
|
70
75
|
const readinessTimeoutMs = this.pageLoadMs || DEFAULT_PAGE_READINESS_TIMEOUT_MS;
|
|
71
76
|
if (!lodash_1.default.isFunction(startPageLoadTimer?.getDuration)) {
|
|
72
|
-
|
|
77
|
+
this.log.debug(`Page load timer not a timer. Creating new timer`);
|
|
73
78
|
startPageLoadTimer = new support_1.timing.Timer().start();
|
|
74
79
|
}
|
|
75
80
|
let isPageLoading = true;
|
|
@@ -87,7 +92,7 @@ async function waitForDom(startPageLoadTimer) {
|
|
|
87
92
|
await bluebird_1.default.delay(intervalMs);
|
|
88
93
|
// we can get this called in the middle of trying to find a new app
|
|
89
94
|
if (!this.appIdKey) {
|
|
90
|
-
|
|
95
|
+
this.log.debug('Not connected to an application. Ignoring page readiess check');
|
|
91
96
|
return;
|
|
92
97
|
}
|
|
93
98
|
if (!isPageLoading) {
|
|
@@ -95,13 +100,13 @@ async function waitForDom(startPageLoadTimer) {
|
|
|
95
100
|
}
|
|
96
101
|
if (await this.checkPageIsReady()) {
|
|
97
102
|
if (isPageLoading) {
|
|
98
|
-
|
|
103
|
+
this.log.debug(`Page is ready in ${elapsedMs}ms`);
|
|
99
104
|
isPageLoading = false;
|
|
100
105
|
}
|
|
101
106
|
return;
|
|
102
107
|
}
|
|
103
108
|
if (elapsedMs > readinessTimeoutMs) {
|
|
104
|
-
|
|
109
|
+
this.log.info(`Timed out after ${readinessTimeoutMs}ms of waiting for the page readiness. Continuing anyway`);
|
|
105
110
|
isPageLoading = false;
|
|
106
111
|
return;
|
|
107
112
|
}
|
|
@@ -135,7 +140,7 @@ async function checkPageIsReady(timeoutMs) {
|
|
|
135
140
|
try {
|
|
136
141
|
const readyState = await bluebird_1.default.resolve(this.execute(readyCmd, true))
|
|
137
142
|
.timeout(timeoutMs ?? this.pageReadyTimeout);
|
|
138
|
-
|
|
143
|
+
this.log.debug(`Document readyState is '${readyState}'. ` +
|
|
139
144
|
`The pageLoadStrategy is '${this.pageLoadStrategy || PAGE_LOAD_STRATEGY.NORMAL}'`);
|
|
140
145
|
return this.isPageLoadingCompleted(readyState);
|
|
141
146
|
}
|
|
@@ -143,7 +148,7 @@ async function checkPageIsReady(timeoutMs) {
|
|
|
143
148
|
if (!(err instanceof bluebird_1.default.TimeoutError)) {
|
|
144
149
|
throw err;
|
|
145
150
|
}
|
|
146
|
-
|
|
151
|
+
this.log.debug(`Page readiness check timed out after ${this.pageReadyTimeout}ms`);
|
|
147
152
|
return false;
|
|
148
153
|
}
|
|
149
154
|
}
|
|
@@ -154,9 +159,7 @@ async function checkPageIsReady(timeoutMs) {
|
|
|
154
159
|
*/
|
|
155
160
|
async function navToUrl(url) {
|
|
156
161
|
(0, utils_1.checkParams)({ appIdKey: this.appIdKey, pageIdKey: this.pageIdKey });
|
|
157
|
-
|
|
158
|
-
throw new Error('rpcClient is undefined. Is the debugger connected?');
|
|
159
|
-
}
|
|
162
|
+
const rpcClient = this.requireRpcClient();
|
|
160
163
|
try {
|
|
161
164
|
new URL(url);
|
|
162
165
|
}
|
|
@@ -164,7 +167,7 @@ async function navToUrl(url) {
|
|
|
164
167
|
throw new TypeError(`'${url}' is not a valid URL`);
|
|
165
168
|
}
|
|
166
169
|
this._navigatingToPage = true;
|
|
167
|
-
|
|
170
|
+
this.log.debug(`Navigating to new URL: '${url}'`);
|
|
168
171
|
const readinessTimeoutMs = this.pageLoadMs || DEFAULT_PAGE_READINESS_TIMEOUT_MS;
|
|
169
172
|
/** @type {(() => void)|undefined} */
|
|
170
173
|
let onPageLoaded;
|
|
@@ -182,7 +185,7 @@ async function navToUrl(url) {
|
|
|
182
185
|
onPageLoadedTimeout = setTimeout(() => {
|
|
183
186
|
if (isPageLoading) {
|
|
184
187
|
isPageLoading = false;
|
|
185
|
-
|
|
188
|
+
this.log.info(`Timed out after ${start.getDuration().asMilliSeconds.toFixed(0)}ms of waiting ` +
|
|
186
189
|
`for the ${url} page readiness. Continuing anyway`);
|
|
187
190
|
}
|
|
188
191
|
return resolve();
|
|
@@ -190,7 +193,7 @@ async function navToUrl(url) {
|
|
|
190
193
|
onPageLoaded = () => {
|
|
191
194
|
if (isPageLoading) {
|
|
192
195
|
isPageLoading = false;
|
|
193
|
-
|
|
196
|
+
this.log.debug(`The page ${url} is ready in ${start.getDuration().asMilliSeconds.toFixed(0)}ms`);
|
|
194
197
|
}
|
|
195
198
|
if (onPageLoadedTimeout) {
|
|
196
199
|
clearTimeout(onPageLoadedTimeout);
|
|
@@ -200,7 +203,7 @@ async function navToUrl(url) {
|
|
|
200
203
|
return resolve();
|
|
201
204
|
};
|
|
202
205
|
// https://chromedevtools.github.io/devtools-protocol/tot/Page/#event-loadEventFired
|
|
203
|
-
|
|
206
|
+
rpcClient.once('Page.loadEventFired', onPageLoaded);
|
|
204
207
|
// Pages that have no proper DOM structure do not fire the `Page.loadEventFired` event
|
|
205
208
|
// so we rely on the very first event after target change, which is `onTargetProvisioned`
|
|
206
209
|
// and start sending `document.readyState` requests until we either succeed or
|
|
@@ -221,8 +224,8 @@ async function navToUrl(url) {
|
|
|
221
224
|
}
|
|
222
225
|
}
|
|
223
226
|
};
|
|
224
|
-
|
|
225
|
-
|
|
227
|
+
rpcClient.targetSubscriptions.once(rpc_1.rpcConstants.ON_TARGET_PROVISIONED_EVENT, onTargetProvisioned);
|
|
228
|
+
rpcClient.send('Page.navigate', {
|
|
226
229
|
url,
|
|
227
230
|
appIdKey: this.appIdKey,
|
|
228
231
|
pageIdKey: this.pageIdKey,
|
|
@@ -248,16 +251,16 @@ async function navToUrl(url) {
|
|
|
248
251
|
onPageLoadedTimeout = null;
|
|
249
252
|
}
|
|
250
253
|
if (onTargetProvisioned) {
|
|
251
|
-
|
|
254
|
+
rpcClient.targetSubscriptions.off(rpc_1.rpcConstants.ON_TARGET_PROVISIONED_EVENT, onTargetProvisioned);
|
|
252
255
|
}
|
|
253
256
|
if (onPageLoaded) {
|
|
254
|
-
|
|
257
|
+
rpcClient.off('Page.loadEventFired', onPageLoaded);
|
|
255
258
|
}
|
|
256
259
|
}
|
|
257
260
|
// enable console logging, so we get the events (otherwise we only
|
|
258
261
|
// get notified when navigating to a local page
|
|
259
262
|
try {
|
|
260
|
-
await bluebird_1.default.resolve(
|
|
263
|
+
await bluebird_1.default.resolve(rpcClient.send('Console.enable', {
|
|
261
264
|
appIdKey: this.appIdKey,
|
|
262
265
|
pageIdKey: this.pageIdKey,
|
|
263
266
|
}, didPageFinishLoad)).timeout(CONSOLE_ENABLEMENT_TIMEOUT_MS);
|
|
@@ -270,5 +273,4 @@ async function navToUrl(url) {
|
|
|
270
273
|
throw err;
|
|
271
274
|
}
|
|
272
275
|
}
|
|
273
|
-
exports.default = { frameDetached, cancelPageLoad, waitForDom, checkPageIsReady, navToUrl, isPageLoadingCompleted };
|
|
274
276
|
//# sourceMappingURL=navigate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../../lib/mixins/navigate.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../../lib/mixins/navigate.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture a rect of the page or by default the viewport
|
|
3
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
4
|
+
* @param {ScreenshotCaptureOptions} [opts={}] if rect is null capture the whole
|
|
5
|
+
* coordinate system else capture the rect in the given coordinateSystem
|
|
6
|
+
* @returns {Promise<string>} a base64 encoded string of the screenshot
|
|
7
|
+
*/
|
|
8
|
+
export function captureScreenshot(this: import("../remote-debugger").RemoteDebugger, opts?: ScreenshotCaptureOptions | undefined): Promise<string>;
|
|
9
|
+
export type ScreenshotCaptureOptions = {
|
|
10
|
+
rect?: import("@appium/types").Rect | null | undefined;
|
|
11
|
+
coordinateSystem?: "Viewport" | "Page" | undefined;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=screenshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../lib/mixins/screenshot.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,mIAFa,OAAO,CAAC,MAAM,CAAC,CAsB3B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.captureScreenshot = captureScreenshot;
|
|
4
|
+
/**
|
|
5
|
+
* Capture a rect of the page or by default the viewport
|
|
6
|
+
* @this {import('../remote-debugger').RemoteDebugger}
|
|
7
|
+
* @param {ScreenshotCaptureOptions} [opts={}] if rect is null capture the whole
|
|
8
|
+
* coordinate system else capture the rect in the given coordinateSystem
|
|
9
|
+
* @returns {Promise<string>} a base64 encoded string of the screenshot
|
|
10
|
+
*/
|
|
11
|
+
async function captureScreenshot(opts = {}) {
|
|
12
|
+
const { rect = null, coordinateSystem = 'Viewport' } = opts;
|
|
13
|
+
this.log.debug('Capturing screenshot');
|
|
14
|
+
const arect = rect ?? /** @type {import('@appium/types').Rect} */ (await this.executeAtom('execute_script', ['return {x: 0, y: 0, width: window.innerWidth, height: window.innerHeight}', []]));
|
|
15
|
+
const response = await this.requireRpcClient().send('Page.snapshotRect', {
|
|
16
|
+
...arect,
|
|
17
|
+
appIdKey: this.appIdKey,
|
|
18
|
+
pageIdKey: this.pageIdKey,
|
|
19
|
+
coordinateSystem,
|
|
20
|
+
});
|
|
21
|
+
if (response.error) {
|
|
22
|
+
throw new Error(response.error);
|
|
23
|
+
}
|
|
24
|
+
return response.dataURL.replace(/^data:image\/png;base64,/, '');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @typedef {Object} ScreenshotCaptureOptions
|
|
28
|
+
* @property {import('@appium/types').Rect | null} [rect=null]
|
|
29
|
+
* @property {"Viewport" | "Page"} [coordinateSystem="Viewport"]
|
|
30
|
+
*/
|
|
31
|
+
//# sourceMappingURL=screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../lib/mixins/screenshot.js"],"names":[],"mappings":";;AAOA,8CAoBC;AA3BD;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CAAC,IAAI,GAAG,EAAE;IAC/C,MAAM,EAAC,IAAI,GAAG,IAAI,EAAE,gBAAgB,GAAG,UAAU,EAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,IAAI,2CAA2C,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CACvF,gBAAgB,EAChB,CAAC,2EAA2E,EAAE,EAAE,CAAC,CAClF,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;QACvE,GAAG,KAAK;QACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} RemoteDebuggerRealDeviceOptions
|
|
3
|
+
* @property {string} udid Real device UDID
|
|
4
|
+
*/
|
|
1
5
|
export default class RemoteDebuggerRealDevice extends RemoteDebugger {
|
|
2
|
-
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* @param {RemoteDebuggerRealDeviceOptions & import('./remote-debugger').RemoteDebuggerOptions} opts
|
|
8
|
+
*/
|
|
9
|
+
constructor(opts: RemoteDebuggerRealDeviceOptions & import("./remote-debugger").RemoteDebuggerOptions);
|
|
10
|
+
/** @type {string} */
|
|
11
|
+
udid: string;
|
|
4
12
|
_skippedApps: string[];
|
|
5
13
|
}
|
|
14
|
+
export type RemoteDebuggerRealDeviceOptions = {
|
|
15
|
+
/**
|
|
16
|
+
* Real device UDID
|
|
17
|
+
*/
|
|
18
|
+
udid: string;
|
|
19
|
+
};
|
|
6
20
|
import RemoteDebugger from './remote-debugger';
|
|
7
21
|
//# sourceMappingURL=remote-debugger-real-device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-debugger-real-device.d.ts","sourceRoot":"","sources":["../../lib/remote-debugger-real-device.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote-debugger-real-device.d.ts","sourceRoot":"","sources":["../../lib/remote-debugger-real-device.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;IAIE;;OAEG;IACH,kBAFW,+BAA+B,GAAG,OAAO,mBAAmB,EAAE,qBAAqB,EAQ7F;IAZD,qBAAqB;IACrB,MADW,MAAM,CACZ;IAUH,uBAAiC;CAsBpC;;;;;UArCa,MAAM;;2BALO,mBAAmB"}
|
|
@@ -5,12 +5,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const remote_debugger_1 = __importDefault(require("./remote-debugger"));
|
|
7
7
|
const rpc_1 = require("./rpc");
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {Object} RemoteDebuggerRealDeviceOptions
|
|
10
|
+
* @property {string} udid Real device UDID
|
|
11
|
+
*/
|
|
8
12
|
class RemoteDebuggerRealDevice extends remote_debugger_1.default {
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* @param {RemoteDebuggerRealDeviceOptions & import('./remote-debugger').RemoteDebuggerOptions} opts
|
|
15
|
+
*/
|
|
16
|
+
constructor(opts) {
|
|
10
17
|
super(opts);
|
|
11
18
|
this.udid = opts.udid;
|
|
12
19
|
this._skippedApps = ['lockdownd'];
|
|
13
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* @override
|
|
23
|
+
*/
|
|
14
24
|
initRpcClient() {
|
|
15
25
|
this.rpcClient = new rpc_1.RpcClientRealDevice({
|
|
16
26
|
bundleId: this.bundleId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-debugger-real-device.js","sourceRoot":"","sources":["../../lib/remote-debugger-real-device.js"],"names":[],"mappings":";;;;;AAAA,wEAA+C;AAC/C,+BAA4C;
|
|
1
|
+
{"version":3,"file":"remote-debugger-real-device.js","sourceRoot":"","sources":["../../lib/remote-debugger-real-device.js"],"names":[],"mappings":";;;;;AAAA,wEAA+C;AAC/C,+BAA4C;AAE5C;;;GAGG;AAEH,MAAqB,wBAAyB,SAAQ,yBAAc;IAIlE;;OAEG;IACH,YAAa,IAAI;QACf,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAmB,CAAC;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,gBAAgB;YACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,2CAkCC"}
|