@pyrokine/mcp-chrome 1.1.0 → 1.3.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/README.md +103 -53
- package/dist/anti-detection/behavior.d.ts +0 -8
- package/dist/anti-detection/behavior.d.ts.map +1 -1
- package/dist/anti-detection/behavior.js +0 -16
- package/dist/anti-detection/behavior.js.map +1 -1
- package/dist/cdp/client.d.ts +0 -2
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +30 -45
- package/dist/cdp/client.js.map +1 -1
- package/dist/cdp/launcher.d.ts +1 -8
- package/dist/cdp/launcher.d.ts.map +1 -1
- package/dist/cdp/launcher.js +4 -20
- package/dist/cdp/launcher.js.map +1 -1
- package/dist/core/auto-wait.d.ts +2 -2
- package/dist/core/auto-wait.d.ts.map +1 -1
- package/dist/core/auto-wait.js +1 -1
- package/dist/core/auto-wait.js.map +1 -1
- package/dist/core/errors.d.ts +10 -13
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +19 -25
- package/dist/core/errors.js.map +1 -1
- package/dist/core/locator.d.ts +6 -7
- package/dist/core/locator.d.ts.map +1 -1
- package/dist/core/locator.js +77 -31
- package/dist/core/locator.js.map +1 -1
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +1 -1
- package/dist/core/retry.js.map +1 -1
- package/dist/core/session.d.ts +32 -33
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +154 -114
- package/dist/core/session.js.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/unified-session.d.ts +54 -67
- package/dist/core/unified-session.d.ts.map +1 -1
- package/dist/core/unified-session.js +215 -181
- package/dist/core/unified-session.js.map +1 -1
- package/dist/extension/bridge.d.ts +0 -19
- package/dist/extension/bridge.d.ts.map +1 -1
- package/dist/extension/bridge.js +6 -52
- package/dist/extension/bridge.js.map +1 -1
- package/dist/extension/http-server.d.ts +13 -11
- package/dist/extension/http-server.d.ts.map +1 -1
- package/dist/extension/http-server.js +101 -95
- package/dist/extension/http-server.js.map +1 -1
- package/dist/index.js +11 -64
- package/dist/index.js.map +1 -1
- package/dist/tools/browse.d.ts +3 -80
- package/dist/tools/browse.d.ts.map +1 -1
- package/dist/tools/browse.js +135 -291
- package/dist/tools/browse.js.map +1 -1
- package/dist/tools/cookies.d.ts +3 -71
- package/dist/tools/cookies.d.ts.map +1 -1
- package/dist/tools/cookies.js +75 -157
- package/dist/tools/cookies.js.map +1 -1
- package/dist/tools/evaluate.d.ts +3 -52
- package/dist/tools/evaluate.d.ts.map +1 -1
- package/dist/tools/evaluate.js +35 -86
- package/dist/tools/evaluate.js.map +1 -1
- package/dist/tools/extract.d.ts +3 -226
- package/dist/tools/extract.d.ts.map +1 -1
- package/dist/tools/extract.js +98 -170
- package/dist/tools/extract.js.map +1 -1
- package/dist/tools/index.d.ts +9 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +9 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/input.d.ts +3 -258
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +56 -143
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/logs.d.ts +3 -51
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +47 -108
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/manage.d.ts +3 -64
- package/dist/tools/manage.d.ts.map +1 -1
- package/dist/tools/manage.js +243 -373
- package/dist/tools/manage.js.map +1 -1
- package/dist/tools/schema.d.ts +16 -182
- package/dist/tools/schema.d.ts.map +1 -1
- package/dist/tools/schema.js +70 -159
- package/dist/tools/schema.js.map +1 -1
- package/dist/tools/wait.d.ts +3 -221
- package/dist/tools/wait.d.ts.map +1 -1
- package/dist/tools/wait.js +74 -145
- package/dist/tools/wait.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/wait.d.ts
CHANGED
|
@@ -7,227 +7,9 @@
|
|
|
7
7
|
* - time: 固定等待时间
|
|
8
8
|
* - idle: 等待网络空闲
|
|
9
9
|
*/
|
|
10
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
10
11
|
/**
|
|
11
|
-
* wait
|
|
12
|
+
* 注册 wait 工具
|
|
12
13
|
*/
|
|
13
|
-
export declare
|
|
14
|
-
name: string;
|
|
15
|
-
description: string;
|
|
16
|
-
inputSchema: {
|
|
17
|
-
type: "object";
|
|
18
|
-
properties: {
|
|
19
|
-
for: {
|
|
20
|
-
type: string;
|
|
21
|
-
enum: string[];
|
|
22
|
-
description: string;
|
|
23
|
-
};
|
|
24
|
-
target: {
|
|
25
|
-
description: string;
|
|
26
|
-
oneOf: readonly [{
|
|
27
|
-
readonly type: "object";
|
|
28
|
-
readonly title: "可访问性树定位";
|
|
29
|
-
readonly description: "通过 ARIA role 和 name 定位元素";
|
|
30
|
-
readonly properties: {
|
|
31
|
-
readonly role: {
|
|
32
|
-
readonly type: "string";
|
|
33
|
-
readonly description: "ARIA role(如 button、link、textbox)";
|
|
34
|
-
};
|
|
35
|
-
readonly name: {
|
|
36
|
-
readonly type: "string";
|
|
37
|
-
readonly description: "可访问名称(可选)";
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
readonly required: readonly ["role"];
|
|
41
|
-
readonly additionalProperties: false;
|
|
42
|
-
}, {
|
|
43
|
-
readonly type: "object";
|
|
44
|
-
readonly title: "文本内容定位";
|
|
45
|
-
readonly description: "通过元素文本内容定位";
|
|
46
|
-
readonly properties: {
|
|
47
|
-
readonly text: {
|
|
48
|
-
readonly type: "string";
|
|
49
|
-
readonly description: "文本内容";
|
|
50
|
-
};
|
|
51
|
-
readonly exact: {
|
|
52
|
-
readonly type: "boolean";
|
|
53
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
readonly required: readonly ["text"];
|
|
57
|
-
readonly additionalProperties: false;
|
|
58
|
-
}, {
|
|
59
|
-
readonly type: "object";
|
|
60
|
-
readonly title: "Label 定位";
|
|
61
|
-
readonly description: "通过表单 label 文本定位关联的输入元素";
|
|
62
|
-
readonly properties: {
|
|
63
|
-
readonly label: {
|
|
64
|
-
readonly type: "string";
|
|
65
|
-
readonly description: "label 文本";
|
|
66
|
-
};
|
|
67
|
-
readonly exact: {
|
|
68
|
-
readonly type: "boolean";
|
|
69
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
readonly required: readonly ["label"];
|
|
73
|
-
readonly additionalProperties: false;
|
|
74
|
-
}, {
|
|
75
|
-
readonly type: "object";
|
|
76
|
-
readonly title: "Placeholder 定位";
|
|
77
|
-
readonly description: "通过输入框的 placeholder 属性定位";
|
|
78
|
-
readonly properties: {
|
|
79
|
-
readonly placeholder: {
|
|
80
|
-
readonly type: "string";
|
|
81
|
-
readonly description: "placeholder 文本";
|
|
82
|
-
};
|
|
83
|
-
readonly exact: {
|
|
84
|
-
readonly type: "boolean";
|
|
85
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
readonly required: readonly ["placeholder"];
|
|
89
|
-
readonly additionalProperties: false;
|
|
90
|
-
}, {
|
|
91
|
-
readonly type: "object";
|
|
92
|
-
readonly title: "Title 属性定位";
|
|
93
|
-
readonly description: "通过元素的 title 属性定位";
|
|
94
|
-
readonly properties: {
|
|
95
|
-
readonly title: {
|
|
96
|
-
readonly type: "string";
|
|
97
|
-
readonly description: "title 属性值";
|
|
98
|
-
};
|
|
99
|
-
readonly exact: {
|
|
100
|
-
readonly type: "boolean";
|
|
101
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
readonly required: readonly ["title"];
|
|
105
|
-
readonly additionalProperties: false;
|
|
106
|
-
}, {
|
|
107
|
-
readonly type: "object";
|
|
108
|
-
readonly title: "Alt 属性定位";
|
|
109
|
-
readonly description: "通过图片的 alt 属性定位";
|
|
110
|
-
readonly properties: {
|
|
111
|
-
readonly alt: {
|
|
112
|
-
readonly type: "string";
|
|
113
|
-
readonly description: "alt 属性值";
|
|
114
|
-
};
|
|
115
|
-
readonly exact: {
|
|
116
|
-
readonly type: "boolean";
|
|
117
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
readonly required: readonly ["alt"];
|
|
121
|
-
readonly additionalProperties: false;
|
|
122
|
-
}, {
|
|
123
|
-
readonly type: "object";
|
|
124
|
-
readonly title: "TestId 定位";
|
|
125
|
-
readonly description: "通过 data-testid 属性定位";
|
|
126
|
-
readonly properties: {
|
|
127
|
-
readonly testId: {
|
|
128
|
-
readonly type: "string";
|
|
129
|
-
readonly description: "data-testid 值";
|
|
130
|
-
};
|
|
131
|
-
};
|
|
132
|
-
readonly required: readonly ["testId"];
|
|
133
|
-
readonly additionalProperties: false;
|
|
134
|
-
}, {
|
|
135
|
-
readonly type: "object";
|
|
136
|
-
readonly title: "CSS 选择器定位";
|
|
137
|
-
readonly description: "通过 CSS 选择器定位";
|
|
138
|
-
readonly properties: {
|
|
139
|
-
readonly css: {
|
|
140
|
-
readonly type: "string";
|
|
141
|
-
readonly description: "CSS 选择器";
|
|
142
|
-
};
|
|
143
|
-
};
|
|
144
|
-
readonly required: readonly ["css"];
|
|
145
|
-
readonly additionalProperties: false;
|
|
146
|
-
}, {
|
|
147
|
-
readonly type: "object";
|
|
148
|
-
readonly title: "CSS + 文本组合定位";
|
|
149
|
-
readonly description: "通过 CSS 选择器 + 文本内容组合定位(先 CSS 筛选,再按文本过滤)";
|
|
150
|
-
readonly properties: {
|
|
151
|
-
readonly css: {
|
|
152
|
-
readonly type: "string";
|
|
153
|
-
readonly description: "CSS 选择器";
|
|
154
|
-
};
|
|
155
|
-
readonly text: {
|
|
156
|
-
readonly type: "string";
|
|
157
|
-
readonly description: "文本内容";
|
|
158
|
-
};
|
|
159
|
-
readonly exact: {
|
|
160
|
-
readonly type: "boolean";
|
|
161
|
-
readonly description: "是否精确匹配(默认 false)";
|
|
162
|
-
};
|
|
163
|
-
};
|
|
164
|
-
readonly required: readonly ["css", "text"];
|
|
165
|
-
readonly additionalProperties: false;
|
|
166
|
-
}, {
|
|
167
|
-
readonly type: "object";
|
|
168
|
-
readonly title: "XPath 定位";
|
|
169
|
-
readonly description: "通过 XPath 表达式定位";
|
|
170
|
-
readonly properties: {
|
|
171
|
-
readonly xpath: {
|
|
172
|
-
readonly type: "string";
|
|
173
|
-
readonly description: "XPath 表达式";
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
readonly required: readonly ["xpath"];
|
|
177
|
-
readonly additionalProperties: false;
|
|
178
|
-
}, {
|
|
179
|
-
readonly type: "object";
|
|
180
|
-
readonly title: "坐标定位";
|
|
181
|
-
readonly description: "通过页面坐标定位";
|
|
182
|
-
readonly properties: {
|
|
183
|
-
readonly x: {
|
|
184
|
-
readonly type: "number";
|
|
185
|
-
readonly description: "X 坐标(像素)";
|
|
186
|
-
};
|
|
187
|
-
readonly y: {
|
|
188
|
-
readonly type: "number";
|
|
189
|
-
readonly description: "Y 坐标(像素)";
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
readonly required: readonly ["x", "y"];
|
|
193
|
-
readonly additionalProperties: false;
|
|
194
|
-
}];
|
|
195
|
-
};
|
|
196
|
-
state: {
|
|
197
|
-
type: string;
|
|
198
|
-
enum: string[];
|
|
199
|
-
description: string;
|
|
200
|
-
};
|
|
201
|
-
ms: {
|
|
202
|
-
type: string;
|
|
203
|
-
description: string;
|
|
204
|
-
};
|
|
205
|
-
tabId: {
|
|
206
|
-
type: string;
|
|
207
|
-
description: string;
|
|
208
|
-
};
|
|
209
|
-
timeout: {
|
|
210
|
-
type: string;
|
|
211
|
-
description: string;
|
|
212
|
-
};
|
|
213
|
-
frame: {
|
|
214
|
-
oneOf: {
|
|
215
|
-
type: string;
|
|
216
|
-
}[];
|
|
217
|
-
description: string;
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
required: string[];
|
|
221
|
-
};
|
|
222
|
-
};
|
|
223
|
-
/**
|
|
224
|
-
* wait 工具处理器
|
|
225
|
-
*/
|
|
226
|
-
export declare function handleWait(params: unknown): Promise<{
|
|
227
|
-
content: Array<{
|
|
228
|
-
type: 'text';
|
|
229
|
-
text: string;
|
|
230
|
-
}>;
|
|
231
|
-
isError?: boolean;
|
|
232
|
-
}>;
|
|
14
|
+
export declare function registerWaitTool(server: McpServer): void;
|
|
233
15
|
//# sourceMappingURL=wait.d.ts.map
|
package/dist/tools/wait.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAA;AAmbtE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAKxD"}
|
package/dist/tools/wait.js
CHANGED
|
@@ -8,72 +8,31 @@
|
|
|
8
8
|
* - idle: 等待网络空闲
|
|
9
9
|
*/
|
|
10
10
|
import { z } from 'zod';
|
|
11
|
-
import { formatErrorResponse, getSession, getUnifiedSession, TimeoutError } from '../core/index.js';
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export const waitToolDefinition = {
|
|
17
|
-
name: 'wait',
|
|
18
|
-
description: '等待条件:元素、导航、时间',
|
|
19
|
-
inputSchema: {
|
|
20
|
-
type: 'object',
|
|
21
|
-
properties: {
|
|
22
|
-
for: {
|
|
23
|
-
type: 'string',
|
|
24
|
-
enum: ['element', 'navigation', 'time', 'idle'],
|
|
25
|
-
description: '等待类型',
|
|
26
|
-
},
|
|
27
|
-
target: {
|
|
28
|
-
...targetJsonSchema,
|
|
29
|
-
description: '目标元素(for=element 时必填;navigation/time/idle 不需要)',
|
|
30
|
-
},
|
|
31
|
-
state: {
|
|
32
|
-
type: 'string',
|
|
33
|
-
enum: ['visible', 'hidden', 'attached', 'detached'],
|
|
34
|
-
description: '元素状态(element)',
|
|
35
|
-
},
|
|
36
|
-
ms: {
|
|
37
|
-
type: 'number',
|
|
38
|
-
description: '毫秒(time)',
|
|
39
|
-
},
|
|
40
|
-
tabId: {
|
|
41
|
-
type: 'string',
|
|
42
|
-
description: '目标 Tab ID(可选,仅 Extension 模式)。不指定则使用当前 attach 的 tab。可操作非当前 attach 的 tab。CDP 模式下忽略此参数',
|
|
43
|
-
},
|
|
44
|
-
timeout: {
|
|
45
|
-
type: 'number',
|
|
46
|
-
description: '超时',
|
|
47
|
-
},
|
|
48
|
-
frame: {
|
|
49
|
-
oneOf: [{ type: 'string' }, { type: 'number' }],
|
|
50
|
-
description: 'iframe 定位(可选,仅 Extension 模式)。CSS 选择器(如 "iframe#main")或索引(如 0)。不指定则在主框架操作',
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
required: ['for'],
|
|
54
|
-
},
|
|
55
|
-
};
|
|
11
|
+
import { formatErrorResponse, formatResponse, getSession, getUnifiedSession, TimeoutError } from '../core/index.js';
|
|
12
|
+
import { DEFAULT_TIMEOUT } from '../core/types.js';
|
|
13
|
+
import { targetToFindParams, targetZodSchema } from './schema.js';
|
|
14
|
+
/** 轮询间隔(毫秒) */
|
|
15
|
+
const POLL_INTERVAL = 100;
|
|
56
16
|
/**
|
|
57
17
|
* wait 参数 schema
|
|
58
18
|
*/
|
|
59
19
|
const waitSchema = z.object({
|
|
60
|
-
for: z.enum(['element', 'navigation', 'time', 'idle']),
|
|
61
|
-
target: targetZodSchema.optional(),
|
|
62
|
-
state: z.enum(['visible', 'hidden', 'attached', 'detached']).optional(),
|
|
63
|
-
ms: z.number().optional(),
|
|
64
|
-
tabId: z.string().optional(),
|
|
65
|
-
timeout: z.number().optional(),
|
|
66
|
-
frame: z.union([z.string(), z.number()]).optional(),
|
|
20
|
+
for: z.enum(['element', 'navigation', 'time', 'idle']).describe('等待类型'),
|
|
21
|
+
target: targetZodSchema.optional().describe('目标元素(for=element 时必填;navigation/time/idle 不需要)'),
|
|
22
|
+
state: z.enum(['visible', 'hidden', 'attached', 'detached']).optional().describe('元素状态(element)'),
|
|
23
|
+
ms: z.number().optional().describe('毫秒(time)'),
|
|
24
|
+
tabId: z.string().optional().describe('目标 Tab ID(可选,仅 Extension 模式)。不指定则使用当前 attach 的 tab。可操作非当前 attach 的 tab。CDP 模式下忽略此参数'),
|
|
25
|
+
timeout: z.number().optional().describe('超时'),
|
|
26
|
+
frame: z.union([z.string(), z.number()]).optional().describe('iframe 定位(可选,仅 Extension 模式)。CSS 选择器(如 "iframe#main")或索引(如 0)。不指定则在主框架操作'),
|
|
67
27
|
});
|
|
68
28
|
/**
|
|
69
29
|
* wait 工具处理器
|
|
70
30
|
*/
|
|
71
|
-
|
|
31
|
+
async function handleWait(args) {
|
|
72
32
|
try {
|
|
73
|
-
const args = waitSchema.parse(params);
|
|
74
33
|
const unifiedSession = getUnifiedSession();
|
|
75
34
|
const mode = unifiedSession.getMode();
|
|
76
|
-
const timeout = args.timeout ??
|
|
35
|
+
const timeout = args.timeout ?? DEFAULT_TIMEOUT;
|
|
77
36
|
return await unifiedSession.withTabId(args.tabId, async () => {
|
|
78
37
|
return await unifiedSession.withFrame(args.frame, async () => {
|
|
79
38
|
switch (args.for) {
|
|
@@ -102,19 +61,12 @@ export async function handleWait(params) {
|
|
|
102
61
|
const session = getSession();
|
|
103
62
|
await waitForElement(session, args.target, state, timeout);
|
|
104
63
|
}
|
|
105
|
-
return {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
waited: 'element',
|
|
112
|
-
state,
|
|
113
|
-
mode,
|
|
114
|
-
}),
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
};
|
|
64
|
+
return formatResponse({
|
|
65
|
+
success: true,
|
|
66
|
+
waited: 'element',
|
|
67
|
+
state,
|
|
68
|
+
mode,
|
|
69
|
+
});
|
|
118
70
|
}
|
|
119
71
|
case 'navigation': {
|
|
120
72
|
if (mode === 'extension') {
|
|
@@ -125,7 +77,7 @@ export async function handleWait(params) {
|
|
|
125
77
|
while (Date.now() - navStart < timeout) {
|
|
126
78
|
if (!unifiedSession.isExtensionConnected()) {
|
|
127
79
|
navLastError = new Error('Extension 未连接');
|
|
128
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
80
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
129
81
|
continue;
|
|
130
82
|
}
|
|
131
83
|
try {
|
|
@@ -134,7 +86,7 @@ export async function handleWait(params) {
|
|
|
134
86
|
// evaluate 带 timeout 时,Extension 断连会静默回退 CDP,返回错误 tab 的数据
|
|
135
87
|
if (!unifiedSession.isExtensionConnected()) {
|
|
136
88
|
navLastError = new Error('Extension 在 evaluate 期间断开');
|
|
137
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
89
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
138
90
|
continue;
|
|
139
91
|
}
|
|
140
92
|
if (readyState === 'complete') {
|
|
@@ -146,7 +98,7 @@ export async function handleWait(params) {
|
|
|
146
98
|
// 页面正在导航中,evaluate 可能失败
|
|
147
99
|
navLastError = err instanceof Error ? err : new Error(String(err));
|
|
148
100
|
}
|
|
149
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
101
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
150
102
|
}
|
|
151
103
|
if (!navCompleted) {
|
|
152
104
|
const msg = `等待导航完成超时 (${timeout}ms)`;
|
|
@@ -169,39 +121,25 @@ export async function handleWait(params) {
|
|
|
169
121
|
// 预算耗尽或连接断开,降级返回(导航本身已成功)
|
|
170
122
|
}
|
|
171
123
|
}
|
|
172
|
-
return {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
url: navUrl,
|
|
180
|
-
title: navTitle,
|
|
181
|
-
mode,
|
|
182
|
-
}),
|
|
183
|
-
},
|
|
184
|
-
],
|
|
185
|
-
};
|
|
124
|
+
return formatResponse({
|
|
125
|
+
success: true,
|
|
126
|
+
waited: 'navigation',
|
|
127
|
+
url: navUrl,
|
|
128
|
+
title: navTitle,
|
|
129
|
+
mode,
|
|
130
|
+
});
|
|
186
131
|
}
|
|
187
132
|
// CDP 模式
|
|
188
133
|
const session = getSession();
|
|
189
134
|
await waitForNavigation(session, timeout);
|
|
190
135
|
const sessionState = session.getState();
|
|
191
|
-
return {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
url: sessionState?.url,
|
|
199
|
-
title: sessionState?.title,
|
|
200
|
-
mode,
|
|
201
|
-
}),
|
|
202
|
-
},
|
|
203
|
-
],
|
|
204
|
-
};
|
|
136
|
+
return formatResponse({
|
|
137
|
+
success: true,
|
|
138
|
+
waited: 'navigation',
|
|
139
|
+
url: sessionState?.url,
|
|
140
|
+
title: sessionState?.title,
|
|
141
|
+
mode,
|
|
142
|
+
});
|
|
205
143
|
}
|
|
206
144
|
case 'time': {
|
|
207
145
|
if (!args.ms) {
|
|
@@ -221,18 +159,11 @@ export async function handleWait(params) {
|
|
|
221
159
|
};
|
|
222
160
|
}
|
|
223
161
|
await new Promise((resolve) => setTimeout(resolve, args.ms));
|
|
224
|
-
return {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
success: true,
|
|
230
|
-
waited: 'time',
|
|
231
|
-
ms: args.ms,
|
|
232
|
-
}),
|
|
233
|
-
},
|
|
234
|
-
],
|
|
235
|
-
};
|
|
162
|
+
return formatResponse({
|
|
163
|
+
success: true,
|
|
164
|
+
waited: 'time',
|
|
165
|
+
ms: args.ms,
|
|
166
|
+
});
|
|
236
167
|
}
|
|
237
168
|
case 'idle': {
|
|
238
169
|
if (mode === 'extension') {
|
|
@@ -243,7 +174,7 @@ export async function handleWait(params) {
|
|
|
243
174
|
while (Date.now() - idleStart < timeout) {
|
|
244
175
|
if (!unifiedSession.isExtensionConnected()) {
|
|
245
176
|
idleLastError = new Error('Extension 未连接');
|
|
246
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
177
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
247
178
|
continue;
|
|
248
179
|
}
|
|
249
180
|
try {
|
|
@@ -252,7 +183,7 @@ export async function handleWait(params) {
|
|
|
252
183
|
// evaluate 带 timeout 时,Extension 断连会静默回退 CDP,返回错误 tab 的数据
|
|
253
184
|
if (!unifiedSession.isExtensionConnected()) {
|
|
254
185
|
idleLastError = new Error('Extension 在 evaluate 期间断开');
|
|
255
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
186
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
256
187
|
continue;
|
|
257
188
|
}
|
|
258
189
|
if (readyState === 'complete') {
|
|
@@ -263,7 +194,7 @@ export async function handleWait(params) {
|
|
|
263
194
|
catch (err) {
|
|
264
195
|
idleLastError = err instanceof Error ? err : new Error(String(err));
|
|
265
196
|
}
|
|
266
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
197
|
+
await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL));
|
|
267
198
|
}
|
|
268
199
|
if (!idleCompleted) {
|
|
269
200
|
const msg = `等待网络空闲超时 (${timeout}ms)`;
|
|
@@ -274,34 +205,20 @@ export async function handleWait(params) {
|
|
|
274
205
|
if (idleRemaining > 0) {
|
|
275
206
|
await new Promise(resolve => setTimeout(resolve, Math.min(500, idleRemaining)));
|
|
276
207
|
}
|
|
277
|
-
return {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
success: true,
|
|
283
|
-
waited: 'idle',
|
|
284
|
-
mode,
|
|
285
|
-
}),
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
};
|
|
208
|
+
return formatResponse({
|
|
209
|
+
success: true,
|
|
210
|
+
waited: 'idle',
|
|
211
|
+
mode,
|
|
212
|
+
});
|
|
289
213
|
}
|
|
290
214
|
// CDP 模式
|
|
291
215
|
const session = getSession();
|
|
292
216
|
await waitForNetworkIdle(session, timeout);
|
|
293
|
-
return {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
success: true,
|
|
299
|
-
waited: 'idle',
|
|
300
|
-
mode,
|
|
301
|
-
}),
|
|
302
|
-
},
|
|
303
|
-
],
|
|
304
|
-
};
|
|
217
|
+
return formatResponse({
|
|
218
|
+
success: true,
|
|
219
|
+
waited: 'idle',
|
|
220
|
+
mode,
|
|
221
|
+
});
|
|
305
222
|
}
|
|
306
223
|
default:
|
|
307
224
|
return {
|
|
@@ -331,8 +248,9 @@ export async function handleWait(params) {
|
|
|
331
248
|
*/
|
|
332
249
|
async function waitForElementExtension(unifiedSession, target, state, timeout) {
|
|
333
250
|
const startTime = Date.now();
|
|
334
|
-
const retryDelay =
|
|
335
|
-
const { selector, text, xpath } = targetToFindParams(target);
|
|
251
|
+
const retryDelay = POLL_INTERVAL;
|
|
252
|
+
const { selector, text, xpath, nth: nthParam } = targetToFindParams(target);
|
|
253
|
+
const nth = nthParam ?? 0;
|
|
336
254
|
let lastError = null;
|
|
337
255
|
while (true) {
|
|
338
256
|
const elapsed = Date.now() - startTime;
|
|
@@ -349,13 +267,13 @@ async function waitForElementExtension(unifiedSession, target, state, timeout) {
|
|
|
349
267
|
try {
|
|
350
268
|
const remaining = timeout - elapsed;
|
|
351
269
|
const elements = await unifiedSession.find(selector, text, xpath, remaining);
|
|
352
|
-
const found = elements.length >
|
|
270
|
+
const found = elements.length > nth;
|
|
353
271
|
switch (state) {
|
|
354
272
|
case 'attached':
|
|
355
273
|
case 'visible': {
|
|
356
274
|
if (found) {
|
|
357
275
|
if (state === 'visible') {
|
|
358
|
-
const rect = elements[
|
|
276
|
+
const rect = elements[nth].rect;
|
|
359
277
|
if (rect.width > 0 && rect.height > 0) {
|
|
360
278
|
return;
|
|
361
279
|
}
|
|
@@ -372,7 +290,7 @@ async function waitForElementExtension(unifiedSession, target, state, timeout) {
|
|
|
372
290
|
return;
|
|
373
291
|
}
|
|
374
292
|
if (state === 'hidden' && found) {
|
|
375
|
-
const rect = elements[
|
|
293
|
+
const rect = elements[nth].rect;
|
|
376
294
|
if (rect.width === 0 || rect.height === 0) {
|
|
377
295
|
return;
|
|
378
296
|
}
|
|
@@ -384,7 +302,9 @@ async function waitForElementExtension(unifiedSession, target, state, timeout) {
|
|
|
384
302
|
catch (err) {
|
|
385
303
|
// find() 在元素不存在时返回空数组(不抛异常),此处异常是真正的错误。
|
|
386
304
|
// 暂时性错误(RPC 超时、发送失败、连接断开)可重试,其他确定性错误立即抛出
|
|
387
|
-
if (err instanceof
|
|
305
|
+
if (err instanceof
|
|
306
|
+
Error &&
|
|
307
|
+
/Request timeout|Failed to send|disconnect|未连接|stopped|replaced/i.test(err.message)) {
|
|
388
308
|
lastError = err;
|
|
389
309
|
await new Promise(resolve => setTimeout(resolve, retryDelay));
|
|
390
310
|
continue;
|
|
@@ -399,7 +319,7 @@ async function waitForElementExtension(unifiedSession, target, state, timeout) {
|
|
|
399
319
|
*/
|
|
400
320
|
async function waitForElement(session, target, state, timeout) {
|
|
401
321
|
const startTime = Date.now();
|
|
402
|
-
const retryDelay =
|
|
322
|
+
const retryDelay = POLL_INTERVAL;
|
|
403
323
|
while (Date.now() - startTime < timeout) {
|
|
404
324
|
try {
|
|
405
325
|
const remaining = timeout - (Date.now() - startTime);
|
|
@@ -465,4 +385,13 @@ async function waitForNavigation(session, timeout) {
|
|
|
465
385
|
async function waitForNetworkIdle(session, timeout) {
|
|
466
386
|
await session.waitForNetworkIdle(timeout);
|
|
467
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* 注册 wait 工具
|
|
390
|
+
*/
|
|
391
|
+
export function registerWaitTool(server) {
|
|
392
|
+
server.registerTool('wait', {
|
|
393
|
+
description: '等待条件:元素、导航、时间',
|
|
394
|
+
inputSchema: waitSchema,
|
|
395
|
+
}, (args) => handleWait(args));
|
|
396
|
+
}
|
|
468
397
|
//# sourceMappingURL=wait.js.map
|
package/dist/tools/wait.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"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"}
|