6

I have an integration test setup that uses RSpec + Capybara. We recently switched from PhantomJS to headless Chromedriver and I miss that javascript errors are not displayed anymore.

Is there a convenient way of configuring Chromedriver so that javascript errors show up in the log output of capybara tests?

The ways of accessing the javascript errors I found (see below) all are a bit cumbersome or not really what I was looking for.

  • setting an explicit log output path as described in this answer
  • accessing the (kind of cut back) error log through the driver interface as described in this gist
juffel
  • 1,045
  • 15
  • 21

2 Answers2

10

With

RSpec.configure do |config|
  config.after(type: :feature) do
    STDERR.puts page.driver.browser.manage.logs.get(:browser)
  end
end

one can print out the logs after each example, that is a feature spec with RSpec. Should be similar in other test frameworks. This does not fail the example however.

smallbutton
  • 3,377
  • 15
  • 27
3

Assuming your second method is referring to the comments in that gist rather than the method that requires installing an extension, then no there isn't. Selenium is basing its functionality/feature support off the WebDriver spec - https://w3c.github.io/webdriver/webdriver-spec.html - which doesn't specify anything about reporting JS errors back to the automation client.

Note - there are configuration options for the Chrome logs which may change the verbosity and get rid of the "kind of cut back" issue - see Capture browser console logs with capybara

juffel
  • 1,045
  • 15
  • 21
Thomas Walpole
  • 48,548
  • 5
  • 64
  • 78