水豚与嵌套标签

时间:2012-09-03 14:08:17

标签: ruby nokogiri capybara

鉴于此HTML片段

<ul>
  <li>Product 1<span><a href="#">Remove</a></span></li>
  <li>Product 2<span><a href="#">Remove</a></span></li>
</ul>

将产品列表作为数组获取的简洁方法是什么?:

['Product 1', 'Product 2']

我想要li元素的文字而不是span标签的文字。


更新

这有效:

all('ul li').map{|e| e.native.children.first.text}

但可以改进吗?我并不热衷于使用'原生',因为它可能不适用于所有Capybara司机。

1 个答案:

答案 0 :(得分:1)

这应该这样做:

all(:xpath, '//ul/li/text()[1]').map(&:text)