Bump selenium-webdriver from 4.0.0 to 4.11.0

Webdrivers doesn't seem to be working with GitHub Actions since Chrome
changed the way to download ChromeDriver [1].

Luckily, webdrivers functionality has recently been added directly to
selenium-webdriver, and version 4.11.0 is compatible with the new way to
download ChromeDriver.

So we're updating selenium-webdriver and removing webdrivers.

Note we now have to use the `Options` class instead of the
`Capabilities`. We're updating Capybara since its changelog mentions its
latest version also adapts these changes in Selenium.

[1] https://groups.google.com/g/chromedriver-users/c/qVPTFXnedw0
This commit is contained in:
Javi Martín
2023-07-25 23:02:42 +02:00
parent 28a9bd55c6
commit 5b0fb3213d
3 changed files with 16 additions and 25 deletions

View File

@@ -84,14 +84,13 @@ group :development, :test do
end end
group :test do group :test do
gem "capybara", "~> 3.37.1" gem "capybara", "~> 3.39.2"
gem "capybara-webmock", "~> 0.7.0" gem "capybara-webmock", "~> 0.7.0"
gem "email_spec", "~> 2.2.0" gem "email_spec", "~> 2.2.0"
gem "rspec-rails", "~> 5.1.2" gem "rspec-rails", "~> 5.1.2"
gem "selenium-webdriver", "~> 4.0.0" gem "selenium-webdriver", "~> 4.11.0"
gem "simplecov", "~> 0.21.2", require: false gem "simplecov", "~> 0.21.2", require: false
gem "simplecov-lcov", "~> 0.8.0", require: false gem "simplecov-lcov", "~> 0.8.0", require: false
gem "webdrivers", "~> 4.7.0"
end end
group :development do group :development do

View File

@@ -125,7 +125,7 @@ GEM
capistrano (~> 3.7) capistrano (~> 3.7)
capistrano-bundler capistrano-bundler
puma (>= 4.0, < 6.0) puma (>= 4.0, < 6.0)
capybara (3.37.1) capybara (3.39.2)
addressable addressable
matrix matrix
mini_mime (>= 0.1.3) mini_mime (>= 0.1.3)
@@ -150,7 +150,6 @@ GEM
actionpack (>= 3.1) actionpack (>= 3.1)
caxlsx (>= 3.0) caxlsx (>= 3.0)
chef-utils (16.4.41) chef-utils (16.4.41)
childprocess (4.1.0)
chronic (0.10.2) chronic (0.10.2)
ckeditor (4.3.0) ckeditor (4.3.0)
orm_adapter (~> 0.5.0) orm_adapter (~> 0.5.0)
@@ -578,10 +577,10 @@ GEM
faraday (>= 0.17.3, < 3) faraday (>= 0.17.3, < 3)
scss_lint (0.59.0) scss_lint (0.59.0)
sass (~> 3.5, >= 3.5.5) sass (~> 3.5, >= 3.5.5)
selenium-webdriver (4.0.3) selenium-webdriver (4.11.0)
childprocess (>= 0.5, < 5.0)
rexml (~> 3.2, >= 3.2.5) rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2) rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
simplecov (0.21.2) simplecov (0.21.2)
docile (~> 1.1) docile (~> 1.1)
simplecov-html (~> 0.11) simplecov-html (~> 0.11)
@@ -650,11 +649,8 @@ GEM
activemodel (>= 6.0.0) activemodel (>= 6.0.0)
bindex (>= 0.4.0) bindex (>= 0.4.0)
railties (>= 6.0.0) railties (>= 6.0.0)
webdrivers (4.7.0)
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (> 3.141, < 5.0)
webrick (1.8.1) webrick (1.8.1)
websocket (1.2.9)
websocket-driver (0.7.5) websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5) websocket-extensions (0.1.5)
@@ -687,7 +683,7 @@ DEPENDENCIES
capistrano-rails (~> 1.6.2) capistrano-rails (~> 1.6.2)
capistrano3-delayed-job (~> 1.7.6) capistrano3-delayed-job (~> 1.7.6)
capistrano3-puma (~> 5.2.0) capistrano3-puma (~> 5.2.0)
capybara (~> 3.37.1) capybara (~> 3.39.2)
capybara-webmock (~> 0.7.0) capybara-webmock (~> 0.7.0)
caxlsx (~> 3.2.0) caxlsx (~> 3.2.0)
caxlsx_rails (~> 0.6.3) caxlsx_rails (~> 0.6.3)
@@ -755,7 +751,7 @@ DEPENDENCIES
sassc-rails (~> 2.1.2) sassc-rails (~> 2.1.2)
savon (~> 2.13.0) savon (~> 2.13.0)
scss_lint (~> 0.59.0) scss_lint (~> 0.59.0)
selenium-webdriver (~> 4.0.0) selenium-webdriver (~> 4.11.0)
simplecov (~> 0.21.2) simplecov (~> 0.21.2)
simplecov-lcov (~> 0.8.0) simplecov-lcov (~> 0.8.0)
sitemap_generator (~> 6.3.0) sitemap_generator (~> 6.3.0)
@@ -769,7 +765,6 @@ DEPENDENCIES
uuidtools (~> 2.2.0) uuidtools (~> 2.2.0)
view_component (~> 2.78.0) view_component (~> 2.78.0)
web-console (~> 4.2.0) web-console (~> 4.2.0)
webdrivers (~> 4.7.0)
whenever (~> 1.0.0) whenever (~> 1.0.0)
wicked_pdf (~> 2.6.3) wicked_pdf (~> 2.6.3)
wkhtmltopdf-binary (~> 0.12.6) wkhtmltopdf-binary (~> 0.12.6)

View File

@@ -54,17 +54,14 @@ end
FactoryBot.use_parent_strategy = false FactoryBot.use_parent_strategy = false
Capybara.register_driver :headless_chrome do |app| Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( options = Selenium::WebDriver::Chrome::Options.new.tap do |opts|
"goog:chromeOptions" => { opts.add_argument "--headless"
args: %W[headless no-sandbox window-size=1200,800 proxy-server=#{Capybara.app_host}:#{Capybara::Webmock.port_number}] opts.add_argument "--no-sandbox"
} opts.add_argument "--window-size=1200,800"
) opts.add_argument "--proxy-server=#{Capybara.app_host}:#{Capybara::Webmock.port_number}"
end
Capybara::Selenium::Driver.new( Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
app,
browser: :chrome,
capabilities: capabilities
)
end end
Capybara.exact = true Capybara.exact = true