Rails + Capybara:如何定位某一类的最后一个div?

时间:2014-05-30 15:23:23

标签: capybara

我有3个div,类variant_container。我如何选择最后一个以便我能够做到

within(last_variant_div) do
   ...
end

1 个答案:

答案 0 :(得分:0)

根据您的偏好,这里有两个解决方案。

使用XPath

XPath有一个last()函数来查找最后一个匹配节点。您可以在内部定位器中使用它:

within(:xpath, '(//div[@class="variant_container"])[last()]') do
  # do stuff
end

全部使用

within方法也可以传递给一个节点进行搜索。这意味着您可以按findall找到最后一个节点,这有时可以提供更大的灵活性。

例如,在这种情况下,我们现在可以使用CSS选择器来查找最后一个div(通过将其与Capybara的all方法相结合)。请注意,CSS选择器本身无法找到某个类的最后一个元素。

last_div = all('div.variant_container').last
within(last_div) do
  # do stuff
end