chrome-e2e-sdk 0.0.0-stage → 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/README.md +739 -2
- package/dist/assertion/Assertion.d.ts +87 -0
- package/dist/assertion/Assertion.d.ts.map +1 -0
- package/dist/assertion/Assertion.js +459 -0
- package/dist/assertion/Assertion.js.map +1 -0
- package/dist/assertion/recorder.d.ts +41 -0
- package/dist/assertion/recorder.d.ts.map +1 -0
- package/dist/assertion/recorder.js +37 -0
- package/dist/assertion/recorder.js.map +1 -0
- package/dist/browser/Browser.d.ts +44 -0
- package/dist/browser/Browser.d.ts.map +1 -0
- package/dist/browser/Browser.js +167 -0
- package/dist/browser/Browser.js.map +1 -0
- package/dist/browser/Locator.d.ts +94 -0
- package/dist/browser/Locator.d.ts.map +1 -0
- package/dist/browser/Locator.js +533 -0
- package/dist/browser/Locator.js.map +1 -0
- package/dist/browser/Page.d.ts +272 -0
- package/dist/browser/Page.d.ts.map +1 -0
- package/dist/browser/Page.js +979 -0
- package/dist/browser/Page.js.map +1 -0
- package/dist/client/MCPClient.d.ts +72 -0
- package/dist/client/MCPClient.d.ts.map +1 -0
- package/dist/client/MCPClient.js +302 -0
- package/dist/client/MCPClient.js.map +1 -0
- package/dist/client/MCPCommand.d.ts +51 -0
- package/dist/client/MCPCommand.d.ts.map +1 -0
- package/dist/client/MCPCommand.js +74 -0
- package/dist/client/MCPCommand.js.map +1 -0
- package/dist/env/loadEnv.d.ts +8 -0
- package/dist/env/loadEnv.d.ts.map +1 -0
- package/dist/env/loadEnv.js +19 -0
- package/dist/env/loadEnv.js.map +1 -0
- package/dist/errors/E2EError.d.ts +50 -0
- package/dist/errors/E2EError.d.ts.map +1 -0
- package/dist/errors/E2EError.js +90 -0
- package/dist/errors/E2EError.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +12 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +57 -0
- package/dist/logger.js.map +1 -0
- package/dist/network/Network.d.ts +72 -0
- package/dist/network/Network.d.ts.map +1 -0
- package/dist/network/Network.js +236 -0
- package/dist/network/Network.js.map +1 -0
- package/dist/test/HtmlReport.d.ts +26 -0
- package/dist/test/HtmlReport.d.ts.map +1 -0
- package/dist/test/HtmlReport.js +653 -0
- package/dist/test/HtmlReport.js.map +1 -0
- package/dist/test/Runner.d.ts +146 -0
- package/dist/test/Runner.d.ts.map +1 -0
- package/dist/test/Runner.js +390 -0
- package/dist/test/Runner.js.map +1 -0
- package/dist/test/index.d.ts +4 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +3 -0
- package/dist/test/index.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +63 -4
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { MCPClient } from '../client/MCPClient.js';
|
|
2
|
+
import { Locator, type LocatorOptions } from './Locator.js';
|
|
3
|
+
import { Network } from '../network/Network.js';
|
|
4
|
+
import { type NetworkRequest, type NetworkResponse, type WaitForResponseOptions } from '../network/Network.js';
|
|
5
|
+
import { type Selector } from '../errors/E2EError.js';
|
|
6
|
+
export interface SnapshotResult {
|
|
7
|
+
nodes: Array<{
|
|
8
|
+
uid: string;
|
|
9
|
+
tagName: string;
|
|
10
|
+
attributes: Record<string, string>;
|
|
11
|
+
/** uids of direct child nodes */
|
|
12
|
+
children: string[];
|
|
13
|
+
text?: string;
|
|
14
|
+
role?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export interface ScreenshotOptions {
|
|
19
|
+
fullPage?: boolean;
|
|
20
|
+
quality?: number;
|
|
21
|
+
type?: 'png' | 'jpeg';
|
|
22
|
+
}
|
|
23
|
+
export interface ResizeOptions {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
timeout?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface StorageOperationOptions {
|
|
29
|
+
timeout?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface WaitOptions {
|
|
32
|
+
timeout?: number;
|
|
33
|
+
}
|
|
34
|
+
/** A console message as reported by `list_console_messages`. */
|
|
35
|
+
export interface ConsoleMessage {
|
|
36
|
+
id?: number;
|
|
37
|
+
type: string;
|
|
38
|
+
text: string;
|
|
39
|
+
argsCount?: number;
|
|
40
|
+
count?: number;
|
|
41
|
+
stackTrace?: string;
|
|
42
|
+
}
|
|
43
|
+
/** The detailed shape reported by `get_console_message`. */
|
|
44
|
+
export interface ConsoleMessageDetail extends ConsoleMessage {
|
|
45
|
+
args?: unknown[];
|
|
46
|
+
}
|
|
47
|
+
export interface EmulateOptions {
|
|
48
|
+
/** e.g. `Slow3G`, `Fast4G`, `Offline`. Omit to leave throttling unchanged. */
|
|
49
|
+
networkConditions?: string;
|
|
50
|
+
/** 1-20. 1 disables throttling. */
|
|
51
|
+
cpuThrottlingRate?: number;
|
|
52
|
+
userAgent?: string;
|
|
53
|
+
colorScheme?: 'dark' | 'light' | 'auto';
|
|
54
|
+
/** `<width>x<height>[x<dpr>][,mobile][,touch]`, or `WIDTHxHEIGHT` to clear. */
|
|
55
|
+
viewport?: string;
|
|
56
|
+
/** `<latitude>,<longitude>`. Omit to clear. */
|
|
57
|
+
geolocation?: string;
|
|
58
|
+
timeout?: number;
|
|
59
|
+
}
|
|
60
|
+
export type LoadState = 'load' | 'domcontentloaded' | 'networkidle';
|
|
61
|
+
export declare class PageLocalStorage {
|
|
62
|
+
private page;
|
|
63
|
+
constructor(page: Page);
|
|
64
|
+
setItem(key: string, value: string, options?: StorageOperationOptions): Promise<void>;
|
|
65
|
+
getItem(key: string, options?: StorageOperationOptions): Promise<string | null>;
|
|
66
|
+
removeItem(key: string, options?: StorageOperationOptions): Promise<void>;
|
|
67
|
+
/** Keys currently present, in insertion order. */
|
|
68
|
+
keys(options?: StorageOperationOptions): Promise<string[]>;
|
|
69
|
+
clear(options?: StorageOperationOptions): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
export declare class Page {
|
|
72
|
+
private mcpClient;
|
|
73
|
+
private pageId;
|
|
74
|
+
private defaultTimeout;
|
|
75
|
+
private closed;
|
|
76
|
+
private networkInstance;
|
|
77
|
+
private localStorageInstance;
|
|
78
|
+
private _url;
|
|
79
|
+
private _title;
|
|
80
|
+
private _active;
|
|
81
|
+
private readonly logger;
|
|
82
|
+
constructor(mcpClient: MCPClient, pageId: number, defaultTimeout: number);
|
|
83
|
+
private createLogger;
|
|
84
|
+
goto(url: string, options?: {
|
|
85
|
+
timeout?: number;
|
|
86
|
+
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
|
|
87
|
+
}): Promise<void>;
|
|
88
|
+
reload(options?: {
|
|
89
|
+
timeout?: number;
|
|
90
|
+
}): Promise<void>;
|
|
91
|
+
back(options?: {
|
|
92
|
+
timeout?: number;
|
|
93
|
+
}): Promise<void>;
|
|
94
|
+
forward(options?: {
|
|
95
|
+
timeout?: number;
|
|
96
|
+
}): Promise<void>;
|
|
97
|
+
waitForTimeout(timeout: number): Promise<void>;
|
|
98
|
+
waitForURL(url: string | RegExp | ((url: string) => boolean), options?: WaitOptions): Promise<void>;
|
|
99
|
+
waitForLoadState(state?: LoadState, options?: WaitOptions): Promise<void>;
|
|
100
|
+
waitForRequest(options: WaitForResponseOptions): Promise<NetworkRequest>;
|
|
101
|
+
waitForResponse(options: WaitForResponseOptions): Promise<NetworkResponse>;
|
|
102
|
+
close(): Promise<void>;
|
|
103
|
+
url(): Promise<string>;
|
|
104
|
+
title(): Promise<string>;
|
|
105
|
+
isActive(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Update cached page info without replacing the instance, so Locator and
|
|
108
|
+
* Network objects created from this page stay attached to it.
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
updatePageInfo(url?: string, title?: string, active?: boolean): void;
|
|
113
|
+
snapshot(): Promise<SnapshotResult>;
|
|
114
|
+
screenshot(options?: ScreenshotOptions): Promise<Buffer>;
|
|
115
|
+
/**
|
|
116
|
+
* Screenshot a single element identified by its snapshot uid.
|
|
117
|
+
* Shared with `Locator.screenshot()` so both handle the base64 and the
|
|
118
|
+
* "saved to file" response shapes identically.
|
|
119
|
+
*
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
screenshotElement(uid: string, options?: LocatorOptions): Promise<Buffer>;
|
|
123
|
+
resize(options: ResizeOptions): Promise<void>;
|
|
124
|
+
getByText(text: string, options?: {
|
|
125
|
+
exact?: boolean;
|
|
126
|
+
}): Locator;
|
|
127
|
+
getByRole(role: string, options?: {
|
|
128
|
+
name?: string;
|
|
129
|
+
exact?: boolean;
|
|
130
|
+
}): Locator;
|
|
131
|
+
getByLabel(label: string, options?: {
|
|
132
|
+
exact?: boolean;
|
|
133
|
+
}): Locator;
|
|
134
|
+
locator(selector: string): Locator;
|
|
135
|
+
click(selector: string | Selector, options?: {
|
|
136
|
+
timeout?: number;
|
|
137
|
+
exact?: boolean;
|
|
138
|
+
}): Promise<void>;
|
|
139
|
+
fill(selector: string | Selector, value: string, options?: {
|
|
140
|
+
timeout?: number;
|
|
141
|
+
exact?: boolean;
|
|
142
|
+
}): Promise<void>;
|
|
143
|
+
private toSelector;
|
|
144
|
+
/**
|
|
145
|
+
* Resolve a selector to a Chrome DevTools node uid.
|
|
146
|
+
* CSS and label selectors go through injected scripts; role, name and text
|
|
147
|
+
* selectors are matched against the a11y snapshot.
|
|
148
|
+
*
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
resolve(selector: Selector): Promise<{
|
|
152
|
+
uid: string;
|
|
153
|
+
}>;
|
|
154
|
+
/** @internal */
|
|
155
|
+
callTool<T = unknown>(name: string, arguments_?: Record<string, unknown>): Promise<T>;
|
|
156
|
+
/** @internal */
|
|
157
|
+
evaluateLocator<T = unknown>(selector: Selector, body: string, operation: string, options?: {
|
|
158
|
+
timeout?: number;
|
|
159
|
+
}): Promise<T>;
|
|
160
|
+
/**
|
|
161
|
+
* Injected helper that locates the form control a visible label refers to.
|
|
162
|
+
*
|
|
163
|
+
* Covers the shapes `getByLabel` has to survive in real pages: `aria-label`,
|
|
164
|
+
* `<label for>` / wrapping labels, and components that render a label
|
|
165
|
+
* element next to the input inside a `.el-form-item`-style row.
|
|
166
|
+
*/
|
|
167
|
+
private labelFinderSource;
|
|
168
|
+
private findElement;
|
|
169
|
+
private resolveCssSelector;
|
|
170
|
+
private resolveLabelSelector;
|
|
171
|
+
/**
|
|
172
|
+
* Tag the target element with a throwaway attribute, read its snapshot uid
|
|
173
|
+
* back, then remove the attribute. `evaluate_script` only accepts element
|
|
174
|
+
* uids as arguments, so this is how a CSS or label selector is turned into
|
|
175
|
+
* something the uid-based tools understand.
|
|
176
|
+
*/
|
|
177
|
+
private resolveViaMarker;
|
|
178
|
+
private parseNavigationFailure;
|
|
179
|
+
private matchName;
|
|
180
|
+
private matchesURL;
|
|
181
|
+
private describeURLMatcher;
|
|
182
|
+
private matchesLoadState;
|
|
183
|
+
waitForText(texts: string | string[], options?: {
|
|
184
|
+
timeout?: number;
|
|
185
|
+
}): Promise<void>;
|
|
186
|
+
/**
|
|
187
|
+
* Fill several form controls in one call. `chrome-devtools-mcp` documents
|
|
188
|
+
* `fill_form` as strongly preferred over repeated `fill` calls: it is faster
|
|
189
|
+
* and more reliable because every control is resolved from one snapshot.
|
|
190
|
+
*/
|
|
191
|
+
fillForm(fields: Array<{
|
|
192
|
+
label: string;
|
|
193
|
+
value: string;
|
|
194
|
+
} | {
|
|
195
|
+
uid: string;
|
|
196
|
+
value: string;
|
|
197
|
+
}>, options?: {
|
|
198
|
+
timeout?: number;
|
|
199
|
+
}): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Resolve several label selectors at once: mark every match, take a single
|
|
202
|
+
* snapshot, then read each uid back and clean up.
|
|
203
|
+
*/
|
|
204
|
+
private resolveLabels;
|
|
205
|
+
/**
|
|
206
|
+
* Emulate network, CPU, user agent, colour scheme, viewport or geolocation.
|
|
207
|
+
* Omitting a key leaves that dimension untouched upstream; `clearEmulation()`
|
|
208
|
+
* resets all of them at once.
|
|
209
|
+
*/
|
|
210
|
+
emulate(options?: EmulateOptions): Promise<void>;
|
|
211
|
+
/** Reset every emulated dimension. */
|
|
212
|
+
clearEmulation(options?: {
|
|
213
|
+
timeout?: number;
|
|
214
|
+
}): Promise<void>;
|
|
215
|
+
/** Fetch one console message with its arguments and stack trace. */
|
|
216
|
+
getConsoleMessage(messageId: number): Promise<ConsoleMessage>;
|
|
217
|
+
get network(): Network;
|
|
218
|
+
get localStorage(): PageLocalStorage;
|
|
219
|
+
consoleMessages(options?: {
|
|
220
|
+
includeStackTraces?: boolean;
|
|
221
|
+
}): Promise<ConsoleMessage[]>;
|
|
222
|
+
evaluate<T = unknown>(script: string, args?: unknown[], options?: {
|
|
223
|
+
timeout?: number;
|
|
224
|
+
}): Promise<T>;
|
|
225
|
+
getPageId(): number;
|
|
226
|
+
isClosed(): boolean;
|
|
227
|
+
getDefaultTimeout(): number;
|
|
228
|
+
setDefaultTimeout(timeout: number): void;
|
|
229
|
+
private ensureNotClosed;
|
|
230
|
+
private parseSnapshot;
|
|
231
|
+
private parseStructuredSnapshot;
|
|
232
|
+
private flattenSnapshotNodes;
|
|
233
|
+
/**
|
|
234
|
+
* `chrome-devtools-mcp` serializes each snapshot node as a flat object where
|
|
235
|
+
* `id`, `role` and `name` sit next to every extracted DOM attribute
|
|
236
|
+
* (`aria-label`, `placeholder`, `disabled`, ...). Both that flat shape and a
|
|
237
|
+
* nested `attributes` object are accepted.
|
|
238
|
+
*/
|
|
239
|
+
private normalizeSnapshotNode;
|
|
240
|
+
private parseConsoleMessages;
|
|
241
|
+
/**
|
|
242
|
+
* `get_console_message` answers with text when structured content is off:
|
|
243
|
+
*
|
|
244
|
+
* ```text
|
|
245
|
+
* ID: 7
|
|
246
|
+
* Message: error> Uncaught TypeError
|
|
247
|
+
* ### Arguments
|
|
248
|
+
* Arg #0: undefined
|
|
249
|
+
* ### Stack trace
|
|
250
|
+
* at ...
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
private parseDetailedConsoleMessage;
|
|
254
|
+
private readSavedScreenshot;
|
|
255
|
+
private withTimeout;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Unwraps the envelope `evaluate_script` returns.
|
|
259
|
+
*
|
|
260
|
+
* The tool has no dedicated structured field, so upstream falls back to
|
|
261
|
+
* `structuredContent.message` and leaves the whole human-readable reply in it,
|
|
262
|
+
* fenced value included:
|
|
263
|
+
*
|
|
264
|
+
* { message: 'Script ran on page and returned:\n```json\n"complete"\n```' }
|
|
265
|
+
*
|
|
266
|
+
* Returning that verbatim makes every caller believe the script returned an
|
|
267
|
+
* object. `waitForLoadState` compared it against 'complete', never matched, and
|
|
268
|
+
* polled until the timeout fired on a page that had in fact loaded instantly.
|
|
269
|
+
* Every other evaluate-backed helper was silently broken the same way.
|
|
270
|
+
*/
|
|
271
|
+
export declare function unwrapScriptResult<T>(raw: unknown): T;
|
|
272
|
+
//# sourceMappingURL=Page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../src/browser/Page.ts"],"names":[],"mappings":"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"}
|