what tutorial rails ruby-on-rails ruby rspec capybara gemfile

ruby-on-rails - tutorial - selenium rails



Capybara:: ElementNotFound: no se puede encontrar xpath "/ html" (4)

Estoy siguiendo el tutorial de Ruby on Rails en http://ruby.railstutorial.org/chapters/static-pages y encontré el siguiente error

StaticPages Home page should have the content ''Sample App'' Failure/Error: page.should have_content(''Sample App'') Capybara::ElementNotFound: Unable to find xpath "/html" # (eval):2:in `text'' # ./spec/requests/static_pages_spec.rb:7:in `(root)''

Mi archivo Gema es el siguiente

source ''http://rubygems.org'' gem ''rails'', ''3.0.10'' gem ''jruby-openssl'' gem ''activerecord-jdbcsqlite3-adapter'' group :development, :test do gem ''webrat'' gem ''rspec-rails'', ">= 2.10.0" gem ''capybara'', ">= 1.1.2" end

¿Cómo me deshago de este error y paso el rspec? El archivo fuente

require ''spec_helper'' describe "StaticPages" do describe "Home page" do it "should have the content ''Sample App''" do visit ''/static_pages/home'' # puts page.html page.should have_content(''Sample App'') end end end


Es posible que tenga un error que impida que la página se represente correctamente.

Use algunas instalaciones de depuración para obtener ayuda:

  • Dentro de su especificación de solicitud, utilice puts page.html para imprimir el contenido de la página durante su especificación.
  • rastrear los archivos de registro (log / test.log)

¿Podría mostrar su fuente ./spec/requests/static_pages_spec.rb?


Tal vez el problema sea con la gema webrat gem + capybara, intente y elimine webrat de su gemfile.

revisa este problema


Supongo que el problema es más probable con esta línea:

visit ''/static_pages/home''

Ejecute ''rutas de rake'' para descubrir los nombres de ruta y use uno de ellos. Por ejemplo, si tiene una ruta llamada ''hogar'', use:

visita home_path

Si la ruta que desea no existe, agréguela a config / routes.rb.


Hoy tuve el mismo error pero con un caso diferente. spec_helper.rb include Capybara::DSL en spec_helper.rb ( rails_helper.rb ).

Luego, cuando ejecuto las especificaciones, aparece silenciosamente una advertencia que including Capybara::DSL in the global scope is not recommended! . pero en alguna prueba obtuve Capybara::ElementNotFound: Unable to find xpath "/html" .

Tuve que incluir en el bloque RSpec.configure .

RSpec.configure do |config| config.include Capybara::DSL end