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

Rails部署Heroku运行Selenium爬虫提示Webdrivers::BrowserNotFound错误如何解决

解决方案

1. 修正Buildpack加载顺序

Heroku buildpack会按从上到下的顺序执行,错误的顺序会导致环境变量被覆盖、依赖加载失败。首先执行命令查看当前buildpack顺序:

heroku buildpacks

正确的顺序应为:

  1. heroku/ruby(Rails默认buildpack,需排在最前)
  2. https://github.com/heroku/heroku-buildpack-google-chrome
  3. https://github.com/heroku/heroku-buildpack-chromedriver
    如果顺序不符,可通过以下命令调整索引(索引从1开始):
# 示例:将Chrome buildpack调整到第2位
heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-google-chrome
# 示例:将Chromedriver buildpack调整到第3位
heroku buildpacks:add --index 3 https://github.com/heroku/heroku-buildpack-chromedriver

2. 清理手动配置的冲突环境变量

Chrome buildpack会自动生成正确的GOOGLE_CHROME_BIN和GOOGLE_CHROME_SHIM变量,手动设置的变量会和buildpack自动生成的逻辑冲突,执行以下命令删除你之前手动添加的变量:

heroku config:unset GOOGLE_CHROME_BIN GOOGLE_CHROME_SHIM GOOGLE_PATH

3. 禁用Webdrivers自动下载逻辑

Webdrivers::BrowserNotFound报错90%以上是因为Webdrivers gem默认会尝试自行下载Chrome二进制,忽略Heroku环境内已安装的Chrome,你需要添加初始化文件强制Webdrivers使用系统安装的版本:
在Rails项目config/initializers目录下新建webdrivers.rb,内容如下:

Webdrivers.configure do |config|
  # 强制使用buildpack生成的Chrome启动入口
  config.chrome_binary_path = ENV['GOOGLE_CHROME_SHIM']
  # 禁用自动更新,避免版本不匹配
  config.chrome_version = :current
end

4. 修正Selenium启动配置

你之前的代码用了GOOGLE_CHROME_BIN作为启动路径,实际Heroku环境下应该使用GOOGLE_CHROME_SHIM(该入口已处理了Heroku的依赖、权限适配问题),同时补充适配Heroku内存限制的参数,修改后代码如下:

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless=new') # 用新版headless模式,兼容性更好
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage') # 解决Heroku共享内存不足导致的Chrome崩溃
options.add_argument('--remote-debugging-port=9222') # 避免Heroku环境端口冲突报错
options.binary = ENV['GOOGLE_CHROME_SHIM']

driver = Selenium::WebDriver.for :chrome, options: options
driver.get "https://www.google.com"
puts driver.title
driver.quit

5. 清理缓存重新部署

执行以下命令清除Heroku构建缓存,避免旧的依赖、缓存文件影响:

heroku builds:cache:purge

之后重新提交代码push到Heroku部署即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:01