2017-02-25 12 views
0

数字フィールドがあり、"Add to Cart"と表示された後にボタンで:product_quantityが表示されます。私のテストは、number_fieldを調整せずに動作しますが、私は、この行のコメントを解除する場合:Capybaraで番号フィールドを記入することは可能ですか?

product_from_shop.fill_in 'quantity', with: 5

スタッフが吹くまで。 Capybara::ElementNotFound

それは私の見解では、この行についてです:

<%= f.number_field :product_quantity, value: booking.product_quantity, min: 1, max: 999, title: 'quantity' %>

私もクラスやIDを検索、いくつかのアプローチを試してみました。非仕事。ラベルがない、それは私の意見を混乱させるだろう。

titleは、フォームなしで正常に動作します。

また、JSを使用しているので、私はcapybaraウェブキットを使用しています。

+1

'product_from_shop'とは何ですか、要素の実際のHTMLは何ですか、あなたが得る完全なエラーメッセージは何ですか –

答えて

1

fill_inを使用しています要素、送信、画像、ラジオ、チェックボックス、またはファイルを除く。これらの要素は、id、name、placeholder属性、または関連するラベル要素のテキストで検索されます。関連するラベルがないので、ID、名前、またはプレースホルダーの属性になります。

product_from_shop.fill_in '<something>_product_quantity', with: 5 

その後、product_from_shopは、ページ上のラッパー要素であると仮定すると、あなたがスコープにこのfill_inを使用していることを見つけるとidによって要素FILL_IN必要があります - (ただ、実際見ためのフォームが何であるかのモデルタイプによって異なりますどのようなIDが割り当てられているかを確認するHTML)。

製品の数量フィールドのみ入力可能なフィールドである場合には内部のあなたも、それらのどれもがあなたのために動作しません場合は、あなたが

product_from_shop.find(<more complicated query>).set '5' 

のようなものを使用して移動することができ

product_from_shop.fill_in with: 5 # same as product_from_shop.fill_in nil, with: 5 

を行うことができproduct_from_shop titleについてのあなたのコメントを明確にするために - titleの属性は、リンクとボタンを見つける際にのみ一致します。

+0

右に!私は中間のものと一緒に行きました。私は実際にIDを使用することができたことに気付きましたが、ページに複数の製品が表示されていることを考えれば、それは奇妙です。私が後の段階で差別化する必要があるなら、私はいつもこれをいくつかの部門でラップすることができます。ありがとう! –

0

これはRailsでform_forを使用していると仮定すると、使用できるIDを生成しているはずです。私は通常、pageを使用し、product_from_shop.fill_inフォームに精通していないですが、これらのいずれかを試してみてください。目に見える入力またはテキストエリアの面積がありますfillable_fieldセレクター:

page.fill_in :product_from_shop_product_quantity, with: 5 

または

page.fill_in "product_from_shop_product_quantity", with: 5 
関連する問題