ruby - 使用 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 代码时,它会选择所有文本,包括跨度中的内容。我怎样才能得到文本“这是我想要的文本”,而没有跨度文本?
解决方案
如果您有更复杂的 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
推荐阅读
- html - 如何仅使用 css 隐藏/显示 div 或切换?
- java - java.util.logging.SimpleFormatter.format 线程阻塞的原因是什么?
- c# - 以这种方式编写代码是否缺少任何性能或安全优势?
- python - 从 IIS python CGI 脚本访问 UNC 共享
- python - 我如何改变我的情节,所以点的宽度也会变化 [-0.1:0.1]
- python - 使用 .to_csv() 写入 TXT 时替代跳过
- angular - 边界无效
- jsf - 仅当 url 是确切路径时才呈现 jsf 元素
- automation - 从哪里开始创建将在网站上执行任务的机器人
- android - 实时数据。无法分配给“值”:setter 受保护/*保护和打包*/ 用于合成扩展