鉴于此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司机。
答案 0 :(得分:1)
这应该这样做:
all(:xpath, '//ul/li/text()[1]').map(&:text)