I'm trying to write a request spec for a web page.
This page works in development without error.
But running in capybara webkit I get this error after trying to submit the form:
Failure/Error: Unable to find matching line from backtrace
Capybara::Driver::Webkit::WebkitInvalidResponseError:
Unable to load URL: https://127.0.0.1:33416/sign_in
In an effort to find out the cause I've started stripping out markup and JavaScript on the page. To the point where it is an empty form with a plain submit button. I still get the above error!
The test is now literally:
it "should be able create a new foo", :js, :focus do
visit new_foo_path
find('#submit').click
end
This test does however work if I remove the :js option:
it "should be able create a new foo", :focus do
visit new_foo_path
find('#submit').click
end
Javascript tests do work in other pages on this application...
This is making no sense to me. Does anyone have any suggestions how to debug from here?
Thanks for any help
I'm working with subdomains and I could make it work adding the following to spec_helper.rb
:
Capybara.configure do |config|
config.javascript_driver = :webkit
config.server_port = 3000
config.app_host = "http://subdomain.local.host:3000"
end
Obviously adding before 127.0.0.1 subdomain.local.host
to my /etc/hosts
file
The error you're seeing is most likely capybara-webkit's cryptic way of telling you that there is some sort of exception in the page. I had the same problem a while back, and the "Unable to load URL" thing totally threw me off, making it hard to find the actual problem.
As a few things to try, I'd suggest:
Good luck!
Add the following to your capybara config.
require 'rack/utils'
Capybara.app = Rack::ShowExceptions.new(NameOfYourRailsApp::Application)
When you get an error now you'll see it on stdout and rack will render a page with details about the environment(cookies etc.) and the backtrace.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With