I've got a page containing multiple elements of class .block. In Capybara, I want to be able to loop through and refer to each of the elements with this class before completing an action.
However, none of the code I've tried so far has worked. Here's what I've tried:
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
Any ideas?
You want to use the
all
method (see http://rubydoc.info/github/jnicklas/capybara/Capybara/Node/Finders#all-instance_method).An example of outputting the text of each element (ie iterating) with class 'block' would be:
page.all
returns an array of matching elements. So if you just want the second matching element, you can do: