Is there a way to print javascript console.errors to the terminal with Rspec/Capybara/Selenium?

Andrew De Andrade picture Andrew De Andrade · Jan 25, 2012 · Viewed 13.2k times · Source

When I run rspec, is it possible to have capybara/selenium report any javascript console.errors and other exceptions back to rspec?

I have a whole bunch of tests failing, but my application is working when I manually test it. Without knowing the javascript errors that are likely blocking my single-page web app only during testing, it's really hard to figure out why the tests are failing.

I've looked around and haven't really been able to find a solution to this.

Answer

Leo picture Leo · Apr 21, 2016

There's a code sample at the end of this gist https://gist.github.com/gkop/1371962 (the one from alexspeller) which worked very nicely for me.

I ended up doing this in the context of the JS tests I was trying to debug

after(:each) do
  errors = page.driver.browser.manage.logs.get(:browser)
  if errors.present?
    message = errors.map(&:message).join("\n")
    puts message
  end
end