benchmark-collector 1.1.1 → 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 CHANGED
@@ -7,6 +7,7 @@
7
7
  - **Codegen 录制** — 基于 Playwright Codegen API,自动记录用户操作生成可回放脚本
8
8
  - **SoM 标注截图** — 自动识别页面可交互元素,生成带彩色编号标注的截图
9
9
  - **零闪烁采集** — 使用 CDP 直接截图 + Runtime.evaluate,不触发 Playwright 内部钩子
10
+ - **iframe 深度采集** — 通过 CDP frame targeting 采集页面内所有 iframe(含跨域)的 DOM 和可交互元素,支持 ERP 等多 iframe 页面
10
11
  - **Cookie 自动注入** — 从本地 Chrome 提取并解密 Cookie,保留登录态(支持 macOS / Windows / Linux)
11
12
  - **对话采集** — 支持采集客服系统中的对话消息
12
13
  - **长时间录制优化** — 写入节流、原子保存、CDP 自动清理,支持数小时连续采集
@@ -109,7 +110,7 @@ output/处理退款_2026-03-22T10-00-00/
109
110
  | `*_clean.png` | 纯净页面截图 | 视觉模型输入 |
110
111
  | `*_som.png` | SoM 标注截图(彩色编号框标记可交互元素) | 视觉 grounding 训练 |
111
112
  | `*_elements.json` | 可交互元素列表(tag / role / text / bbox / attributes) | 结构化 grounding 数据 |
112
- | `*_dom.html` | 页面 DOM 快照 | DOM-based agent 训练 |
113
+ | `*_dom.html` | 页面 DOM 快照(含 iframe 内容) | DOM-based agent 训练 |
113
114
  | `*_conversation.json` | 对话消息(角色 / 内容 / 时间戳) | 客服对话训练数据 |
114
115
 
115
116
  ## 回放与调试
