Here's my setup, based on this recommendation: How to get Cucumber/Capybara/Mechanize to work against external non-rails site
It works until I add parameters to the URL. Any advice on addressing this issue?
require 'rspec'
require 'capybara/rspec'
require 'capybara/dsl'
@test_url = "test"
RSpec.configure do |config|
config.include Capybara::DSL
end
Capybara.configure do |config|
config.run_server = false
config.current_driver = :selenium
config.app = "fake app name"
config.app_host = "http://site.com/#{@test_url}"
end
This works fine:
describe "the page, without URL parameters" do
it "shows the regular form" do
visit "/registration.aspx"
page.should have_content "YES"
end
end
But this:
describe "the page, when not fully pre-filled" do
it "shows the regular form if only passed the attendance" do
visit "/registration.aspx?r=y"
page.should have_content "YES"
end
it "shows the regular form if only passed the attendance" do
visit "/registration.aspx?f=Jim"
page.should have_content "YES"
end
end
results in
....FF
Failures:
1) the page, when not fully pre-filled shows the regular form if only passed the attendance
Failure/Error: visit "/registration.aspx?r=y"
NoMethodError:
undefined method `call' for "fake app name":String
# ./conf_spec.rb:39:in `block (2 levels) in <top (required)>'
2) the page, when not fully pre-filled shows the regular form if only passed the attendance
Failure/Error: visit "/registration.aspx?f=Jim"
NoMethodError:
undefined method `call' for "fake app name":String
# ./conf_spec.rb:44:in `block (2 levels) in <top (required)>'
You can set only one of app
and app_host
. So you should remove config.app
from configuration.
Also you should set default_driver
instead of current_driver
.
As it's shown in my answer in linked question working configuration is:
Capybara.configure do |config|
config.run_server = false
config.default_driver = :selenium
config.app_host = 'https://www.google.com' # change url
end
If you're specifying an app_host instead of using rack, you need to specify default_driver instead of current_driver. For example:
Capybara.run_server = false
Capybara.default_driver = :selenium
Capybara.app_host = 'https://www.google.com'
instead of
Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'https://www.google.com'
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