selenium-webdriver - “未能找到 Chrome 二进制文件。” 在系统规范 gitlab-ci
问题描述
语境:
- 导轨 6.0.3.4
- 红宝石 2.7.1
在我的 gitlab CI 中,我使用 RSpec 和 Selenium 运行系统规范。测试在本地运行良好,但在 gitlab CI 中抛出以下错误
Failure/Error: driven_by :selenium, using: :chrome
Webdrivers::BrowserNotFound:
Failed to find Chrome binary.
# ./spec/rails_helper.rb:35:in `block (2 levels) in '
谁能告诉我如何解决这个错误?
这是我的.gitlab-ci.yml
image: "ruby:2.7.1-buster"
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- vendor/bundle
- .bundle
- node_modules/
- .yarn
stages:
- build
- test
variables:
POSTGRES_HOST: xxxx
POSTGRES_USER: xxxx
POSTGRES_DB: xxxx
POSTGRES_PASSWORD: xxxx
before_script:
- gem install bundler
- bundle install -j $(nproc) --deployment
job_0_build:
stage: build
script:
- ruby -v
job_3_tests:
stage: test
cache:
paths:
- node_modules/
- .yarn
services:
- postgres:12.1
before_script:
- apt-get update -qq && apt-get install -y -qq nodejs
- curl -o- -L https://yarnpkg.com/install.sh | bash
- export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
- yarn install --cache-folder .yarn
- yarn --version
- gem install bundler
- bundle install -j $(nproc) --deployment
script:
- bundle exec rake assets:precompile RAILS_ENV=test
- bundle exec rspec
这是我Gemfile.lock
(我认为)相关宝石的摘录,如果您觉得有用,我可以提供其他人
selenium-webdriver (3.142.7)
childprocess (>= 0.5, < 4.0)
rubyzip (>= 1.2.2)
chromedriver-helper (2.1.1)
archive-zip (~> 0.10)
nokogiri (~> 1.8)
capybara (3.33.0)
addressable
mini_mime (>= 0.1.3)
nokogiri (~> 1.8)
rack (>= 1.6.0)
rack-test (>= 0.6.3)
regexp_parser (~> 1.5)
xpath (~> 3.2)
webdrivers (4.4.1)
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (>= 3.0, < 4.0)
解决方案
推荐阅读
- sql - 按资源消耗划分的 row_number()
- c# - 如何传递对象和访问方法?
- php - 未定义的变量行,即使使用索引值访问它
- excel - 返回excel vba中绝对值的行和列
- python - Tensorflow:执行计算并避免超出内存
- oauth-2.0 - XMPP 是否支持 OAuth 作为协议规范中的身份验证机制?
- c - 信号量锁在问题中无法正常工作
- image - React Native:通过 AsyncStorage 保存图像 URI 并在不同的 React Navigation 屏幕中重新加载
- excel - 动态范围选择对应于错误的工作簿
- flask - 如何使用 Flask-Migrate 进行数据库迁移?