首页 > 解决方案 > 使用 Waitr 从文本中排除内容

问题描述

瓦提尔

mytext =browser.element(:xpath => '//*[@id="gold"]/div[1]/h1').text

html

<h1>
 This is the text I want
 <span> I do not want this text </span>
</h1>

当我运行我的 Watir 代码时,它会选择所有文本,包括跨度中的内容。我怎样才能得到文本“这是我想要的文本”,而没有跨度文本?

标签: rubywatir

解决方案


如果您有更复杂的 HTML,我发现使用 Nokogiri 可以更轻松地处理这个问题,因为它提供了更多解析 HTML 的方法:

require 'nokogiri'

h1 = browser.element(:xpath => '//*[@id="gold"]/div[1]/h1')
doc = Nokogiri::HTML.fragment(h1.html)
mytext = doc.at('h1').children.select(&:text?).map(&:text).join.strip 

推荐阅读