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

使用golang的github.com/fedesog/webdriver包时Chrome无头模式失效排查

Chrome无头模式启用失败问题排查及修复

问题根源

你代码里直接把Chrome启动参数放在arguments键下,不符合WebDriver协议对Chrome配置项的规范——Chrome的启动参数需要嵌套在goog:chromeOptions(旧版本可用chromeOptions)的args字段中。另外,required参数重复指定相同启动参数完全没必要,反而可能引发配置冲突。

修复后的代码

chromeDriver := webdriver.NewChromeDriver("./chromedriver")
err := chromeDriver.Start()
if err != nil {
    log.Println(err)
}
desired := webdriver.Capabilities{
    "Platform": "mac",
    "goog:chromeOptions": map[string]interface{}{
        "args": []string{
            "--headless=new", // 新版Chrome推荐用这个参数替代旧的--headless
            "--disable-gpu",
            "--window-size=1920,1200",
            "--ignore-certificate-errors",
            "--disable-extensions",
            "--no-sandbox",
            "--disable-dev-shm-usage",
        },
    },
}
// required参数无需重复配置,留空即可
session, err := chromeDriver.NewSession(desired, webdriver.Capabilities{})
if err != nil {
    panic(err.Error())
}

补充注意事项

  • 若使用Chrome 112及以上版本,优先用--headless=new,旧的--headless模式模拟旧版浏览器行为,易出现兼容性问题。
  • 确保本地Chrome浏览器版本与chromedriver版本完全匹配,版本不兼容是启动失败的常见原因。
  • required参数仅用于声明必须满足的强制能力,一般场景下无需配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:36:15