0

スペックを実行すると、ラベルなどに基づいてカピバラが要素を見つけることができなかったというエラーが発生します。次に、HTMLが必要だと思った、または何らかの形でエラーをデバッグしました。

これは /features/merge.feature です

#Just a test!
Scenario: Cannot merge articles when not admin
    Given I am not an admin
    When I am on the edit article page
    Then I should not see the "merge articles" form

これは /feature/step_definitions/merge.rb です - そしてそれは "与えられた" ステートメントだけを含んでいます!

Given /am not an admin$/ do
  visit '/accounts/login'
  puts "TEZT"
  puts page.native
  puts page.native.text
  fill_in 'user_login', :with => 'editor_rico'
  fill_in 'user_password', :with => 'a'
  click_button 'Login'
end

Given /^I am an admin$/ do
  visit '/accounts/login'
  fill_in 'user_login', :with => 'admin_rico'
  fill_in 'user_password', :with => 'a'
  click_button 'Login'
end

次に、次のエラーが表示されます。

Scenario: Cannot merge articles when not admin    
# features/article_merging.feature:20
Given I am not an admin                 
#features/step_definitions/article_steps.rb:39
cannot fill in, no text field, text area or password field with id, name, or label
'user_login' found (Capybara::ElementNotFound)
(eval):2:in `fill_in'
./features/step_definitions/article_steps.rb:44:in `/am not an admin$/'
features/article_merging.feature:21:in `Given I am not an admin'

ここでCucumberを扱うのは大変です..

1)なぜ私は上記を得るのですか

2) どうすればデバッグできますか? HTML コードを見たいです!

4

3 に答える 3

3

このエラーは、ページの HTMLに name、id、または label の要素inputまたは要素が含まれていない場合に表示されます。Gemfile に gem を追加すると、ページがどのように見えるかを確認できます。textarea'user_login'launchy

あなたのGemfile

group :test do
  gem 'launchy'
  gem 'capybara'
  ...
end

次に、feature/step_definitions/merge.rbファイル内で次のようにします。

Given /^I am not an admin$/ do
  visit '/accounts/login'
  save_and_open_page
end

save_and_open_pageブラウザで現在のページを開くので、HTML を調べて、それがどのように見えるかを確認できます。

それが役に立てば幸い!:)

于 2013-03-16T17:26:21.627 に答える
1

上記のコードの問題は、セクションを終了するまで「ページ」が利用できないことだと思います。

「プット」を「いつ」または「その後」のステップに入れてみてください

次のようにページをクエリできます(RSpecを使用していると仮定します)

page.should have_content 'foo'
page.should have_selector 'h1', text: => 'Hello dave'

お役に立てれば

于 2013-03-16T13:14:02.250 に答える