|
2 | 2 |
|
3 | 3 | module DriverRegistration |
4 | 4 | def self.register_selenium_chrome |
5 | | - return if @selenium_chrome_registered |
| 5 | + # Force re-register to ensure our configuration is used |
| 6 | + Capybara.drivers.delete(:selenium_chrome) |
6 | 7 |
|
7 | 8 | Capybara.register_driver :selenium_chrome do |app| |
8 | 9 | Capybara::Selenium::Driver.new(app, browser: :chrome) |
9 | 10 | end |
| 11 | + |
10 | 12 | Capybara::Screenshot.register_driver(:selenium_chrome) do |js_driver, path| |
11 | 13 | js_driver.browser.save_screenshot(path) |
12 | 14 | end |
13 | | - @selenium_chrome_registered = true |
14 | 15 | end |
15 | 16 |
|
16 | 17 | def self.register_selenium_firefox |
17 | | - return if @selenium_firefox_registered |
| 18 | + # Force re-register to ensure our configuration is used |
| 19 | + Capybara.drivers.delete(:selenium_firefox) |
18 | 20 |
|
19 | 21 | Capybara.register_driver :selenium_firefox do |app| |
20 | 22 | Capybara::Selenium::Driver.new(app, browser: :firefox) |
21 | 23 | end |
| 24 | + |
22 | 25 | Capybara::Screenshot.register_driver(:selenium_firefox) do |js_driver, path| |
23 | 26 | js_driver.browser.save_screenshot(path) |
24 | 27 | end |
25 | | - @selenium_firefox_registered = true |
26 | 28 | end |
27 | 29 |
|
28 | 30 | def self.register_selenium_chrome_headless |
29 | | - return if @selenium_headless_registered |
| 31 | + # Force re-register to ensure our configuration is used |
| 32 | + Capybara.drivers.delete(:selenium_chrome_headless) |
30 | 33 |
|
31 | 34 | Capybara.register_driver :selenium_chrome_headless do |app| |
32 | | - capabilities = Selenium::WebDriver::Chrome::Options.new( |
33 | | - "goog:chromeOptions" => { args: %w[headless disable-gpu no-sandbox disable-dev-shm-usage] } |
34 | | - ) |
35 | | - Capybara::Selenium::Driver.new app, browser: :chrome, options: capabilities |
| 35 | + browser_options = ::Selenium::WebDriver::Chrome::Options.new |
| 36 | + browser_options.args << "--headless" |
| 37 | + browser_options.args << "--disable-gpu" |
| 38 | + browser_options.args << "--no-sandbox" |
| 39 | + browser_options.args << "--disable-dev-shm-usage" |
| 40 | + browser_options.args << "--window-size=1920,1080" |
| 41 | + |
| 42 | + Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options) |
36 | 43 | end |
37 | | - Capybara::Screenshot.register_driver(:selenium_chrome_headless) do |js_driver, path| |
38 | | - js_driver.browser.save_screenshot(path) |
| 44 | + |
| 45 | + Capybara::Screenshot.register_driver(:selenium_chrome_headless) do |driver, path| |
| 46 | + driver.browser.save_screenshot(path) |
39 | 47 | end |
40 | | - @selenium_headless_registered = true |
41 | 48 | end |
42 | 49 | end |
0 commit comments