@wdio/selenium-devtools 0.0.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/package.json +15 -15
- package/dist/assertPatcher.d.ts +0 -11
- package/dist/assertPatcher.js +0 -123
- package/dist/assertPatcher.js.map +0 -1
- package/dist/bidi.d.ts +0 -6
- package/dist/bidi.js +0 -222
- package/dist/bidi.js.map +0 -1
- package/dist/constants.d.ts +0 -75
- package/dist/constants.js +0 -146
- package/dist/constants.js.map +0 -1
- package/dist/driverPatcher.d.ts +0 -4
- package/dist/driverPatcher.js +0 -256
- package/dist/driverPatcher.js.map +0 -1
- package/dist/helpers/detachedBackend.d.ts +0 -7
- package/dist/helpers/detachedBackend.js +0 -34
- package/dist/helpers/detachedBackend.js.map +0 -1
- package/dist/helpers/runtime.d.ts +0 -3
- package/dist/helpers/runtime.js +0 -47
- package/dist/helpers/runtime.js.map +0 -1
- package/dist/helpers/suiteManager.d.ts +0 -19
- package/dist/helpers/suiteManager.js +0 -131
- package/dist/helpers/suiteManager.js.map +0 -1
- package/dist/helpers/testManager.d.ts +0 -47
- package/dist/helpers/testManager.js +0 -158
- package/dist/helpers/testManager.js.map +0 -1
- package/dist/helpers/utils.d.ts +0 -26
- package/dist/helpers/utils.js +0 -187
- package/dist/helpers/utils.js.map +0 -1
- package/dist/helpers/videoEncoder.d.ts +0 -2
- package/dist/helpers/videoEncoder.js +0 -89
- package/dist/helpers/videoEncoder.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.js +0 -801
- package/dist/index.js.map +0 -1
- package/dist/reporter.d.ts +0 -18
- package/dist/reporter.js +0 -72
- package/dist/reporter.js.map +0 -1
- package/dist/rerunManager.d.ts +0 -8
- package/dist/rerunManager.js +0 -78
- package/dist/rerunManager.js.map +0 -1
- package/dist/runnerHooks.d.ts +0 -6
- package/dist/runnerHooks.js +0 -594
- package/dist/runnerHooks.js.map +0 -1
- package/dist/screencast.d.ts +0 -11
- package/dist/screencast.js +0 -179
- package/dist/screencast.js.map +0 -1
- package/dist/session.d.ts +0 -48
- package/dist/session.js +0 -480
- package/dist/session.js.map +0 -1
- package/dist/setupConsole.d.ts +0 -1
- package/dist/setupConsole.js +0 -13
- package/dist/setupConsole.js.map +0 -1
- package/dist/types.d.ts +0 -235
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
package/dist/screencast.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import logger from '@wdio/logger';
|
|
2
|
-
import { BLANK_FRAME_THRESHOLD_BYTES, SCREENCAST_DEFAULTS } from './constants.js';
|
|
3
|
-
import { getDriverOriginals } from './driverPatcher.js';
|
|
4
|
-
const log = logger('@wdio/selenium-devtools:ScreencastRecorder');
|
|
5
|
-
// Two strategies:
|
|
6
|
-
// 1. CDP push (Chromium): listens to `Page.screencastFrame` events.
|
|
7
|
-
// 2. Polling fallback: calls unwrapped `takeScreenshot()` at pollIntervalMs.
|
|
8
|
-
// Frames buffer in memory and encode to WebM at stop().
|
|
9
|
-
export class ScreencastRecorder {
|
|
10
|
-
#frames = [];
|
|
11
|
-
#cdp = undefined;
|
|
12
|
-
#cdpFrameListener;
|
|
13
|
-
#pollTimer;
|
|
14
|
-
#isRecording = false;
|
|
15
|
-
#options;
|
|
16
|
-
#startIndex = 0;
|
|
17
|
-
#startMarkerSet = false;
|
|
18
|
-
constructor(options = {}) {
|
|
19
|
-
this.#options = { ...SCREENCAST_DEFAULTS, ...options };
|
|
20
|
-
}
|
|
21
|
-
async start(driver) {
|
|
22
|
-
if (this.#isRecording) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const cdpOk = await this.#startCdp(driver);
|
|
26
|
-
if (!cdpOk) {
|
|
27
|
-
await this.#startPolling(driver);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async stop() {
|
|
31
|
-
if (!this.#isRecording) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (this.#cdp) {
|
|
35
|
-
await this.#stopCdp();
|
|
36
|
-
}
|
|
37
|
-
else if (this.#pollTimer !== undefined) {
|
|
38
|
-
this.#stopPolling();
|
|
39
|
-
}
|
|
40
|
-
this.#isRecording = false;
|
|
41
|
-
}
|
|
42
|
-
setStartMarker() {
|
|
43
|
-
if (!this.#startMarkerSet) {
|
|
44
|
-
this.#startMarkerSet = true;
|
|
45
|
-
this.#startIndex = this.#frames.length;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
get frames() {
|
|
49
|
-
return this.#frames.slice(this.#startIndex);
|
|
50
|
-
}
|
|
51
|
-
get duration() {
|
|
52
|
-
const f = this.frames;
|
|
53
|
-
if (f.length < 2) {
|
|
54
|
-
return 0;
|
|
55
|
-
}
|
|
56
|
-
return f[f.length - 1].timestamp - f[0].timestamp;
|
|
57
|
-
}
|
|
58
|
-
get isRecording() {
|
|
59
|
-
return this.#isRecording;
|
|
60
|
-
}
|
|
61
|
-
// ─── CDP path (Chromium) ─────────────────────────────────────────────────
|
|
62
|
-
async #startCdp(driver) {
|
|
63
|
-
if (typeof driver.createCDPConnection !== 'function') {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
const cdp = await driver.createCDPConnection('page');
|
|
68
|
-
this.#cdp = cdp;
|
|
69
|
-
// Listen for frames on the underlying WebSocket. Each CDP event arrives
|
|
70
|
-
// as a JSON message with method='Page.screencastFrame' and embedded
|
|
71
|
-
// params. We push to the frame buffer and ack so Chrome keeps streaming.
|
|
72
|
-
const ws = cdp._wsConnection;
|
|
73
|
-
if (!ws || typeof ws.on !== 'function') {
|
|
74
|
-
log.warn('CDP connection has no underlying WebSocket — falling back');
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
const onMessage = (raw) => {
|
|
78
|
-
try {
|
|
79
|
-
const payload = JSON.parse(raw.toString());
|
|
80
|
-
if (payload.method !== 'Page.screencastFrame') {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const params = payload.params || {};
|
|
84
|
-
const ts = params.metadata?.timestamp !== undefined &&
|
|
85
|
-
params.metadata?.timestamp !== null
|
|
86
|
-
? Math.round(params.metadata.timestamp * 1000)
|
|
87
|
-
: Date.now();
|
|
88
|
-
this.#frames.push({ data: params.data, timestamp: ts });
|
|
89
|
-
// Anchor frame 0 at the first content-bearing frame to trim the
|
|
90
|
-
// leading about:blank dead-air.
|
|
91
|
-
if (!this.#startMarkerSet) {
|
|
92
|
-
const decodedSize = Math.floor((params.data?.length ?? 0) * 0.75);
|
|
93
|
-
if (decodedSize >= BLANK_FRAME_THRESHOLD_BYTES) {
|
|
94
|
-
this.#startIndex = Math.max(0, this.#frames.length - 1);
|
|
95
|
-
this.#startMarkerSet = true;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (params.sessionId !== undefined) {
|
|
99
|
-
cdp.execute('Page.screencastFrameAck', {
|
|
100
|
-
sessionId: params.sessionId
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// ignore non-JSON / non-screencast messages
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
this.#cdpFrameListener = onMessage;
|
|
109
|
-
ws.on('message', onMessage);
|
|
110
|
-
cdp.execute('Page.startScreencast', {
|
|
111
|
-
format: this.#options.captureFormat,
|
|
112
|
-
quality: this.#options.quality,
|
|
113
|
-
maxWidth: this.#options.maxWidth,
|
|
114
|
-
maxHeight: this.#options.maxHeight
|
|
115
|
-
});
|
|
116
|
-
this.#isRecording = true;
|
|
117
|
-
log.info('✓ Screencast recording started (CDP mode)');
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
catch (err) {
|
|
121
|
-
log.info(`CDP screencast unavailable (${err.message}); will try polling`);
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
async #stopCdp() {
|
|
126
|
-
try {
|
|
127
|
-
this.#cdp.execute('Page.stopScreencast');
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
log.warn(`Screencast: error stopping CDP — ${err.message}`);
|
|
131
|
-
}
|
|
132
|
-
try {
|
|
133
|
-
if (this.#cdpFrameListener && this.#cdp?._wsConnection?.off) {
|
|
134
|
-
this.#cdp._wsConnection.off('message', this.#cdpFrameListener);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
// detach best-effort
|
|
139
|
-
}
|
|
140
|
-
log.info(`✓ Screencast stopped — ${this.#frames.length} frame(s) collected`);
|
|
141
|
-
this.#cdp = undefined;
|
|
142
|
-
this.#cdpFrameListener = undefined;
|
|
143
|
-
}
|
|
144
|
-
// ─── Polling fallback (any browser) ──────────────────────────────────────
|
|
145
|
-
async #startPolling(driver) {
|
|
146
|
-
const takeShot = getDriverOriginals().takeScreenshot;
|
|
147
|
-
if (!takeShot) {
|
|
148
|
-
log.warn('Screencast unavailable — driver lacks takeScreenshot');
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
try {
|
|
152
|
-
const first = await takeShot(driver);
|
|
153
|
-
this.#frames.push({ data: first, timestamp: Date.now() });
|
|
154
|
-
const intervalMs = this.#options.pollIntervalMs;
|
|
155
|
-
this.#pollTimer = setInterval(async () => {
|
|
156
|
-
try {
|
|
157
|
-
const data = await takeShot(driver);
|
|
158
|
-
this.#frames.push({ data, timestamp: Date.now() });
|
|
159
|
-
}
|
|
160
|
-
catch {
|
|
161
|
-
this.#stopPolling();
|
|
162
|
-
}
|
|
163
|
-
}, intervalMs);
|
|
164
|
-
this.#isRecording = true;
|
|
165
|
-
log.info(`✓ Screencast recording started (polling mode, ${intervalMs} ms interval)`);
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
log.warn(`Screencast unavailable (${err.message}). Recording skipped.`);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
#stopPolling() {
|
|
172
|
-
if (this.#pollTimer !== undefined) {
|
|
173
|
-
clearInterval(this.#pollTimer);
|
|
174
|
-
this.#pollTimer = undefined;
|
|
175
|
-
log.info(`✓ Screencast stopped — ${this.#frames.length} frame(s) collected`);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=screencast.js.map
|
package/dist/screencast.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screencast.js","sourceRoot":"","sources":["../src/screencast.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { CommandLog, ConsoleLog, SeleniumDriverLike } from './types.js';
|
|
2
|
-
export declare class SessionCapturer {
|
|
3
|
-
#private;
|
|
4
|
-
bidiActive: boolean;
|
|
5
|
-
commandsLog: CommandLog[];
|
|
6
|
-
sources: Map<string, string>;
|
|
7
|
-
consoleLogs: ConsoleLog[];
|
|
8
|
-
mutations: any[];
|
|
9
|
-
traceLogs: string[];
|
|
10
|
-
networkRequests: any[];
|
|
11
|
-
metadata?: any;
|
|
12
|
-
constructor(devtoolsOptions?: {
|
|
13
|
-
hostname?: string;
|
|
14
|
-
port?: number;
|
|
15
|
-
}, driver?: SeleniumDriverLike);
|
|
16
|
-
setDriver(driver: SeleniumDriverLike): void;
|
|
17
|
-
awaitClientConnected(): Promise<void>;
|
|
18
|
-
setClientDisconnectedHandler(fn: () => void): void;
|
|
19
|
-
cleanup(): void;
|
|
20
|
-
get isReportingUpstream(): boolean;
|
|
21
|
-
isConnected(): boolean;
|
|
22
|
-
waitForConnection(timeoutMs?: number): Promise<boolean>;
|
|
23
|
-
closeWebSocket(): Promise<void>;
|
|
24
|
-
sendUpstream(event: string, data: any): void;
|
|
25
|
-
captureCommand(command: string, args: any[], result: any, error: Error | undefined, testUid?: string, callSource?: string, timestamp?: number): Promise<CommandLog & {
|
|
26
|
-
_id?: number;
|
|
27
|
-
}>;
|
|
28
|
-
sendCommand(command: CommandLog & {
|
|
29
|
-
_id?: number;
|
|
30
|
-
}): void;
|
|
31
|
-
sendReplaceCommand(oldTimestamp: number, command: CommandLog & {
|
|
32
|
-
_id?: number;
|
|
33
|
-
}): void;
|
|
34
|
-
/** Update an existing entry in place (matched by `_id`) for retry coalesce. */
|
|
35
|
-
replaceCommand(oldId: number, command: string, args: any[], result: any, error: Error | undefined, testUid?: string, callSource?: string, timestamp?: number): {
|
|
36
|
-
entry: CommandLog & {
|
|
37
|
-
_id?: number;
|
|
38
|
-
};
|
|
39
|
-
oldTimestamp: number;
|
|
40
|
-
};
|
|
41
|
-
takeScreenshot(): Promise<string | null>;
|
|
42
|
-
captureSource(filePath: string): Promise<void>;
|
|
43
|
-
injectScript(): Promise<void>;
|
|
44
|
-
captureTrace(): Promise<void>;
|
|
45
|
-
/** Pulls Chrome browser logs (requires `goog:loggingPrefs: { browser: 'ALL' }`). */
|
|
46
|
-
captureBrowserLogs(): Promise<void>;
|
|
47
|
-
isNavigationCommand(command: string): boolean;
|
|
48
|
-
}
|