用 Claude Code 测试网页时,先用独立的 Chrome 配置文件连接 Claude in Chrome,保留人工审核,然后给出一个明确的网址。首次运行只让它读页面,碰到提交、下载或跳转到别的主机时先停下。团队需要统一强制限制时,Anthropic 文档提供了 Team 和 Enterprise 的组织级网站允许名单和阻止名单。
先确认连接方式。Claude Code 自带的 --chrome 通过 Claude in Chrome 扩展连接。单独安装的 Playwright MCP 有自己的浏览器进程、上下文和请求规则。改一边的设置,另一边仍按自己的规则执行。
开始前分清三层权限
| 权限层 | 决定什么 | 去哪里查 |
|---|---|---|
| Chrome 扩展的网站访问权限 | 扩展能在哪些页面用浏览器授予的主机权限操作 | 当前配置文件中的 Chrome 扩展详情 |
| Claude in Chrome 的网站和动作审批 | Claude 能否在当前模式及组织策略下操作指定网站 | Claude 侧栏、动作提示和扩展设置 |
| Claude Code 工具调用权限 | 当前 Claude Code 会话能否调用该工具 | Claude Code 的权限提示与会话设置 |
浏览器能打开页面,扩展仍可能读不到。同样,读标题成功也不能说明下一次点击符合预期。按钮上可能只写着“继续”,点击后却立即发出请求。审核时看动作的实际后果。Claude Code 也可能另外启用终端或 HTTP 工具,分别检查它们的设置。浏览器限制覆盖的是你验证过的浏览器路径。
Claude in Chrome 权限指南区分单次授权和持续的网站授权。经典侧栏和 Cowork 的界面不同。经典侧栏可以先核对计划列出的网站和步骤。逐次审核模式则针对当前动作决定是否允许。持续授权让多个符合条件的动作可以在该站点执行。下载、输入可能敏感的内容及授予授权等受保护动作仍可能要求明确确认,产品规则还会禁止某些动作。
做一次只读的单站点测试
新建 Chrome 测试配置文件,别带入个人标签页、生产环境登录状态或密码管理器。只有页面确实要求登录时才用测试账号。
在 Claude Code 用
claude --chrome或/chrome连接。检查连接对话框,并在同一个配置文件确认扩展状态。Claude Code 浏览器文档列出了入口和前置条件。明确完整网址及禁止访问的次级站点。测试环境、身份认证和支付可能由不同主机提供,页面上出现链接不代表它们在授权范围内。
只批准完成验证所需的动作。冒烟测试可以读页面标题和可见控件。测试表单时,可让 Claude 预览虚拟字段值,在发送前停住。
记录两个结果。先证明目标页可读,再试一个无副作用的范围外网址,拒绝提示或验证组织规则已阻止它。如果越界动作仍然能执行,停止测试并查权限层。
可直接用公开的 Selenium 测试表单:
只读取 https://www.selenium.dev/selenium/web/web-form.html。
告诉我页面标题和提交按钮上的文字。
不要输入、点击、提交、下载或打开其他网址。
如果网站或动作需要额外权限,请停下并告诉我。这次任务可以用肉眼对照。若确实要验证提交,另开一次运行,使用允许产生副作用的测试端点,并准备好查询对应记录的方法。
两个隔离实验里的拒绝结果
第一个实验在独立的 Chrome for Testing 配置文件中加载了一个本地测试扩展。它声明 Selenium 主机权限,调用浏览器脚本 API 读取公开 Web form 的标题。我们在 Chrome 扩展详情里更改网站访问设置后,Selenium 主机旁的开关显示为关闭。表单仍在浏览器中可见,但扩展再次读取时超时,因此这里仅验证了可见设置。这一实验用自建扩展验证 Chrome 层,Claude 扩展的审批界面以 Anthropic 的文档为准。

第二个实验用 Playwright MCP 0.0.84,在无头隔离环境中发出同样的 browser_navigate:
| 测试 | 结果 |
|---|---|
| 允许 Selenium 来源后访问 Web form | 页面打开,读到标题“Web form” |
| 在同一会话访问 example.com | ERR_BLOCKED_BY_CLIENT |
| 新进程只允许 example.com,再访问 Selenium 表单 | ERR_BLOCKED_BY_CLIENT |
前两步启动命令是 npx -y @playwright/mcp@0.0.84 --headless --isolated --allowed-origins https://www.selenium.dev。第三步先停止进程,再启动一个只允许 https://example.com 的进程。实验没有提交表单。微软 Playwright MCP 文档明确指出该设置不构成安全边界,也不控制重定向。需要强制约束重定向及其他工具时,用网络层限制。Chrome 扩展权限文档解释了第一个实验用到的主机权限。
撤销网站授权后再试一次
打开 Claude 扩展侧栏,在三点菜单里选 Extension settings,从 Your approved sites 移除网站。在同一个配置文件开启新任务,要求做同样的只读动作,检查是否重新弹出提示或阻止访问。如果要彻底断开当前 Claude Code 会话的浏览器能力,在会话里禁用 Chrome 集成,再检查浏览器工具是否可用。需要限制 Chrome 扩展本身时,到 Chrome 扩展详情单独处理。
提示反复出现时,先核对主机名和已批准列表。一位 Reddit 用户报告,在 Facebook Marketplace 和 Sheets 之间切换时,即使 Chrome 给了广泛的扩展访问权限,Claude 还是反复询问。另一个 Claude Code issue记录了特定版本里持续授权未出现在已批准列表的情况。这些是用户报告,应以你当前配置文件和版本的实际表现为准。
需要设置另一条连接路径,参见 Claude Code 安装 Playwright MCP。需要做更完整的风险排查,可以查看 Agent 浏览器安全风险。也可以下载 Tabbit,在独立配置文件用同一个公开只读任务对照审批流程。
想确认哪些状态需要隔离,可先看浏览器配置文件、工作区与标签组。任务确实需要已登录的页面时,再看连接已有浏览器。网页搜索与浏览器控制解释为何搜索与浏览器操作的权限不同。Agent 浏览器工作原理介绍动作循环,Playwright 浏览器自动化介绍单独的测试工具。
常见问题
可以让 Claude 只访问一个测试网站吗?
使用独立测试配置文件,审核计划中的完整网址,拒绝访问新网站。需要组织级强制限制时,由受支持的 Team 或 Enterprise 管理员设置允许名单。
给网站授权就等于允许提交表单吗?
网站授权允许 Claude 在当前模式下访问该站点。部分敏感动作有额外保护。普通表单提交也应在测试里单独约定和审核。
在哪里撤销 Claude 已保存的网站授权?
打开 Claude 扩展侧栏,点右上角三点菜单,进入 Extension settings,在 Your approved sites 里移除对应网站。
为什么网站授权后还是反复询问?
检查当前连接的浏览器配置文件、提示里的主机名、已批准网站列表和组织规则。相似域名或不同子域名不一定属于同一授权。
Playwright MCP 的 allowed-origins 是安全边界吗?
微软将其定位为请求过滤,明确说明它不约束重定向。强制隔离需要独立浏览器配合网络控制。