在Capybara的.closest()

man*_*els 7 jquery closest capybara

我想在黄瓜中找到最接近html元素的父级.就像jQuery的.closest()函数一样.

这是我的(伪)代码:

  aspect = find('.dropdown li:contains('+selector+')')
  dropdown = aspect.closest('.dropdown') #<-- the closest() function does not exist

  if not aspect.hasClass('.selected')
    dropdown.click
    sleep 1
    aspect.click
  end
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何使用Capybara完成这个任务?

干杯!

曼努埃尔

Jo *_*iss 2

这不是一个通用的解决方案,但如果您只想单击该元素,我建议直接使用 jQuery:

page.execute_script('$(...).closest(...).click()')
Run Code Online (Sandbox Code Playgroud)

除此之外,Capybara 没有 .closest 方法,但在许多情况下,对选择器更有创意(可能使用 XPath)可能会成功。