6

http://ruby.railstutorial.org/chapters/static-pagesでRubyonRailsチュートリアルをフォローしていますが、次のエラーが発生しました

 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)'

私のGemファイルは次のとおりです

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

このエラーを取り除き、rspecを渡すにはどうすればよいですか?ソースファイル

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
4

4 に答える 4

4

ページが正しくレンダリングされないエラーが発生している可能性があります。

ヘルプのためにいくつかのデバッグ機能を使用してください:

  • リクエストスペック内で、puts page.htmlスペック中にページコンテンツを印刷するために使用します。
  • ログファイルを追跡する(log / test.log)

./spec/requests/static_pages_spec.rbソースを表示していただけますか?

于 2012-05-15T19:22:57.570 に答える
4

おそらく問題はwebratgem+ capybara gemにあり、gemfileからwebratを削除してみてください。

この問題を確認してください

于 2012-05-23T23:04:21.437 に答える
3

この行で問題が発生する可能性が最も高いと思います。

visit '/static_pages/home'

「rakeroutes」を実行してパス名を見つけ、そのうちの1つを使用します。たとえば、「home」という名前のルートがある場合は、次を使用します。

home_pathにアクセス

必要なパスが存在しない場合は、config/routes.rbに追加します。

于 2013-06-10T21:44:33.087 に答える
0

今日は同じエラーが発生しましたが、ケースが異なります。( )に含めinclude Capybara::DSLました。spec_helper.rbrails_helper.rb

次に、スペックを実行すると、警告が表示されincluding Capybara::DSL in the global scope is not recommended!ます。しかし、いくつかのテストで私は得Capybara::ElementNotFound: Unable to find xpath "/html"ました。

私はRSpec.configureブロックに含める必要がありました。

RSpec.configure do |config|
  config.include Capybara::DSL
end
于 2015-05-26T06:40:57.877 に答える