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.
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