Show HN:Selector Forge —— 浏览器扩展,利用AI生成弹性的选择器
摘要
Selector Forge 是一款浏览器扩展,利用AI生成并验证可靠的CSS/XPath选择器,用于网页自动化,帮助开发者构建稳健的选择器,适用于测试、数据抓取和页面自动化。
查看缓存全文
缓存时间: 2026/06/22 19:35
Intuned/selector-forge 源代码:https://github.com/Intuned/selector-forge # Selector Forge
在任意页面上选取一个元素,就能获得一个可靠的选择器——由 AI 生成并评判,然后在您看到之前通过真实 DOM 重新验证。
Selector Forge 是一款独立的浏览器扩展(支持 Chrome 和 Firefox,使用 MV3),帮助您直接从正在查看的页面构建健壮的 CSS 或 XPath 选择器。您只需指向目标元素,扩展与 Intuned(https://intuned.io)的选择器后端会完成其余工作——提出候选方案、在真实页面上测试它们,并丢弃任何无法正确解析的选项。这在编写端到端测试、构建爬虫以及自动化任何可能因脆弱选择器而带来后续问题的页面时非常有用。
安装
- Chrome — Chrome 网上应用店 (https://chromewebstore.google.com/detail/selector-forge-ai-selecto/lbendfnlmhdakbeblajoffkfmafbfaha)
- Firefox — Firefox 附加组件 (https://addons.mozilla.org/en-US/firefox/addon/selector-forge/)
工作原理
- 打开任意页面,点击扩展图标。
- 选择一种选择模式,直接在实时页面上选取一个或多个元素。
- 扩展捕获所选内容的紧凑快照(选中的目标、DOM 上下文、初始候选选择器)并发送到后端。
- 后端提出并排序候选选择器;扩展针对真实 DOM 测试每个候选,并将结果反馈回去。
- 此循环重复进行,直到后端确定出最优选择器。
- 弹出窗口仅展示经过重新验证的选择器,每个都配有复制按钮。
浏览器始终是选择器实际匹配内容的唯一真相来源。AI 负责提出和排序,但绝不拥有对正确性的最终决定权。
信任边界
- 扩展持有选择器创建会话状态——这是循环连续性的来源。
- 浏览器是唯一真相来源——每个结果都必须经过重新验证。
- AI 提出并排序选择器,但不证明正确性。
- 对于列表,验证会检查完整的预期集合,因此过度匹配或不足匹配的选择器都会被拒绝。
详见 ARCHITECTURE.md 了解模块地图、消息层、后台/内容脚本/弹出窗口上下文以及认证和 CLI 接口。
选择模式
| 模式 | 您要做的 | 您将获得 |
|---|---|---|
| 单个 | 选取一个元素 | 经过验证的候选选择器,精准匹配该元素——按钮、输入框、链接、标签、一次性目标等。 |
| 列表 | 从重复集合中选取两个示例 | 经过验证的容器选择器,覆盖整个集合,保存前可预览。 |
开发者快速入门
需要 Node 18+ 和 Yarn。
yarn install # 同时运行 `wxt prepare`
yarn dev # 监听 + 在 Chrome 中加载 .output/chrome-mv3 (解压后)
yarn dev:firefox # 同样适用于 Firefox
首次运行 yarn dev 后,在 chrome://extensions(开启开发者模式)中加载解压后的扩展,路径为 .output/chrome-mv3。
命令
| 命令 | 作用 |
|---|---|
yarn dev / yarn dev:firefox | 监听构建,可作为解压扩展加载 |
yarn compile | tsc --noEmit 类型检查 |
yarn test | Vitest — 包含单元测试和真实 Chromium 浏览器项目 |
yarn build / yarn build:firefox | 生产环境扩展打包 |
yarn build:e2e | E2E 版本(携带 <all_urls> 权限——切勿发布) |
yarn e2e | 先 build:e2e,再使用 Playwright 测试打包后的扩展 |
yarn zip / yarn zip:firefox | 生成商店可用的 zip 包 |
yarn icons | 重新生成图标资源 |
yarn ladle | 在 http://localhost:61010 上预览独立弹出组件 |
组件预览(Ladle)
yarn ladle 在隔离环境中提供弹出窗口的 React 组件预览,用于设计和审查——无需重新加载扩展,也无需真实后端。故事文件位于 stories/(*.stories.tsx);Ladle 配置在 .ladle/ 中。弹出窗口依赖于 WXT 注入的 browser 全局变量,因此 .ladle/wxt-globals.ts 安装了一个无操作桩。yarn ladle:build 会在 dist/ladle 下生成静态包。
测试层次
- 单元测试 — 快速的 Vitest 测试(node/happy-dom),用于选择器逻辑、状态转换、存储和确定性回退。
- 浏览器测试 — Vitest 浏览器模式测试,针对真实 DOM 运行选择器生成,并证明每个候选能精确解析到预期元素集合。这是正确性的判定标准。两个层次都通过
yarn test运行。 - 端到端测试 — 使用 Playwright 对打包后的 MV3 扩展进行测试,涵盖真实页面、指针操作流程、弹出窗口、内容脚本和后台服务工作进程。通过
yarn e2e运行。
项目结构
entrypoints/
background.ts 后台服务工作进程——会话状态、代理循环、网络 I/O
content.ts 内容脚本——选择器覆盖层、DOM 访问、选择器测试
popup/ React 弹出窗口——模式控件、结果、复制操作
lib/
agent/ 代理循环控制器(后端轮询)
content/ 选择器覆盖层、元素注册表、DOM 检查
background/ 处理程序、上下文菜单、会话连接、CLI 桥
messaging/ 类型化、方向分区的运行时消息协议
state/ 会话状态、历史、模式、偏好
auth/ 认证客户端 + 令牌处理
graphql/ 工作空间 + 使用查询
config.ts API 基础地址 + 运行时配置
tests/
vitest (unit + browser)
e2e/
playwright against the built extension
ARCHITECTURE.md 模块映射、信任边界、代理循环、接口
基于 WXT (https://wxt.dev) 构建,弹出窗口使用 React。
路线图
- CLI 控制 — 通过 Intuned CLI 驱动扩展:Intuned IDE 支持、本地代理运行端到端测试和自动化任务,以及通过 MCP 暴露功能。(基础连接——
tabs权限和基于 CDP 的会话启动——已就绪。) - 智能选择工具 — 一种
multiple模式,允许在一次操作中选择多个元素,由扩展将它们分组为单个项和列表化集合;此外还有 AI 字段检测功能,可自动为页面建议有用的字段、名称和选择器。 - 深入选择模式 — 选择后的精确细化:沿 XPath/DOM 树导航到实际想要的目标(子 span → 按钮 → 行 → 标签 → 父容器),将列表选择移至父级或子级,或添加必要示例、排除错误元素。
- 自带后端 — 目前扩展依赖 Intuned 进行认证和选择器生成。我们计划提供一个轻量级、可自托管的参考后端,能够替换该接口并完全取代 Intuned——包括一个用于生成和评判可靠选择器的开源代理——让您在自己的基础设施上运行完整循环。更远期计划:选择器/自动化历史、导出为 Playwright 或纯 JavaScript、自动分页检测,以及跨 iframe / Shadow DOM 支持。
贡献
欢迎提交 Issue 和 Pull Request。在提交 PR 前,请运行 yarn compile 和 yarn test。
许可证
MIT © The Metrics Shop, Inc.
相似文章
Selector Forge
Selector Forge 是一个浏览器扩展程序,利用 AI 为开发者生成健壮的选择器。
Show HN: Fortress – 一款隐身Chromium引擎,让你的代理不再被屏蔽
Fortress 是一款隐身Chromium引擎,它在C++层面修改浏览器指纹,帮助爬虫和浏览器代理避免被诸如Cloudflare Turnstile、CreepJS和Sannysoft等机器人检测器检测。它可作为Playwright和Puppeteer的即插即用CDP替代方案。
Show HN:我构建了一款跨浏览器扩展,可控制指纹识别面
Privacy Thing 是一款跨浏览器扩展,通过控制 13 个类别中的 53 个浏览器属性来减少在线指纹识别,现已在 Chrome 和 Firefox 上提供预览版。
Show HN:通过逆向工程将Web应用转化为代理工具
一个基于浏览器的代理,能够逆向工程Web应用API,自动生成代理工具,实现无需修改代码的深度集成。
Launch HN: Intuned (YC S22) – 以代码形式构建并运行可靠的浏览器自动化
Intuned 是一个由 YC 支持的工具,它利用 AI 智能体构建、部署和维护基于 Playwright 的浏览器自动化,处理数据抓取、RPA 和爬虫任务,并内置反检测和身份验证功能。