1

私は初めてカピバラを試していて、自分のフォームを見つけるのに苦労していました. Rspec、Capybara、Rails 3.2.8、および Twitter Bootstrap を使用しています。

私のテストでは、次のことがありました。

before do
  choose  "Residential"
  choose  "Storage"
  fill_in "Customer Location",  with: 30082
  fill_in "datepicker",         with: 2012-12-02
  fill_in "Email",              with: "jesse@test.com"
  fill_in "Phone",              with: "555-555-5555"
 end

そして、エラーが発生していました:

Failure/Error: choose  "Residential"
   Capybara::ElementNotFound:
     cannot choose field, no radio button with id, name, or label 'Residential' found

私のフォームでは、(抜粋):

    <%= quote.radio_button :customer_type, "Residential"%>
    <%= quote.label "Residential", class:"radio inline" %>

サーバーを起動すると、フォームが表示され、フォーム要素に関連付けられた「Residential」という名前のラベルがあることが Firebug によって示されました。

問題を検索し、この投稿を見つけた後:カピバラがフォーム要素を見つけられない(とりわけ)、なぜそれが機能していないのかわかりませんでした。

4

1 に答える 1

1

最終的に、Capybara の Rubydocs ( http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions ) に戻り、「Choose」メソッドに関するセクションを見つけました。

ドキュメントを深く掘り下げることはしませんでしたが、:radio_button で「ロケーター」を探していることがわかったので、直接関連付けてみました。

したがって、フォームを次のように変更しました(フォーム要素に「id」を追加したことに注意してください):

    <%= quote.radio_button :customer_type, "Residential", id:"Residential"%>
    <%= quote.label "Residential", class:"radio inline" %>

そして、テストのその部分は合格しました! 各フォーム要素で繰り返し、すべてが期待どおりに実行されました.

これが他の誰かに役立つことを願っています。

于 2012-10-31T19:14:14.150 に答える