@@ -13,20 +13,20 @@ function hasFlag(name) {
13
13
  const task = getArg('task', '未命名任务');
14
14
  const url = getArg('url', 'https://www.example.com');
15
15
  const chatSelector = getArg('chat-selector', '');
16
- const noCookie = hasFlag('no-cookie');
16
+ const cookie = hasFlag('cookie');
17
17
  const trace = hasFlag('trace');
18
18
  console.log(`Benchmark 数据采集器`);
19
19
  console.log(` 任务: ${task}`);
20
20
  console.log(` URL: ${url}`);
21
21
  if (chatSelector)
22
22
  console.log(` 对话选择器: ${chatSelector}`);
23
- if (noCookie)
24
- console.log(` 模式: 跳过 Cookie 注入`);
23
+ if (cookie)
24
+ console.log(` Cookie: 自动从本地 Chrome 提取并注入`);
25
25
  if (trace)
26
26
  console.log(` Trace: 开启(⚠️ 长时间采集可能产生大文件)`);
27
27
  const collector = new collector_1.BenchmarkCollector(task, url, 'output', {
28
28
  chatSelector: chatSelector || undefined,
29
- noCookie,
29
+ cookie,
30
30
  trace,
31
31
  });
32
32
  collector.start().catch((err) => {
@@ -17,13 +17,13 @@ export declare class BenchmarkCollector {
17
17
  private queueDone;
18
18
  private queueDoneResolve;
19
19
  private chatSelector?;
20
- private lastMessageCount;
21
- private noCookie;
20
+ private lastConversationHash;
21
+ private injectCookie;
22
22
  private injectedCookieDomains;
23
23
  private enableTrace;
24
24
  constructor(task: string, startUrl: string, outputBase?: string, options?: {
25
25
  chatSelector?: string;
26
- noCookie?: boolean;
26
+ cookie?: boolean;
27
27
  trace?: boolean;
28
28
  });
29
29
  get sessionId(): string;
@@ -53,10 +53,24 @@ export declare class BenchmarkCollector {
53
53
  private withTimeout;
54
54
  /** 获取或创建页面的 CDP session(自动处理失效重建) */
55
55
  private getCDP;
56
- /** CDP 截图,强制 scale:1 保证像素=CSS坐标 */
56
+ /**
57
+ * CDP 截图,强制 scale:1 保证 1 CSS像素 = 1 图片像素。
58
+ * 返回 { data: base64, width: number, height: number }
59
+ *
60
+ * 注意:Chrome 的 Page.getLayoutMetrics 返回 clientWidth/clientHeight(非 width/height),
61
+ * 必须带 scroll 偏移 (pageX/pageY) 才能正确截取当前可见视口。
62
+ */
57
63
  private takeScreenshotCDP;
58
64
  /** 通过 CDP 执行 JS(不触发 codegen 钩子,零闪烁) */
59
65
  private cdpEval;
66
+ /** 通过 CDP 在指定 frame 中执行 JS */
67
+ private cdpEvalInFrame;
68
+ /**
69
+ * 获取所有 frame 的执行上下文信息(包括跨域 iframe)
70
+ * 返回: { frameId, contextId, url, x, y }[]
71
+ * 其中 x/y 为该 frame 相对于主页面左上角的偏移量
72
+ */
73
+ private getAllFrameContexts;
60
74
  private captureStep;
61
75
  private lastSaveTime;
62
76
  private savePending;
@@ -37,6 +37,7 @@ exports.BenchmarkCollector = void 0;
37
37
  const playwright_core_1 = require("playwright-core");
38
38
  const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
+ const crypto = __importStar(require("crypto"));
40
41
  const cookie_extract_1 = require("./cookie-extract");
41
42
  const dom_capture_1 = require("./dom-capture");
42
43
  const som_annotator_1 = require("./som-annotator");
@@ -55,9 +56,9 @@ class BenchmarkCollector {
55
56
  this.processing = false;
56
57
  this.queueDone = Promise.resolve();
57
58
  this.queueDoneResolve = null;
58
- this.lastMessageCount = 0;
59
- // 是否跳过 Cookie 注入
60
- this.noCookie = false;
59
+ this.lastConversationHash = '';
60
+ // 是否注入 Cookie(默认关闭,--cookie 开启)
61
+ this.injectCookie = false;
61
62
  // 已注入过 Cookie 的域名集合(避免重复提取)
62
63
  this.injectedCookieDomains = new Set();
63
64
  // 是否开启 trace 录制(默认关闭,--trace 开启)
@@ -66,7 +67,7 @@ class BenchmarkCollector {
66
67
  this.lastSaveTime = 0;
67
68
  this.savePending = false;
68
69
  this.chatSelector = options?.chatSelector;
69
- this.noCookie = options?.noCookie ?? false;
70
+ this.injectCookie = options?.cookie ?? false;
70
71
  this.enableTrace = options?.trace ?? false;
71
72
  const safeName = task.replace(/[^\w\u4e00-\u9fff-]/g, '_').replace(/_+/g, '_').substring(0, 50);
72
73
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
@@ -123,8 +124,8 @@ class BenchmarkCollector {
123
124
  this.context = await browser.newContext({
124
125
  viewport: { width: 1280, height: 720 },
125
126
  });
126
- // 默认从本地 Chrome 提取 Cookie 注入(除非 --no-cookie)
127
- if (!this.noCookie) {
127
+ // 仅在 --cookie 时从本地 Chrome 提取 Cookie 注入
128
+ if (this.injectCookie) {
128
129
  await this.injectCookiesForUrl(this.startUrl);
129
130
  }
130
131
  if (this.enableTrace) {
@@ -149,8 +150,8 @@ class BenchmarkCollector {
149
150
  await this.waitForQueueDrain();
150
151
  console.log(`\n✅ 采集已启动,请在浏览器中操作`);
151
152
  console.log(` 任务: ${this.task}`);
152
- if (this.noCookie)
153
- console.log(` 模式: Cookie(未登录)`);
153
+ if (this.injectCookie)
154
+ console.log(` 模式: 自动注入 Cookie`);
154
155
  console.log(` 按 Ctrl+C 结束采集\n`);
155
156
  let browserDisconnected = false;
156
157
  await new Promise((resolve) => {
@@ -199,7 +200,7 @@ class BenchmarkCollector {
199
200
  * 自动去重:同一根域名只提取一次(避免重复调用 Python 脚本)。
200
201
  */
201
202
  async injectCookiesForUrl(url) {
202
- if (this.noCookie)
203
+ if (!this.injectCookie)
203
204
  return;
204
205
  try {
205
206
  const hostname = new URL(url).hostname;
@@ -383,25 +384,35 @@ class BenchmarkCollector {
383
384
  this.cdpSessionMap.set(page, cdp);
384
385
  return cdp;
385
386
  }
386
- /** CDP 截图,强制 scale:1 保证像素=CSS坐标 */
387
+ /**
388
+ * CDP 截图,强制 scale:1 保证 1 CSS像素 = 1 图片像素。
389
+ * 返回 { data: base64, width: number, height: number }
390
+ *
391
+ * 注意:Chrome 的 Page.getLayoutMetrics 返回 clientWidth/clientHeight(非 width/height),
392
+ * 必须带 scroll 偏移 (pageX/pageY) 才能正确截取当前可见视口。
393
+ */
387
394
  async takeScreenshotCDP(cdp) {
388
- // 先尝试带 clip.scale=1(精确控制分辨率)
395
+ // 先尝试带 clip.scale=1(精确控制分辨率,1 CSS px = 1 img px)
389
396
  try {
390
397
  const metrics = await cdp.send('Page.getLayoutMetrics');
391
398
  const vp = metrics.cssLayoutViewport || metrics.layoutViewport;
392
- if (vp && vp.width > 0 && vp.height > 0) {
399
+ const w = vp?.clientWidth ?? 0;
400
+ const h = vp?.clientHeight ?? 0;
401
+ if (w > 0 && h > 0) {
402
+ // pageX/pageY 是页面滚动偏移,clip 坐标是页面坐标系
403
+ const scrollX = vp.pageX ?? 0;
404
+ const scrollY = vp.pageY ?? 0;
393
405
  const result = await cdp.send('Page.captureScreenshot', {
394
406
  format: 'png',
395
- clip: { x: 0, y: 0, width: vp.width, height: vp.height, scale: 1 },
407
+ clip: { x: scrollX, y: scrollY, width: w, height: h, scale: 1 },
396
408
  });
397
- return result.data;
409
+ return { data: result.data, width: w, height: h };
398
410
  }
399
411
  }
400
412
  catch (_) { }
401
- // 回退:captureBeyondViewport=false,再用 JS 查 dpr 做后处理
402
- // 实际上对 about:blank 等简单页面直接截即可
413
+ // 回退:默认截图(设备像素比,可能 2x)
403
414
  const result = await cdp.send('Page.captureScreenshot', { format: 'png' });
404
- return result.data;
415
+ return { data: result.data, width: 0, height: 0 };
405
416
  }
406
417
  /** 通过 CDP 执行 JS(不触发 codegen 钩子,零闪烁) */
407
418
  async cdpEval(cdp, expression) {
@@ -415,6 +426,131 @@ class BenchmarkCollector {
415
426
  }
416
427
  return result.result.value;
417
428
  }
429
+ /** 通过 CDP 在指定 frame 中执行 JS */
430
+ async cdpEvalInFrame(cdp, contextId, expression) {
431
+ const result = await cdp.send('Runtime.evaluate', {
432
+ expression,
433
+ contextId,
434
+ returnByValue: true,
435
+ awaitPromise: true,
436
+ });
437
+ if (result.exceptionDetails) {
438
+ throw new Error(result.exceptionDetails.text || 'CDP eval error');
439
+ }
440
+ return result.result.value;
441
+ }
442
+ /**
443
+ * 获取所有 frame 的执行上下文信息(包括跨域 iframe)
444
+ * 返回: { frameId, contextId, url, x, y }[]
445
+ * 其中 x/y 为该 frame 相对于主页面左上角的偏移量
446
+ */
447
+ async getAllFrameContexts(cdp) {
448
+ // 1. 获取 frame 树
449
+ const { frameTree } = await cdp.send('Page.getFrameTree');
450
+ // 2. 收集所有 frame 的 ID 和 URL
451
+ const allFrames = [];
452
+ function walkTree(node, parentId) {
453
+ allFrames.push({ frameId: node.frame.id, url: node.frame.url || '', parentFrameId: parentId });
454
+ if (node.childFrames) {
455
+ for (const child of node.childFrames) {
456
+ walkTree(child, node.frame.id);
457
+ }
458
+ }
459
+ }
460
+ walkTree(frameTree);
461
+ // 3. 启用 Runtime 并收集 execution context
462
+ // 先取消再启用,确保能拿到所有 context
463
+ try {
464
+ await cdp.send('Runtime.disable');
465
+ }
466
+ catch (_) { }
467
+ const contextMap = new Map(); // frameId -> contextId
468
+ const contextHandler = (params) => {
469
+ const ctx = params.context;
470
+ if (ctx.auxData?.frameId) {
471
+ // 只取 default context(isDefault=true),不取 isolated world
472
+ if (ctx.auxData.isDefault !== false) {
473
+ contextMap.set(ctx.auxData.frameId, ctx.id);
474
+ }
475
+ }
476
+ };
477
+ cdp.on('Runtime.executionContextCreated', contextHandler);
478
+ await cdp.send('Runtime.enable');
479
+ // 等一小段时间确保所有 context 上报
480
+ await new Promise(r => setTimeout(r, 100));
481
+ cdp.off('Runtime.executionContextCreated', contextHandler);
482
+ // 4. 获取每个 frame 相对于主页面的偏移量
483
+ const mainFrameId = frameTree.frame.id;
484
+ // 先启用 DOM domain(getFrameOwner 需要)
485
+ try {
486
+ await cdp.send('DOM.enable');
487
+ }
488
+ catch (_) { }
489
+ try {
490
+ await cdp.send('DOM.getDocument', { depth: 0 });
491
+ }
492
+ catch (_) { }
493
+ // 缓存已计算的 frame 偏移
494
+ const offsetCache = new Map();
495
+ offsetCache.set(mainFrameId, { x: 0, y: 0 });
496
+ // 递归计算 frame 偏移(处理嵌套 iframe)
497
+ const getFrameOffset = async (frameId, parentFrameId) => {
498
+ if (offsetCache.has(frameId))
499
+ return offsetCache.get(frameId);
500
+ let offsetX = 0, offsetY = 0;
501
+ try {
502
+ // 使用 CDP DOM.getFrameOwner 获取 iframe 的 owner node
503
+ const { backendNodeId } = await cdp.send('DOM.getFrameOwner', { frameId });
504
+ // 获取 owner 元素的 box model
505
+ const { model } = await cdp.send('DOM.getBoxModel', { backendNodeId });
506
+ if (model && model.content) {
507
+ // content quad: [x1,y1, x2,y2, x3,y3, x4,y4],取左上角
508
+ offsetX = model.content[0];
509
+ offsetY = model.content[1];
510
+ }
511
+ }
512
+ catch (_) {
513
+ // 回退:如果 getFrameOwner 失败,尝试通过父 frame 查找
514
+ if (parentFrameId) {
515
+ const parentOffset = await getFrameOffset(parentFrameId);
516
+ const parentCtx = contextMap.get(parentFrameId);
517
+ if (parentCtx) {
518
+ try {
519
+ const iframeOffset = await this.cdpEvalInFrame(cdp, parentCtx, `(() => {
520
+ const iframes = document.querySelectorAll('iframe');
521
+ for (const f of iframes) {
522
+ if (f.src === ${JSON.stringify('')}) continue;
523
+ const r = f.getBoundingClientRect();
524
+ if (r.width > 0 && r.height > 0) return { x: r.x, y: r.y };
525
+ }
526
+ return null;
527
+ })()`);
528
+ if (iframeOffset) {
529
+ offsetX = parentOffset.x + iframeOffset.x;
530
+ offsetY = parentOffset.y + iframeOffset.y;
531
+ }
532
+ }
533
+ catch (_) { }
534
+ }
535
+ }
536
+ }
537
+ offsetCache.set(frameId, { x: offsetX, y: offsetY });
538
+ return { x: offsetX, y: offsetY };
539
+ };
540
+ const results = [];
541
+ for (const frame of allFrames) {
542
+ const contextId = contextMap.get(frame.frameId);
543
+ if (!contextId)
544
+ continue;
545
+ const offset = await getFrameOffset(frame.frameId, frame.parentFrameId);
546
+ results.push({ frameId: frame.frameId, contextId, url: frame.url, x: offset.x, y: offset.y });
547
+ }
548
+ try {
549
+ await cdp.send('DOM.disable');
550
+ }
551
+ catch (_) { }
552
+ return results;
553
+ }
418
554
  // ========== 核心采集(全部走 CDP,零闪烁) ==========
419
555
  async captureStep(task) {
420
556
  const { action, codegenCode, timestamp } = task;
@@ -441,33 +577,90 @@ class BenchmarkCollector {
441
577
  // ① 纯净截图(CDP, scale:1 保证截图像素=CSS像素)
442
578
  const cleanPath = `${prefix}_clean.png`;
443
579
  const screenshotResult = await this.takeScreenshotCDP(cdp);
444
- const cleanBuffer = Buffer.from(screenshotResult, 'base64');
580
+ const cleanBuffer = Buffer.from(screenshotResult.data, 'base64');
445
581
  fs.writeFileSync(path.join(this.stepsDir, cleanPath), cleanBuffer);
446
- // ② DOMCDP)
582
+ // ② DOM + ③ 可交互元素(CDP,支持跨域 iframe
447
583
  const htmlPath = `${prefix}_dom.html`;
448
- const html = await this.cdpEval(cdp, 'document.documentElement.outerHTML');
449
- fs.writeFileSync(path.join(this.stepsDir, htmlPath), html);
450
- // ③ 可交互元素(CDP)
451
584
  const elementsPath = `${prefix}_elements.json`;
452
- const elementsJson = await this.cdpEval(cdp, (0, dom_capture_1.getCollectScript)());
453
- const elements = JSON.parse(elementsJson);
585
+ let html;
586
+ let elements;
587
+ try {
588
+ // 获取所有 frame 的执行上下文(包括跨域 iframe)
589
+ const frameContexts = await this.getAllFrameContexts(cdp);
590
+ if (frameContexts.length > 1) {
591
+ console.log(` [Frames] 发现 ${frameContexts.length} 个 frame:`);
592
+ for (const f of frameContexts) {
593
+ console.log(` - ${f.url.substring(0, 80)} (offset: ${f.x},${f.y})`);
594
+ }
595
+ }
596
+ // DOM:主 frame HTML + 各子 frame HTML 拼接
597
+ const mainCtx = frameContexts.find(f => f.x === 0 && f.y === 0) || frameContexts[0];
598
+ let mainHtml = await this.cdpEvalInFrame(cdp, mainCtx.contextId, 'document.documentElement.outerHTML');
599
+ // 收集子 frame 的 DOM 并注入到主 HTML 中
600
+ for (const frame of frameContexts) {
601
+ if (frame.frameId === mainCtx.frameId)
602
+ continue;
603
+ try {
604
+ const frameHtml = await this.cdpEvalInFrame(cdp, frame.contextId, 'document.documentElement.outerHTML');
605
+ if (frameHtml) {
606
+ // 在主 HTML 中找到对应 iframe 并附加内容标记
607
+ const marker = `<!-- iframe-content [src=${frame.url}] -->\n<div data-iframe-src="${frame.url}" data-iframe-offset-x="${frame.x}" data-iframe-offset-y="${frame.y}">\n${frameHtml}\n</div>\n<!-- /iframe-content -->`;
608
+ mainHtml += '\n' + marker;
609
+ }
610
+ }
611
+ catch (_) { /* frame 可能已失效 */ }
612
+ }
613
+ html = mainHtml;
614
+ // 可交互元素:在每个 frame 中执行采集脚本,合并结果
615
+ elements = [];
616
+ for (const frame of frameContexts) {
617
+ try {
618
+ // 在每个 frame 中执行元素采集(各 frame 内部 offset 为 0)
619
+ const frameElements = await this.cdpEvalInFrame(cdp, frame.contextId, (0, dom_capture_1.getCollectScript)());
620
+ const parsed = JSON.parse(frameElements);
621
+ // 对子 frame 的元素应用偏移量
622
+ for (const el of parsed) {
623
+ el.bbox.x += frame.x;
624
+ el.bbox.y += frame.y;
625
+ el.index = elements.length;
626
+ elements.push(el);
627
+ }
628
+ }
629
+ catch (_) { /* frame 可能已失效 */ }
630
+ }
631
+ }
632
+ catch (e) {
633
+ // 回退到仅主 frame 采集
634
+ html = await this.cdpEval(cdp, 'document.documentElement.outerHTML');
635
+ const elementsJson = await this.cdpEval(cdp, (0, dom_capture_1.getCollectScript)());
636
+ elements = JSON.parse(elementsJson);
637
+ }
638
+ fs.writeFileSync(path.join(this.stepsDir, htmlPath), html);
454
639
  fs.writeFileSync(path.join(this.stepsDir, elementsPath), JSON.stringify(elements, null, 2));
455
- // ④ SoM 标注截图(CDP Canvas 合成)
640
+ // ④ SoM 标注截图(CDP Canvas 合成,传入精确的视口尺寸避免 window.innerWidth 不准)
456
641
  const somPath = `${prefix}_som.png`;
457
- const somScript = (0, som_annotator_1.getSoMRenderScript)(screenshotResult, elements);
642
+ const somScript = (0, som_annotator_1.getSoMRenderScript)(screenshotResult.data, elements, screenshotResult.width, screenshotResult.height);
458
643
  const somBase64 = await this.cdpEval(cdp, somScript);
459
644
  const somBuffer = Buffer.from(somBase64, 'base64');
460
645
  fs.writeFileSync(path.join(this.stepsDir, somPath), somBuffer);
461
- // ⑤ 对话采集(有新消息时才保存)
646
+ // ⑤ 对话采集(内容变化时才保存,基于内容哈希去重)
462
647
  let conversationField;
463
648
  try {
464
649
  const convJson = await this.cdpEval(cdp, (0, conversation_capture_1.getConversationScript)(this.chatSelector));
465
650
  const convData = JSON.parse(convJson);
466
- if (convData.messageCount > 0 && convData.messageCount !== this.lastMessageCount) {
467
- const convPath = `${prefix}_conversation.json`;
468
- fs.writeFileSync(path.join(this.stepsDir, convPath), JSON.stringify(convData, null, 2));
469
- conversationField = { messages: convPath };
470
- this.lastMessageCount = convData.messageCount;
651
+ if (convData.messageCount > 0) {
652
+ // 基于消息内容生成哈希,而非仅靠 messageCount 判断
653
+ // 避免 DOM 抖动导致同样内容被重复保存
654
+ const contentKey = convData.messages
655
+ .map((m) => `${m.role}:${m.content}`)
656
+ .join('\n');
657
+ const contentHash = crypto.createHash('md5').update(contentKey).digest('hex');
658
+ if (contentHash !== this.lastConversationHash) {
659
+ const convPath = `${prefix}_conversation.json`;
660
+ fs.writeFileSync(path.join(this.stepsDir, convPath), JSON.stringify(convData, null, 2));
661
+ conversationField = { messages: convPath };
662
+ this.lastConversationHash = contentHash;
663
+ }
471
664
  }
472
665
  }
473
666
  catch (_) {
@@ -1 +1 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,22 @@ function getConversationScript(chatSelector) {
67
67
  // ========== 精确模式:用户指定 selector ==========
68
68
 
69
69
  function collectBySelector(selector) {
70
- const container = document.querySelector(selector);
70
+ // 在主文档和同源 iframe 中查找
71
+ let container = document.querySelector(selector);
72
+ if (!container) {
73
+ try {
74
+ const iframes = document.querySelectorAll('iframe');
75
+ for (const iframe of iframes) {
76
+ try {
77
+ const iframeDoc = iframe.contentDocument;
78
+ if (iframeDoc) {
79
+ container = iframeDoc.querySelector(selector);
80
+ if (container) break;
81
+ }
82
+ } catch(e) { /* cross-origin */ }
83
+ }
84
+ } catch(_) {}
85
+ }
71
86
  if (!container) return [];
72
87
  // 在容器内查找消息元素(常见子元素模式)
73
88
  const msgSelectors = [
@@ -87,9 +102,25 @@ function getConversationScript(chatSelector) {
87
102
  });
88
103
  }
89
104
 
105
+ // ========== 获取所有可搜索的 document(主文档 + 同源 iframe) ==========
106
+
107
+ function getAllDocuments() {
108
+ const docs = [document];
109
+ try {
110
+ document.querySelectorAll('iframe').forEach(iframe => {
111
+ try {
112
+ const iframeDoc = iframe.contentDocument;
113
+ if (iframeDoc) docs.push(iframeDoc);
114
+ } catch(e) { /* cross-origin */ }
115
+ });
116
+ } catch(_) {}
117
+ return docs;
118
+ }
119
+
90
120
  // ========== 启发式模式:自动检测 ==========
91
121
 
92
122
  function collectHeuristic() {
123
+ const docs = getAllDocuments();
93
124
  // 1. 先尝试常见客服系统的容器选择器
94
125
  const containerCandidates = [
95
126
  // 通用模式
@@ -102,24 +133,39 @@ function getConversationScript(chatSelector) {
102
133
  '[role="log"]', '[aria-label*="chat"]', '[aria-label*="conversation"]',
103
134
  '[aria-label*="对话"]', '[aria-label*="聊天"]',
104
135
  ];
105
- for (const sel of containerCandidates) {
106
- try {
107
- const container = document.querySelector(sel);
108
- if (!container) continue;
109
- const msgs = collectBySelector(sel);
110
- if (msgs.length >= 2) return msgs;
111
- } catch (_) {}
136
+ for (const doc of docs) {
137
+ for (const sel of containerCandidates) {
138
+ try {
139
+ const container = doc.querySelector(sel);
140
+ if (!container) continue;
141
+ // 在该 document 内查找
142
+ const msgSelectors = [
143
+ '[class*="message"]', '[class*="msg"]', '[class*="bubble"]',
144
+ '[class*="chat-item"]', '[class*="dialog"]', '[class*="utterance"]',
145
+ '[data-role]', '[data-type]', '[data-sender]',
146
+ ].join(', ');
147
+ let msgEls = Array.from(container.querySelectorAll(msgSelectors));
148
+ if (msgEls.length === 0) msgEls = Array.from(container.children);
149
+ const filtered = msgEls.filter(el => {
150
+ const rect = el.getBoundingClientRect();
151
+ return rect.height > 5 && getVisibleText(el).length > 0;
152
+ });
153
+ if (filtered.length >= 2) return filtered;
154
+ } catch (_) {}
155
+ }
112
156
  }
113
157
 
114
- // 2. 查找页面中包含最多 "message" 类子元素的容器
115
- const allMsgLike = document.querySelectorAll(
116
- '[class*="message"], [class*="msg"], [class*="bubble"], [class*="utterance"]'
117
- );
118
- if (allMsgLike.length >= 2) {
119
- return Array.from(allMsgLike).filter(el => {
120
- const rect = el.getBoundingClientRect();
121
- return rect.height > 5 && getVisibleText(el).length > 0;
122
- });
158
+ // 2. 查找所有 document 中包含 "message" 类子元素的容器
159
+ for (const doc of docs) {
160
+ const allMsgLike = doc.querySelectorAll(
161
+ '[class*="message"], [class*="msg"], [class*="bubble"], [class*="utterance"]'
162
+ );
163
+ if (allMsgLike.length >= 2) {
164
+ return Array.from(allMsgLike).filter(el => {
165
+ const rect = el.getBoundingClientRect();
166
+ return rect.height > 5 && getVisibleText(el).length > 0;
167
+ });
168
+ }
123
169
  }
124
170
 
125
171
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-capture.js","sourceRoot":"","sources":["../../src/conversation-capture.ts"],"names":[],"mappings":";;AAWA,sDA8HC;AAGD,kDAQC;AAlJD;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,YAAqB;IACzD,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO;yBACgB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0HjC,CAAC;AACN,CAAC;AAED,+CAA+C;AACxC,KAAK,UAAU,mBAAmB,CACvC,IAAoC,EACpC,YAAqB;IAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,MAAM,GAAY,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,OAAO,MAA2D,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"conversation-capture.js","sourceRoot":"","sources":["../../src/conversation-capture.ts"],"names":[],"mappings":";;AAWA,sDA4KC;AAGD,kDAQC;AAhMD;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,YAAqB;IACzD,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3E,OAAO;yBACgB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwKjC,CAAC;AACN,CAAC;AAED,+CAA+C;AACxC,KAAK,UAAU,mBAAmB,CACvC,IAAoC,EACpC,YAAqB;IAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,MAAM,GAAY,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,OAAO,MAA2D,CAAC;AACrE,CAAC"}
@@ -10,7 +10,11 @@ const INTERACTIVE_SELECTORS = [
10
10
  '[tabindex]:not([tabindex="-1"])',
11
11
  '[onclick]', '[contenteditable="true"]',
12
12
  ].join(', ');
13
- /** 采集脚本(纯字符串,可通过 CDP Runtime.evaluate 执行) */
13
+ /**
14
+ * 采集脚本(纯字符串,可通过 CDP Runtime.evaluate 执行)
15
+ * 注意:不包含 iframe 递归,因为 collector.ts 通过 CDP frame context 逐帧执行本脚本,
16
+ * 由调用方在合并时处理 iframe 偏移,避免重复采集。
17
+ */
14
18
  const COLLECT_SCRIPT = `(() => {
15
19
  const selector = ${JSON.stringify(INTERACTIVE_SELECTORS)};
16
20
  const ATTR_WHITELIST = ['id','class','name','type','placeholder','aria-label','role','href','value','title','alt'];
@@ -49,15 +53,17 @@ async function collectInteractiveElements(page) {
49
53
  'id', 'class', 'name', 'type', 'placeholder', 'aria-label',
50
54
  'role', 'href', 'value', 'title', 'alt',
51
55
  ];
52
- function collect(root, results) {
56
+ function collect(root, results, offsetX, offsetY) {
53
57
  const elements = root.querySelectorAll(selector);
54
58
  elements.forEach((el) => {
55
59
  const rect = el.getBoundingClientRect();
56
60
  if (rect.width < 2 || rect.height < 2)
57
61
  return;
58
- if (rect.bottom < 0 || rect.top > window.innerHeight)
62
+ const absX = rect.x + offsetX;
63
+ const absY = rect.y + offsetY;
64
+ if (absY + rect.height < 0 || absY > window.innerHeight)
59
65
  return;
60
- if (rect.right < 0 || rect.left > window.innerWidth)
66
+ if (absX + rect.width < 0 || absX > window.innerWidth)
61
67
  return;
62
68
  const attrs = {};
63
69
  for (const a of Array.from(el.attributes)) {
@@ -71,8 +77,8 @@ async function collectInteractiveElements(page) {
71
77
  role: el.getAttribute('role') || undefined,
72
78
  text: (el.textContent || '').trim().substring(0, 200),
73
79
  bbox: {
74
- x: Math.round(rect.x),
75
- y: Math.round(rect.y),
80
+ x: Math.round(absX),
81
+ y: Math.round(absY),
76
82
  width: Math.round(rect.width),
77
83
  height: Math.round(rect.height),
78
84
  },
@@ -81,11 +87,23 @@ async function collectInteractiveElements(page) {
81
87
  });
82
88
  root.querySelectorAll('*').forEach((el) => {
83
89
  if (el.shadowRoot)
84
- collect(el.shadowRoot, results);
90
+ collect(el.shadowRoot, results, offsetX, offsetY);
91
+ });
92
+ // 递归采集同源 iframe 内的可交互元素
93
+ const queryRoot = ('querySelectorAll' in root && root instanceof Element) ? root : document;
94
+ queryRoot.querySelectorAll('iframe').forEach((iframe) => {
95
+ try {
96
+ const iframeDoc = iframe.contentDocument;
97
+ if (iframeDoc) {
98
+ const iframeRect = iframe.getBoundingClientRect();
99
+ collect(iframeDoc.documentElement, results, offsetX + iframeRect.x, offsetY + iframeRect.y);
100
+ }
101
+ }
102
+ catch (e) { /* cross-origin iframe, skip */ }
85
103
  });
86
104
  }
87
105
  const results = [];
88
- collect(document.documentElement, results);
106
+ collect(document.documentElement, results, 0, 0);
89
107
  return results;
90
108
  }, INTERACTIVE_SELECTORS);
91
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dom-capture.js","sourceRoot":"","sources":["../../src/dom-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-capture.js","sourceRoot":"","sources":["../../src/dom-capture.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
1
  import { Page } from 'playwright-core';
2
2
  import { SoMElement } from './types';
3
- /** 生成 SoM 渲染脚本(纯字符串,可通过 CDP Runtime.evaluate 执行) */
4
- export declare function getSoMRenderScript(imgBase64: string, elements: SoMElement[]): string;
3
+ /**
4
+ * 生成 SoM 渲染脚本(纯字符串,可通过 CDP Runtime.evaluate 执行)
5
+ *
6
+ * @param imgBase64 - 截图的 base64 数据
7
+ * @param elements - 可交互元素列表(bbox 为 CSS 像素坐标)
8
+ * @param viewportWidth - 截图时的 CSS 视口宽度(可选,传入可避免 window.innerWidth 不准)
9
+ * @param viewportHeight - 截图时的 CSS 视口高度(可选)
10
+ */
11
+ export declare function getSoMRenderScript(imgBase64: string, elements: SoMElement[], viewportWidth?: number, viewportHeight?: number): string;
5
12
  /**
6
13
  * 通过 page.evaluate 生成 SoM 截图(用于测试等非 codegen 场景)
7
14
  */
@@ -8,11 +8,20 @@ const COLORS = [
8
8
  '#469990', '#DCBEFF', '#9A6324', '#FFFAC8', '#800000',
9
9
  '#AAFFC3', '#808000', '#FFD8B1', '#000075', '#A9A9A9',
10
10
  ];
11
- /** 生成 SoM 渲染脚本(纯字符串,可通过 CDP Runtime.evaluate 执行) */
12
- function getSoMRenderScript(imgBase64, elements) {
11
+ /**
12
+ * 生成 SoM 渲染脚本(纯字符串,可通过 CDP Runtime.evaluate 执行)
13
+ *
14
+ * @param imgBase64 - 截图的 base64 数据
15
+ * @param elements - 可交互元素列表(bbox 为 CSS 像素坐标)
16
+ * @param viewportWidth - 截图时的 CSS 视口宽度(可选,传入可避免 window.innerWidth 不准)
17
+ * @param viewportHeight - 截图时的 CSS 视口高度(可选)
18
+ */
19
+ function getSoMRenderScript(imgBase64, elements, viewportWidth = 0, viewportHeight = 0) {
13
20
  return `new Promise((resolve, reject) => {
14
21
  const colors = ${JSON.stringify(COLORS)};
15
22
  const elems = ${JSON.stringify(elements)};
23
+ const vpW = ${viewportWidth};
24
+ const vpH = ${viewportHeight};
16
25
  const img = new Image();
17
26
  img.onload = () => {
18
27
  const canvas = document.createElement('canvas');
@@ -22,9 +31,9 @@ function getSoMRenderScript(imgBase64, elements) {
22
31
  if (!ctx) { reject('no canvas context'); return; }
23
32
  ctx.drawImage(img, 0, 0);
24
33
  // 计算缩放比:截图实际像素 / CSS视口像素
25
- // 无论截图是 1x 还是 2x,都能正确对齐
26
- const scaleX = img.width / window.innerWidth;
27
- const scaleY = img.height / window.innerHeight;
34
+ // vpW > 0 时使用调用方传入的精确值,否则回退到 window.innerWidth
35
+ const scaleX = vpW > 0 ? (img.width / vpW) : (img.width / window.innerWidth);
36
+ const scaleY = vpH > 0 ? (img.height / vpH) : (img.height / window.innerHeight);
28
37
  elems.forEach(el => {
29
38
  const color = colors[el.index % colors.length];
30
39
  const sx = el.bbox.x * scaleX;
@@ -1 +1 @@
1
- {"version":3,"file":"som-annotator.js","sourceRoot":"","sources":["../../src/som-annotator.ts"],"names":[],"mappings":";;AAWA,gDA2CC;AAKD,kDAsDC;AA9GD,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IACrD,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IACrD,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;IACrD,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;CACtD,CAAC;AAEF,oDAAoD;AACpD,SAAgB,kBAAkB,CAAC,SAAiB,EAAE,QAAsB;IAC1E,OAAO;qBACY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAsCL,SAAS;KAC3C,CAAC;AACN,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,IAAU,EACV,eAAuB,EACvB,QAAsB;IAEtB,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAW,MAAM,IAAI,CAAC,QAAQ,CAC3C,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAgE,EAAE,EAAE;QACnG,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;gBAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAChD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzB,yBAAyB;gBACzB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oBACnB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;oBAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;oBAC9B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;oBAClC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACnC,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;oBAC7B,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC7B,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;oBACxB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;oBAClB,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;oBAC3C,GAAG,CAAC,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;oBAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;oBACnD,MAAM,MAAM,GAAG,EAAE,CAAC;oBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;oBAC7C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;oBACtB,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;oBAClE,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;oBACxB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;oBACzB,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACpE,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;YACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;YACpE,GAAG,CAAC,GAAG,GAAG,wBAAwB,GAAG,SAAS,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,EACD,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAC5D,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"som-annotator.js","sourceRoot":"","sources":["../../src/som-annotator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "benchmark-collector",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "description": "Playwright-based benchmark data collector for web agent training",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",