我正在尝试在Rails 3应用程序中首次使用selenium。(我以前在导轨2上使用过它)。我在一个rvm中,它当然有它自己的gemset。
我首先用水豚跑了一个没有selenium的任务:
#./spec/requests/homepage_spec.rb require 'spec_helper' describe 'home page', :type => :request do it 'should welcome the user' do visit '/' page.should have_content('Buddy') end end
这样很好。然后,我在describe的选项中添加了“:js => true”选项,这应该使它使用selenium运行(据我所知)。并得到此错误:
Failure/Error: @page.start_new_browser_session WebMock::NetConnectNotAllowedError: Real HTTP connections are disabled. Unregistered request: POST http://localhost:4444/selenium-server/driver/ with body 'cmd=getNewBrowserSession&1=%2Afirefox&2=http%3A%2F%2Flocalhost%3A3000&3=&4=' with headers {'Accept'=>'*/*', 'Content-Type'=>'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent'=>'Ruby'} You can stub this request with the following snippet: stub_request(:post, "http://localhost:4444/selenium-server/driver/"). with(:body => "cmd=getNewBrowserSession&1=%2Afirefox&2=http%3A%2F%2Flocalhost%3A3000&3=&4=", :headers => {'Accept'=>'*/*', 'Content-Type'=>'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent'=>'Ruby'}). to_return(:status => 200, :body => "", :headers => {}) ============================================================
这是我第一次使用capybara,我认为我的配置有些错误。也许缺少一些必不可少的宝石?我正在关注此博客文章:使用RSpec&Rails 3的Capybara(和Selenium):快速教程
有任何想法吗?
PS,这是我的Gemfile内容:
source 'http://rubygems.org' gem 'rails', '3.0.7' gem 'haml' gem 'heroku' gem "heroku_backup_task" gem 'authlogic', '3.0.2' gem 'rails3-generators' gem 'txtlocal', :git => 'git://github.com/epigenesys/txtlocal.git' gem 'chronic' gem 'sqlite3-ruby', :require => 'sqlite3' gem 'bcrypt-ruby' group :development, :test do gem 'rspec' gem 'mocha' gem "rspec-rails", "~> 2.4" gem "webmock" gem 'database_cleaner', '0.5.2' gem 'capybara', :git => 'git://github.com/jnicklas/capybara.git' gem 'selenium-client' end
和我的Gemfile.lock:
GIT remote: git://github.com/epigenesys/txtlocal.git revision: 66aab6628d4385eda959e4a8bd083cc2c259fea0 specs: txtlocal (0.0.1) json GIT remote: git://github.com/jnicklas/capybara.git revision: 9cdf015e28637b7b0d94f5a69f9bc3605455ce22 specs: capybara (1.0.0.beta1) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) selenium-webdriver (~> 0.2.0) xpath (~> 0.1.4) GEM remote: http://rubygems.org/ specs: abstract (1.0.0) actionmailer (3.0.7) actionpack (= 3.0.7) mail (~> 2.2.15) actionpack (3.0.7) activemodel (= 3.0.7) activesupport (= 3.0.7) builder (~> 2.1.2) erubis (~> 2.6.6) i18n (~> 0.5.0) rack (~> 1.2.1) rack-mount (~> 0.6.14) rack-test (~> 0.5.7) tzinfo (~> 0.3.23) activemodel (3.0.7) activesupport (= 3.0.7) builder (~> 2.1.2) i18n (~> 0.5.0) activerecord (3.0.7) activemodel (= 3.0.7) activesupport (= 3.0.7) arel (~> 2.0.2) tzinfo (~> 0.3.23) activeresource (3.0.7) activemodel (= 3.0.7) activesupport (= 3.0.7) activesupport (3.0.7) addressable (2.2.5) arel (2.0.9) authlogic (3.0.2) activerecord (~> 3.0.7) activerecord (~> 3.0.7) bcrypt-ruby (2.1.4) builder (2.1.2) childprocess (0.1.8) ffi (~> 1.0.6) chronic (0.3.0) configuration (1.2.0) crack (0.1.8) database_cleaner (0.5.2) diff-lcs (1.1.2) erubis (2.6.6) abstract (>= 1.0.0) ffi (1.0.7) rake (>= 0.8.7) haml (3.1.1) heroku (2.1.2) launchy (>= 0.3.2) rest-client (~> 1.6.1) term-ansicolor (~> 1.0.5) heroku_backup_task (0.0.5) heroku (>= 1.13.7) rake i18n (0.5.0) json (1.5.1) json_pure (1.5.1) launchy (0.4.0) configuration (>= 0.0.5) rake (>= 0.8.1) mail (2.2.19) activesupport (>= 2.3.6) i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) mime-types (1.16) mocha (0.9.12) nokogiri (1.4.4) polyglot (0.3.1) rack (1.2.2) rack-mount (0.6.14) rack (>= 1.0.0) rack-test (0.5.7) rack (>= 1.0) rails (3.0.7) actionmailer (= 3.0.7) actionpack (= 3.0.7) activerecord (= 3.0.7) activeresource (= 3.0.7) activesupport (= 3.0.7) bundler (~> 1.0) railties (= 3.0.7) rails3-generators (0.17.4) railties (>= 3.0.0) railties (3.0.7) actionpack (= 3.0.7) activesupport (= 3.0.7) rake (>= 0.8.7) thor (~> 0.14.4) rake (0.8.7) rest-client (1.6.1) mime-types (>= 1.16) rspec (2.6.0) rspec-core (~> 2.6.0) rspec-expectations (~> 2.6.0) rspec-mocks (~> 2.6.0) rspec-core (2.6.0) rspec-expectations (2.6.0) diff-lcs (~> 1.1.2) rspec-mocks (2.6.0) rspec-rails (2.6.0) actionpack (~> 3.0) activesupport (~> 3.0) railties (~> 3.0) rspec (~> 2.6.0) rubyzip (0.9.4) selenium-client (1.2.18) selenium-webdriver (0.2.0) childprocess (>= 0.1.7) ffi (>= 1.0.7) json_pure rubyzip sqlite3 (1.3.3) sqlite3-ruby (1.3.3) sqlite3 (>= 1.3.3) term-ansicolor (1.0.5) thor (0.14.6) treetop (1.4.9) polyglot (>= 0.3.1) tzinfo (0.3.27) webmock (1.6.2) addressable (>= 2.2.2) crack (>= 0.1.7) xpath (0.1.4) nokogiri (~> 1.3) PLATFORMS ruby DEPENDENCIES authlogic (= 3.0.2) bcrypt-ruby capybara! chronic database_cleaner (= 0.5.2) haml heroku heroku_backup_task mocha rails (= 3.0.7) rails3-generators rspec rspec-rails (~> 2.4) selenium-client sqlite3-ruby txtlocal! webmock
这是因为您正在使用webmock。它阻止所有出站HTTP请求。
如果不需要,请将其从Gemfile中删除。如果确实需要它,则可能需要根据需要更精确地配置它:
https://github.com/bblimke/webmock