ruby-on-rails - 如何使用 Nokogiri 和 at_css 获取 img src

标签 ruby-on-rails ruby ruby-on-rails-4 nokogiri

我正在尝试获取一段 HTML 的 src 值。我特别尝试使用 at_css 而不是使用 XPath 来实现这一点。

到目前为止,我得到的只是 nil 或空字符串。

这是 HTML:

<div class="" id="imageProductContainer">
  <a id="idLinkProductMainImage" href='URL'>
    <img id="productMainImage" src="SRC.jpg" alt="alt" title="A Title" align="left" class="product_image_productpage_main selectorgadget_selected">
  </a>  
</div>

我的代码是:

item = page.doc.at_css("#productMainImage img").text.strip unless page.doc.at_css("#productMainImage img").nil?

puts item #prints blank
item = item["src"]
puts item #prints blank

page.doc 是 Nokogiri HTML 元素。

最佳答案

如果你需要src属性,你可以这样做:

pace.doc.at_css('#idLinkProductMainImage img').attr('src')

此外,我认为问题在于您获取 img 标记的方式。您正在尝试获取 #productMainImage 中的所有 img 标签,但此 id 是图像本身,因此它什么也找不到。

如果您使用链接 ID #idLinkProductMainImage,那么您有一个 img 标签可以在其中进行搜索。

关于ruby-on-rails - 如何使用 Nokogiri 和 at_css 获取 img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760751/

相关文章:

ruby-on-rails - Rails 测验应用程序的正确模型关联

ruby - 从另一个线程在 ruby​​ 的主线程上执行代码?

ruby-on-rails - 将最新帖子显示为 Rails 根页面

ruby-on-rails - 为什么这个赋值和每个循环只返回 1 个属性而不是我期望的整个对象?

html - active_link_to 列表项在非事件 CSS img 按钮时消失

ruby-on-rails - 为什么我从 Flash 上传到 Rails 和 attachment_fu 不起作用(它与内容类型有关)?

ruby-on-rails - NameError:未初始化的常量 Rails::TestTask

ruby-on-rails - Rails activerecord LIKE AND 子句错误

ruby - 跨浏览器共享 sinatra 应用程序中的 session

javascript - HTML select 中所选项目发生更改时如何处理事件