Ho un test di integrazione RSpec che deve eseguire alcuni JavaScript. Ho incluso Poltergeist e PhantomJS installato, ma ogni volta che ho eseguito l'esempio, ottengo questo errore:Come configurare Capybara per funzionare con Poltergeist?
Failure/Error: page.execute_script("$('form')[0].submit();")
Capybara::NotSupportedByDriverError:
Capybara::Driver::Base#execute_script
La specifica è:
require 'spec_helper'
describe "Signup", :type => :feature do
describe "workflow" do
it "ensures entry of contact information" do
visit 'signup/action'
# snip - use Capybara to fill out form elements
page.execute_script("$('form')[0].submit();")
page.should have_content("Name can't be blank")
page.should have_content("Email can't be blank")
# snip - use Capybara to fill out more form elements
page.execute_script("$('form')[0].submit();")
page.should have_content("Next page")
end
end
end
Credo che il problema è che io' Non sono sicuro di come indicare che Capybara dovrebbe usare Poltergeist come suo driver JavaScript. Il Poltergeist documentation dice:
Installation
Add poltergeist to your Gemfile, and in your test setup add:
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Ma non dice quale file specifico si dovrebbe andare in. E 'also says:
Customization
You can customize the way that Capybara sets up Poltegeist via the following code in your test setup:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, options)
end
Ma non è chiaro per me se o quando avrei avuto bisogno di includere questo nel mio test. E ancora, non sono sicuro di dove metterlo se ne ho bisogno.
Cosa mi manca?
- Dove ho bisogno di mettere la configurazione per Capybara e Poltergeist, e che cosa esattamente ne ha bisogno di dire (o come posso stabilire che per me)?
- C'è un passaggio o una parte di configurazione che ho perso?