我在 WSL 里控制 Windows Chrome 的一次实战复盘(OpenClaw)

我在 WSL 里控制 Windows Chrome 的一次实战复盘(OpenClaw)

最近在做一套「WSL 环境下的浏览器自动化」实验,目标很明确: 在 WSL 中运行 OpenClaw ,去控制 Windows 主机上的 Chrome,并完成一次可复现的小任务。

这篇文章只记录我自己从失败到跑通的过程,命令、排错、结果都给出来,方便你按步骤复现。


一、实战目标

这次我用一个很具体的验收标准:

  1. 从 WSL 发起浏览器控制
  2. 在 Windows Chrome 打开 B 站搜索页
  3. 搜索 openclaw
  4. 提取前 10 条视频标题

二、环境说明

我的环境如下(供参考,不要求完全一致):

  • Windows 11(已安装 Chrome)
  • WSL2(Ubuntu)
  • OpenClaw CLI(可正常执行)
  • OpenClaw Gateway 已运行

先确认网关状态:

bash 复制代码
openclaw gateway status

看到 Runtime: running 再继续。


三、核心思路:用 Chrome Relay 连接 Windows Chrome

一开始我尝试过在 WSL 里直接起浏览器,结果很容易遇到 No supported browser found

后面换成 chrome-relay 方案后,链路稳定很多:

1)在 WSL 安装 Relay 扩展文件

bash 复制代码
openclaw browser extension install
openclaw browser extension path

2)在 Windows Chrome 加载扩展

打开 chrome://extensions → 开启开发者模式 → 加载已解压扩展。

路径一般类似:

text 复制代码
\\wsl$\Ubuntu\home\<你的用户名>\.openclaw\browser\chrome-extension

3)在扩展配置里填网关信息

  • 网关地址:ws://127.0.0.1:18789(按实际端口)
  • Token:你自己的 Gateway token

注意:token 是敏感信息,不要写进公开文章或截图里。


四、先做连通性验证

bash 复制代码
openclaw browser tabs --browser-profile chrome-relay --json

只要返回了非空 tabs,说明 WSL 与 Windows Chrome 的控制链路已打通。


五、执行任务:打开搜索页并抓前 10 条标题

1)打开 B 站搜索页

bash 复制代码
openclaw browser open "https://search.bilibili.com/all?keyword=openclaw" --browser-profile chrome-relay --json

2)提取标题

bash 复制代码
openclaw browser evaluate \
  --browser-profile chrome-relay \
  --fn '() => {
    const sels = [
      "h3.bili-video-card__info--tit",
      ".bili-video-card__info--tit",
      "a.title",
      "h3"
    ];

    let out = [];
    for (const s of sels) {
      const arr = [...document.querySelectorAll(s)]
        .map(e => e.textContent?.trim())
        .filter(Boolean);
      if (arr.length) {
        out = arr;
        break;
      }
    }

    const uniq = [...new Set(out.map(t => t.replace(/\s+/g, " ").trim()))]
      .filter(Boolean);

    return uniq.slice(0, 10);
  }' \
  --json

执行后会返回一个字符串数组,即前 10 条标题。


六、我踩过的 3 个坑(以及处理方式)

坑 1:No supported browser found

原因 :在 WSL 里走了本地浏览器启动路径。
处理 :改用 chrome-relay,控制 Windows 里的 Chrome。

坑 2:gateway timeout after 20000ms

原因 :网关连接瞬时抖动或页面切换太快。
处理

  1. tabs 确认页面存在
  2. 再执行 open / evaluate
  3. 必要时 openclaw gateway restart

坑 3:tab not found

原因 :目标页刷新或 targetId 变化。
处理 :重新获取 tabs 后再操作,不要复用旧 targetId。


七、复现检查清单

  • openclaw gateway status 显示 running
  • Chrome Relay 扩展已连接
  • tabs --browser-profile chrome-relay 返回非空
  • 能打开 B 站搜索页
  • 能提取前 10 条视频标题

以上都满足,说明这套流程已经跑通。


八、结论

对于「WSL 控制 Windows Chrome」这个场景,chrome-relay 是目前我测试下来最容易复现的一条路径。

如果你也在做跨环境自动化,这套方式值得优先试。

如果你希望,我下一篇可以补:

  • 带截图的完整操作版
  • 自动重试脚本版(减少 tab 抖动影响)
  • 面向新手的一键排错流程图
相关推荐
想不到一个好的ID2 小时前
Claude Code 初学者必看指南
前端·后端
一枚菜鸟_2 小时前
04-Flutter状态管理终极指南-Riverpod3.x从入门到精通
前端
一枚菜鸟_2 小时前
06-Flutter动画从零到炫酷-让你的App动起来
前端
Wect2 小时前
React Hooks 核心原理
前端·算法·typescript
shughui2 小时前
Fiddler下载、安装、使用、汉化,详细图文教程(2026附安装包)
前端·测试工具·fiddler
阿帕琪尔2 小时前
😎vite插件: 自动打包压缩图片和转webp(二)
前端·vite
思慕很大很大2 小时前
浏览器基础知识-进程与线程
前端·浏览器
猩猩程序员2 小时前
dial9:一个强悍的 Tokio 调试工具!!!
前端
gyx_这个杀手不太冷静2 小时前
OpenCode 深度解析:架构设计、工具链集成与工程化实践
前端·架构·ai编程