|
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