乐于分享
好东西不私藏

OpenClaw控制浏览器的几种方式

OpenClaw控制浏览器的几种方式

在配置浏览器前需要确保OpenClaw已安装并且已正确设置大模型。

OpenClaw目前支持的浏览器有Chrome/Brave/Edge/Chromium。下面我们以Google Chrome浏览器为例。

打开终端窗口输入命令查看浏览器的状态:

openclaw browser --browser-profile openclaw status

如果之前没有安装过支持的浏览器,这时的“detectedBrowser”为“unknown“,而“enabled”为“true

”是因为OpenClaw默认是启用browser工具的:

安装Google Chrome浏览器:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i google-chrome-stable_current_amd64.deb

#如果安装提示依赖失败执行下面命令

sudo apt --fix-broken install -y

使用which命令查看Chrome的安装目录:

which google-chrome

这时再次查看OpenClaw的浏览器配置状态,OpenClaw会自动检测到可用的浏览器,可以看到detectedBrowser和detectedPath已经设置为安装的Chrome浏览器:

openclaw browser --browser-profile openclaw status

这时已经可以在OpenClaw使用浏览器了,但为了理解其原理,我们显示的在配置文件中添加浏览器的配置。

有二种方法,一是使用WEB UI找到【设置】-【配置】-【RAW】,激活编辑输入配置并保存,二是直接修改“~/.openclaw/openclaw.json”文件:

配置项内容如下:

browser: {

    enabled: true,

    remoteCdpTimeoutMs: 1500,

    remoteCdpHandshakeTimeoutMs: 3000,

    color: '#FF4500',

    executablePath: '/usr/bin/google-chrome',

    headless: false,

    noSandbox: true,

    attachOnly: false,

    defaultProfile: 'openclaw',

    ssrfPolicy: {

      dangerouslyAllowPrivateNetwork: true,

    },

    profiles: {

      openclaw: {

        cdpPort: 18800,

        color: '#FF4500',

      },

    },

  },

然后重启网关服务:

openclaw gateway restart

启动浏览器、打开网址以及进行快照识别界面内容:

openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw open https://www.baidu.comopenclaw browser --browser-profile openclaw snapshot

输入open命令后会看到浏览器自动打开指定的网址,输入snapshot快照命令后会识别网站页面内容元素的引用值:

找到搜索输入框和百度一下的按钮:

根据上面的信息找到搜索输入框元素引用号为“e35”和“百度一下”按钮元素引用号为“e62”,这时可以通过输入命令控制浏览器输入搜索内容:

openclaw browser type e35  "中东战事"

输入命令控制浏览器点击“百度一下”进行搜索:

openclaw browser click e62

掌握基本使用后,就可以编排任务控制浏览器自动工作,例如定时执行结果与分析,还可以要求通过飞书等通道发送结果给你:

  openclaw cron add "day news" --expression "*/06 * * * *" --command "

  openclaw browser open --url 'https://www.baidu.com' --profile 'openclaw';

  openclaw browser type e35 '中东战事';

  openclaw browser click e62;

  openclaw browser close --profile 'openclaw'

"

你也可以在OpenClaw的WEBUI中的聊天窗口或消息通道工具用自然语言控制浏览器,记得在使用前创建新的会话:/new。

如果在控制浏览器过程需要登录或者要求已是登录状态,那么要如何操作呢?OpenClaw控制浏览器有四种方式,下面分别介绍这些模式,同时也会介绍如何解决需要保持登录信息的场景:

  1. 自管理模式。
  2. 扩展中继模式。
  3. 远程CDP模式。
  4. 云托管模式。

自管理模式

上面的例子使用的就是自管理模式,在浏览器配置项的profiles添加了“openclaw”,同时在启动浏览器时显示使用了profile=openclaw:

自管理的意思是不使用当前浏览器的session、cookie和配置项,而是创建一套新的由OpenClaw管理的配置,避免影响到现有浏览器的形为。因此,如果你通过桌面或系统菜单打开的浏览器并登录网站,OpenClaw是无法获取登录信息的;这时可以使用一个小技巧,就是在由OpenClaw打开的浏览器进行网站登录,登录信息会保存在OpenClaw维护的配置文件中。

还有就是在执行命令时,浏览器会随着输入命令的执行而自动变化,对于没有可视界面的服务器系统是无法看到浏览器的,这时需要将“headless”设置为“true”以启用无头模式(无界面),有界面模式方便我们对要执行的工作进行验证和调试,可以实时所见即所得,没问题后再配置成无头模式给定时任务自动执行。

会话接管模式

会话接管模式适合浏览器与OpenClaw在同一台电脑且需要使用现有浏览器配置信息的场景,即直接使用由用户打开的浏览器配置信息:session、cookie等,需要用户自行打开浏览器。则可以使用 Chrome DevTools MCP 接管一个已经打开的浏览器实例,让编码代理能够直接连接到活跃的浏览器会话。

 启用Chrome 的远程调试连接,打开浏览器然后在地址栏输入:

