Ich habe einen RSpec-Integrationstest, der etwas JavaScript ausführen muss. Ich habe Poltergeist enthalten und PhantomJS installiert, aber wenn ich das Beispiel laufen, bekomme ich diesen Fehler:Wie konfiguriere ich Capybara für die Arbeit mit Poltergeist?
Failure/Error: page.execute_script("$('form')[0].submit();")
Capybara::NotSupportedByDriverError:
Capybara::Driver::Base#execute_script
Die Spezifikation ist:
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
Ich denke, das Problem ist, dass ich Ich bin mir nicht sicher, wie ich darauf hinweisen soll, dass Capybara Poltergeist als seinen JavaScript-Treiber verwenden sollte. Die Poltergeist documentation sagt:
Installation
Add poltergeist to your Gemfile, and in your test setup add:
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Aber es sagt nicht, welche Datei speziell sollte es in gehen. Es 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
Aber es ist mir nicht klar, ob oder wann ich würde das in meinen Tests müssen aufzunehmen. Und ich bin mir nicht sicher, wo ich es hinstellen soll, wenn es nötig ist.
Was fehlt mir?
- Wo muss ich die Konfiguration für Capybara und Poltergiest setzen, und was genau braucht, es zu sagen (oder wie kann ich feststellen, für mich das)?
- Gibt es einen Schritt oder eine Konfiguration, die ich verpasst habe?