7

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

2 Answers 2

13

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.

Sign up to request clarification or add additional context in comments.

2 Comments

This is exactly what is mentioned in the comments of the gist linked to in the question.
This is now page.driver.browser.logs.get(:browser)
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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.