Ruby on rails 水豚:访视时出现无限直接错误(';http://google.com')
我的目标是使用cucumber+capybara,它在带有selenium(chromedriver)的显示浏览器中运行 GemfileRuby on rails 水豚:访视时出现无限直接错误(';http://google.com'),ruby-on-rails,ruby,selenium,cucumber,capybara,Ruby On Rails,Ruby,Selenium,Cucumber,Capybara,我的目标是使用cucumber+capybara,它在带有selenium(chromedriver)的显示浏览器中运行 Gemfile group :test do gem 'cucumber-rails' gem 'database_cleaner' gem 'selenium-webdriver' gem 'rspec-rails'#, '~> 3.3.2' end Feature: Google Scenario: When I go to google, I
group :test do
gem 'cucumber-rails'
gem 'database_cleaner'
gem 'selenium-webdriver'
gem 'rspec-rails'#, '~> 3.3.2'
end
Feature: Google
Scenario: When I go to google, I am supposed to be on google
Given I am on google
功能/支持/env.rb
require 'cucumber/rails'
require 'selenium-webdriver' # Setup selenium-drivers for capybara
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium_chrome
Given(/^I am on google$/) do
visit('http://google.com')
end
require 'cucumber/rails'
require 'capybara/cucumber'
Capybara.register_driver :chrome do |app|
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120
Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => client)
end
Capybara.default_driver = :chrome
测试功能
group :test do
gem 'cucumber-rails'
gem 'database_cleaner'
gem 'selenium-webdriver'
gem 'rspec-rails'#, '~> 3.3.2'
end
Feature: Google
Scenario: When I go to google, I am supposed to be on google
Given I am on google
测试步骤.rb
require 'cucumber/rails'
require 'selenium-webdriver' # Setup selenium-drivers for capybara
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium_chrome
Given(/^I am on google$/) do
visit('http://google.com')
end
require 'cucumber/rails'
require 'capybara/cucumber'
Capybara.register_driver :chrome do |app|
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120
Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => client)
end
Capybara.default_driver = :chrome
当我运行cumber时,结果是错误的
重定向超过5次,请检查无限重定向。
(水豚::无限直接错误)
它甚至没有打开浏览器…我做错了什么
谢谢你的帮助。多亏了这篇文章,我修复了它: 我需要把它放到features/support/env.rb中
require 'cucumber/rails'
require 'selenium-webdriver' # Setup selenium-drivers for capybara
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium_chrome
Given(/^I am on google$/) do
visit('http://google.com')
end
require 'cucumber/rails'
require 'capybara/cucumber'
Capybara.register_driver :chrome do |app|
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120
Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => client)
end
Capybara.default_driver = :chrome
在测试步骤中,你是说当你在谷歌上转到谷歌?这个“修复”中唯一起作用的部分是设置默认的驱动程序。在最初的尝试中,您可以只设置
Capybara.default\u driver=:selenium\u chrome
,它也会做同样的事情。原因是正常的默认驱动程序(rack_测试)不支持外部URL,如果您希望场景使用javascript_驱动程序,默认设置需要使用@javascript标记场景。谢谢您的回答,我觉得Capybara.current\u driver=:selenium\u chrome
和Capybara.default\u driver=:selenium\u chrome
之间的区别有点模糊,但它现在可以工作了。