Rails 水豚 Cliver::Dependency::NotFound 生产中

Rails capybara Cliver::Dependency::NotFound in production

我正在尝试 运行 在我的 Rails 应用中计划的 Sidekiq 任务中生产水豚。它在本地工作(按照设计目的),但在部署时我 运行 出现 Cliver::Dependency::NotFound 错误。

你对我如何让它工作有什么想法吗?

require 'capybara'
require 'capybara/cuprite'

Capybara.javascript_driver = :cuprite
Capybara.enable_aria_label = true
Capybara.register_driver(:cuprite) do |app|
  Capybara::Cuprite::Driver.new(app, {
    js_errors: false,
    headless: true,
    timeout: 500,
    slowmo: 0.05
  })
end

@session = Capybara::Session.new(:cuprite)
@session.visit('www.some-url-goes-here.com')

这是访问任何 URL 时触发的错误。

/app/vendor/bundle/ruby/3.0.0/gems/ferrum-0.11/lib/ferrum/browser/command.rb:32:in `initialize': Could not find an executable for the browser. Try to make it available on the PATH or set environment variable for example BROWSER_PATH="/usr/bin/chrome" (Cliver::Dependency::NotFound)

您需要告诉 Cuprite Chrome 浏览器二进制文件在您的生产机器上的位置。它会搜索常见位置,因此在您的生产环境中,它要么未安装,要么安装在 non-default 位置。