我有包含类.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 )。
与类“块”输出每个元素的文本(即迭代)的一个例子是:
page.all(:css, '.block').each do |el|
puts el.text
end
page.all
返回匹配元件的阵列。 所以,如果你只是想第二匹配部件,你可以这样做:
page.all(:css, '.block')[1] #Note that it is 0-based index