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
allmethod (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.allreturns an array of matching elements. So if you just want the second matching element, you can do: