クラス.blockの複数の要素を含むページがあります。カピバラでは、アクションを完了する前に、このクラスの各要素をループして参照できるようにしたいと思います。
ただし、これまでに試したコードはどれも機能しませんでした。これが私が試したことです:
within('.block:nth-child(1)') do
find('.Button').click
end
page.find('.block').all.first.find('Button').click
page.find('.block').all[1].find('Button').click
何か案は?
all
メソッドを使用します( http://rubydoc.info/github/jnicklas/capybara/Capybara/Node/Finders#all-instance_method を参照)。
クラス 'block'を使用して各要素のテキストを出力する(つまり反復する)例は次のとおりです。
page.all(:css, '.block').each do |el|
puts el.text
end
page.all
一致する要素の配列を返します。したがって、2番目の一致する要素だけが必要な場合は、次のことができます。
page.all(:css, '.block')[1] #Note that it is 0-based index