Loops 迭代水豚中的项目
我有一个包含class.block的多个元素的页面。在Capybara中,我希望能够在完成操作之前循环并引用此类中的每个元素 然而,到目前为止,我尝试过的代码都不起作用。以下是我尝试过的:Loops 迭代水豚中的项目,loops,iteration,capybara,Loops,Iteration,Capybara,我有一个包含class.block的多个元素的页面。在Capybara中,我希望能够在完成操作之前循环并引用此类中的每个元素 然而,到目前为止,我尝试过的代码都不起作用。以下是我尝试过的: 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')
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
方法(请参阅)
使用类“block”输出每个元素的文本(即迭代)的示例如下:
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
谢谢我如何用它来指代第二个元素?我可以看到如何引用第一个元素,但在
页面之后没有任何其他元素。all
将返回匹配元素的数组,因此您可以使用标准数组方法。答案中增加了一个例子。嗨,贾斯汀,我是另一个有同样问题的人。尝试您用放置el.text
解释的第一种方法,但获得
。你知道为什么会这样吗?嗨,米克尔。我无法重现你的问题。你能打开一个新的问题,并包含一个示例html和代码来重现你的问题吗?