How to test JavaScript error in Capybara / Poltergeist

I need to check if the page has a JavaScript error.

Solution for capybara-webkit http://blog.55minutes.com/2013/10/test-javascript-with-capybara-webkit/

require 'spec_helper'

feature 'Home' do
  it 'should not have JavaScript errors',: js => true do
    visit (root_path)
    expect (page) .not_to have_errors
  end
end

How to do the same as for Poltergeist?

spec_helper.rb

...
require 'capybara/rails'
require 'capybara/selenium/driver'
...


selenium_hub_host = "selenium"
selenium_hub_port = "100"
selenium_url = "http://#{selenium_hub_host}:#{selenium_hub_port}/wd/hub"

...
Capybara.register_driver :selenium_remote do |app|
  options = {}
  options[:browser] = :remote
  capabilities = Selenium::WebDriver::Remote::Capabilities.firefox
  capabilities[:platform] = :any
  capabilities[:takes_screenshot] = true
  options[:url] = selenium_url
  options[:desired_capabilities] = capabilities
  Capybara::Selenium::Driver.new(app, options)
end

Capybara.javascript_driver = :selenium_remote
Capybara.default_max_wait_time = 30

Capybara.server do |app, port|
  require 'rack/handler/thin'
  Rack::Handler::Thin.run(app, :Host => '0.0.0.0', :Port => port)
end

...
+4
source share
2 answers

Try this configuration:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new( app, {
    debug:     true,  # turn on poltergeist debug mode
    js_errors: true,  # turn on javascript errors on page
    timeout:   10000,
    phantomjs_options: ['--load-images=yes', '--ignore-ssl-errors=yes', '--ssl-protocol=any']
  })
end

Capybara.javascript_driver = :poltergeist
Capybara.current_driver    = :poltergeist
Capybara.default_wait_time = 5
Capybara.server_port       = '3000'
Capybara.app_host          = "http://127.0.0.1:3000"

Disable boot images and debug poltergeist mode if you do not need it.

BTW, Capybara have_errors. , gem/driver capybara-webkit

PhantomJS/Poltergeist Capybara , ( JS)...

JS, , ...

JS - , , teaspoon...

Selenium WD, JS , ...

+1

, , :

  • rspec, capybara capybara-webkit

poltergeist. capybara-webkit! :

  • rspec, capybara poltergeist (poltergeist phantomjs)

: http://tutorials.jumpstartlab.com/topics/capybara/capybara_and_phantom.html

, !

0

All Articles