Skip to content

Commit a96c367

Browse files
committed
Pin headless chrome to 133
Unless the capybara team figured out how to solve this bug: teamcapybara/capybara#2800 Also setting some flags we need for Chrome 133 support. And completely register a new driver. Do not try to inherit from the selenium web driver. It does not contain all the args we need.
1 parent 45c2884 commit a96c367

1 file changed

Lines changed: 16 additions & 10 deletions

File tree

lib/solidus_dev_support/rspec/capybara.rb

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
# frozen_string_literal: true
22

3+
require "selenium-webdriver"
4+
35
# Allow to override the initial windows size
4-
CAPYBARA_WINDOW_SIZE = ENV.fetch("CAPYBARA_WINDOW_SIZE", "1920x1080").split("x", 2).map(&:to_i)
5-
CAPYBARA_WINDOW_WIDTH = CAPYBARA_WINDOW_SIZE[0]
6-
CAPYBARA_WINDOW_HEIGHT = CAPYBARA_WINDOW_SIZE[1]
6+
CAPYBARA_WINDOW_SIZE = ENV.fetch("CAPYBARA_WINDOW_SIZE", "1920x1080")
7+
8+
# Set Chrome version you want to use
9+
CAPYBARA_JAVASCRIPT_DRIVER_VERSION = ENV.fetch("CAPYBARA_JAVASCRIPT_DRIVER_VERSION", "133")
710

811
Capybara.javascript_driver = ENV.fetch("CAPYBARA_JAVASCRIPT_DRIVER", "solidus_chrome_headless").to_sym
912
Capybara.default_max_wait_time = 10
1013
Capybara.server = :puma, {Silent: true} # A fix for rspec/rspec-rails#1897
1114

12-
Capybara.drivers[:selenium_chrome_headless].tap do |original_driver|
13-
Capybara.register_driver :solidus_chrome_headless do |app|
14-
original_driver.call(app).tap do |driver|
15-
driver.resize_window_to(
16-
driver.current_window_handle, CAPYBARA_WINDOW_WIDTH, CAPYBARA_WINDOW_HEIGHT
17-
)
18-
end
15+
Capybara.register_driver :solidus_chrome_headless do |app|
16+
browser_options = Selenium::WebDriver::Chrome::Options.new.tap do |opts|
17+
opts.add_argument("--headless=new")
18+
opts.add_argument("--disable-gpu")
19+
opts.add_argument("--no-sandbox")
20+
opts.add_argument("--window-size=#{CAPYBARA_WINDOW_SIZE}")
21+
opts.add_argument("--disable-search-engine-choice-screen")
22+
opts.add_argument("--disable-backgrounding-occluded-windows")
23+
opts.browser_version = CAPYBARA_JAVASCRIPT_DRIVER_VERSION
1924
end
25+
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
2026
end
2127

2228
require "capybara-screenshot/rspec"

0 commit comments

Comments
 (0)