1

私はRSpec(v2.11.0)でCapybara(v2.0.1)を使用しており、READMEの例と非常によく似た仕様を持っています。

require 'capybara/rspec'
require 'capybara/dsl'

# other setup…

describe "Sign in" do
  include Capybara::DSL

  before do
    within("#session") do
      fill_in 'Login', :with => 'user@example.com'
      fill_in 'Password', :with => 'password'
    end
    click_link 'Sign in!'
  end

  subject { page }
  it { should have_content "logged_in? true" }
end

残念ながら、これは私が見る失敗メッセージです:

失敗/エラー:within( "#session")do
Capybara :: ElementNotFound:
css"#session"が見つかりません

ただし、使用されているソースの出力は表示されません。また、そのリンクをクリックするとリダイレクトが発生するため、何をチェックしているのかを確認したいと思います。

また、私がいくつかの場所で試しwarn page.inspectたが出力には何もなかったので、Capybaraは警告(私は非常に率直に言って迷惑だと思う)を抑制しているようです。

誰かが私にこれを行う方法を教えてもらえますか?与えられた助けや洞察は大歓迎です。

RailsやCucumberを使用していないことを追加する必要があります。

4

4 に答える 4

4

テストの開始時に次の行を追加するだけです。

puts "#{page.html.inspect}"

コマンドラインですべてに目を通さなければなりませんが、それは迅速で汚いです。

于 2013-03-31T22:50:08.920 に答える
2

capybarasave_and_open_pageは html をアプリの tmp ディレクトリに書き込み、既定のブラウザーで開きます。

最近のカピバラの readme のセクションのデバッグ セクションに記載されています。

于 2014-10-13T19:29:02.837 に答える
1

私は Selenium のライブ デバッガーとして irb を使用しているため、進行状況を追うことができます。Capybara/Selenium で発生する奇妙さをデバッグするのに非常に役立ちます。

于 2013-04-02T13:29:24.147 に答える
0

page.html を使用すると、ソース全体を表示できます。そこから #session の最初の一致を確認することで、簡単に調べることができます。

于 2012-12-10T01:35:52.327 に答える