You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Big Sur下NodeJS配合Selenium调用Brave浏览器报错如何解决?

问题排查与解决方案

核心问题原因

  • Selenium 官方内置的 forBrowser() 方法仅支持 chrome、firefox、safari、edge 等通用浏览器标识,未内置 Brave 浏览器的适配逻辑,直接传入 brave、chromium 标识都会触发驱动构建失败的报错。
  • 传入 chrome 标识后浏览器停留在 data:, 空白页,是因为 ChromeDriver 默认会查找系统安装的 Chrome 浏览器可执行文件,未指定 Brave 路径的情况下无法正确关联到 Brave 程序。

修复方案

修改你的 index.js 代码,通过 ChromeOptions 手动指定 Brave 浏览器的可执行文件路径即可,MacOS 下 Brave 的默认安装路径为 /Applications/Brave Browser.app/Contents/MacOS/Brave Browser,修改后代码如下:

const { Builder, By, Key, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

(async function example() {
  // 配置Chrome选项,指定Brave的可执行文件路径
  let options = new chrome.Options();
  options.setChromeBinaryPath('/Applications/Brave Browser.app/Contents/MacOS/Brave Browser');
  
  // 构建驱动时传入配置好的options
  let driver = await new Builder()
    .forBrowser('chrome')
    .setChromeOptions(options)
    .build();
  try {
    await driver.get('http://www.google.com/');
    await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
    await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
  } finally {
    await driver.quit();
  }
})();

额外注意事项

  • 你当前使用的 ChromeDriver 92 版本和 Brave 内置的 Chromium 92 大版本匹配,无需更换驱动版本。
  • 不需要手动提前启动 chromedriver 进程,Selenium NodeJS 依赖会自动拉起对应驱动,手动启动反而可能出现端口占用冲突。
  • 如果你的 Brave 安装在非默认路径,可在终端执行 mdfind "kMDItemFSName == 'Brave Browser'" 查找对应可执行文件的实际路径,替换代码中的路径即可。

内容的提问来源于stack exchange,提问作者Dycey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:00:02