我想做查找class_name
并返回所有元素中的最后一个元素。
在 jquery 中,我们可以编写类似下面的内容,但在 capybara 中似乎不起作用
find(".delete:last")
如果您使用的是webkit
驱动程序,您可以编写类似 -
find(".delete:last-child")
在水豚中,您可以使用以下方法获取最后一个元素 -
all(:css, ".delete").last
上面有什么替代方案吗?
我想做查找class_name
并返回所有元素中的最后一个元素。
在 jquery 中,我们可以编写类似下面的内容,但在 capybara 中似乎不起作用
find(".delete:last")
如果您使用的是webkit
驱动程序,您可以编写类似 -
find(".delete:last-child")
在水豚中,您可以使用以下方法获取最后一个元素 -
all(:css, ".delete").last
上面有什么替代方案吗?
我遇到了同样的问题,最终在 Capybara 2.4 中使用了这种方法
all('.delete').last
基于@Sharagoz 的回答和@tgf 关于所有(与 find 不同)不等待异步完成的评论,这种组合似乎对我有用:
wait_for_ajax
all('.selector').last
将此添加到 rspec/capybara:
module RspecFeatureHelpers
def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop do
active = page.evaluate_script('jQuery.active')
break if active == 0
end
end
end
end