@@ -325,6 +325,12 @@ class JavaScriptError < StandardError; end
325325
326326 config . after ( :each , js : true ) do |spec |
327327 logs = page . driver . browser . manage . logs . get ( :browser )
328+ if spec . exception
329+ all_messages = logs . select { |e | e . message . present? }
330+ . map { |m | m . message . gsub ( /\\ n/ , "\n " ) } . to_a
331+ puts "Javascript client console messages:\n \n " +
332+ all_messages . join ( "\n \n " ) if all_messages . present?
333+ end
328334 errors = logs . select { |e | e . level == "SEVERE" && e . message . present? }
329335 . map { |m | m . message . gsub ( /\\ n/ , "\n " ) } . to_a
330336 if client_options [ :deprecation_warnings ] == :on
@@ -362,13 +368,31 @@ class JavaScriptError < StandardError; end
362368 end
363369
364370 Capybara . register_driver :chrome_headless_docker_travis do |app |
371+ caps = Selenium ::WebDriver ::Remote ::Capabilities . chrome ( loggingPrefs :{ browser : 'ALL' } )
365372 options = ::Selenium ::WebDriver ::Chrome ::Options . new
366373 options . add_argument ( '--headless' )
367374 options . add_argument ( '--no-sandbox' )
368375 options . add_argument ( '--disable-dev-shm-usage' )
369- Capybara ::Selenium ::Driver . new ( app , browser : :chrome , :driver_path => "/usr/lib/chromium-browser/chromedriver" , options : options )
376+ Capybara ::Selenium ::Driver . new ( app , browser : :chrome , :driver_path => "/usr/lib/chromium-browser/chromedriver" , options : options , desired_capabilities : caps )
377+ end
378+
379+ Capybara . register_driver :selenium_chrome_headless_with_logs do |app |
380+ caps = Selenium ::WebDriver ::Remote ::Capabilities . chrome ( loggingPrefs :{ browser : 'ALL' } )
381+ browser_options = ::Selenium ::WebDriver ::Chrome ::Options . new ( )
382+ # browser_options.args << '--some_option' # add whatever browser args and other options you need (--headless, etc)
383+ browser_options . add_argument ( '--headless' )
384+ Capybara ::Selenium ::Driver . new ( app , browser : :chrome , options : browser_options , desired_capabilities : caps )
385+ #
386+ #
387+ #
388+ # options = ::Selenium::WebDriver::Chrome::Options.new
389+ # options.add_argument('--headless')
390+ # options.add_argument('--no-sandbox')
391+ # options.add_argument('--disable-dev-shm-usage')
392+ # Capybara::Selenium::Driver.new(app, browser: :chrome, :driver_path => "/usr/lib/chromium-browser/chromedriver", options: options)
370393 end
371394
395+
372396 class Selenium ::WebDriver ::Firefox ::Profile
373397
374398 def self . firebug_version
@@ -436,11 +460,11 @@ def enable_firebug(version = nil)
436460 elsif ENV [ 'DRIVER' ] == 'chrome'
437461 Capybara . javascript_driver = :chromez
438462 elsif ENV [ 'DRIVER' ] == 'headless'
439- Capybara . javascript_driver = :selenium_chrome_headless
463+ Capybara . javascript_driver = :selenium_chrome_headless_with_logs #: selenium_chrome_headless
440464 elsif ENV [ 'DRIVER' ] == 'travis'
441465 Capybara . javascript_driver = :chrome_headless_docker_travis
442466 else
443- Capybara . javascript_driver = :selenium_chrome_headless
467+ Capybara . javascript_driver = :selenium_chrome_headless_with_logs #: selenium_chrome_headless
444468 end
445469
446470 include ComponentTestHelpers
0 commit comments