chrome://inspect#remote-debugging

#其它浏览器的配置命令

Brave浏览器: brave://inspect/#remote-debugging

Edge浏览器: edge://inspect/#remote-debugging

勾选“Allow remote debugging for this browser instance”:

修改openclaw.json文件,在browser节点加入user节点配置:

user: {

        driver: 'existing-session',

        attachOnly: true,

        color: '#00AA00',

  },

保存后重启网关服务:

openclaw gateway restart

输入查看profile=user的浏览器状态命令,这时会提示“要允许远程调试吗”,点击【允许】:

openclaw browser --browser-profile user status

这时浏览器显示正在受到自动测试软件的控制:

这时输出命令让打开指定的网站,要注意的是--browser-profile也要使用“user”,否则会使用defaultProfile指定的“openclaw”:

openclaw browser --browser-profile user open https://www.baidu.com

如果你的网站之前登录过并保持了自动登录功能,这时OpenClaw控制打开的浏览器就可以获取到当前的登录信息。

远程CDP模式

远程CDP模式适合浏览器与OpenClaw不在同一台电脑的场景,例如OpenClaw运行在主机电脑的WSL虚拟机中,然后使用主机电脑的浏览器。

首先在主机电脑安装Google Chrome浏览器,在PowerShell窗口中找到Chrome的安装目录,通常位于“C:\Program Files\Google\Chrome\Application>”:

cd 'C:\Program Files\Google\Chrome\Application'

输入命令开启远程调试,进入:

 .\chrome.exe --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 --user-data-dir="C:\\ChromeDebug"

验证主机电脑本地连接下是正确,输入:

curl http://127.0.0.1:9222/json/version

curl http://127.0.0.1:9222/json/list

按提示输入“A”并回车,如果输出“StatusCode”的值为“OK“说明连接正确:

主机电脑设置开放9222端口,在系统桌面右下角打开防火墙,点击【高级设置】:

在左侧找到“入站规则”,右键后找到【新建规则】并点击:

规则类型选择“端口”:

选择“TCP”并在“特定本地端口”输入“9222”,点击【下一页】:

选择“允许连接”,点击【下一页】:

全部勾选,点击【下一页】:

规则名称输入“Chrome Remote Debugging”,点击【完成】:

以管理员身份打开PowerShell,添加端口转发规则:

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=9222 connectaddress=127.0.0.1 connectport=9222

#查看所有的转发规则

netsh interface portproxy show all

在安装OpenClaw的远程电脑测试,将下面IP地址换成你的实际IP,输出结果就与验证本地结果是一致的:

curl http://192.168.50.61:9222/json/version

curl http://192.168.50.61:9222/json/list

修改“~/.openclaw/openclaw.json”文件,在浏览器配置中加入名为“remote“的profile:

remote: {

      cdpUrl: "http://192.168.50.61:9222",

      attachOnly: true,

      color: "#00AA00",

},

其中的IP要换成你的实际IP:

保存后重启网关服务:

openclaw gateway restart

输入查看profile=remote的浏览器状态命令,这时会提示“要允许远程调试吗”,点击【允许】:

openclaw browser --browser-profile remote status

这时输出命令让打开指定的网站,要注意的是--browser-profile也要使用“remote”,否则会使用defaultProfile指定的“openclaw”:

openclaw browser --browser-profile remote open https://www.baidu.com

云托管模式

对于不想在本地安装浏览器或使用主机浏览器的,可以使用云端商家提示的浏览组件服务,配置也很简单,在浏览器配置项中加入profile为“browserless”或“browserbase”,其中的API KEY需要换成云商家提供的对应KEY:

browserless: {      cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",      color: "#00AA00",

},

或:

browserbase: {      cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>",      color: "#F97316",},

然后在启动浏览器服务的时候指定相应的profile:

openclaw browser --browser-profile <profileName> status

openclaw browser --browser-profile <profileName> open https://www.baidu.com

至此,OpenClaw控制浏览器的几种方式就分享完了。

云算力又涨价,vmware让一台电脑变多台且实现与主机物理隔离(Linux篇)

Tavily搜索已获OpenClaw官方支持,给龙虾加上实时搜索能力

OpenClaw已打通个人微信,安装就是这么简单

云算力又涨价,vmware让一台电脑变多台且实现与主机物理隔离(Windows篇)

Token免费不限量,OpenClaw配置本地模型(Windows篇)

字节飞书帮你养虾,小白也能快速养成

超详细的OpenClaw龙虾使用飞书通道

超详细的Windows安装OpenClaw龙虾

后期与大家分享更多有价值的内容,可关注收藏👇