Watir-webdriver 没有抓取指定的 div,不知道为什么?

Watir-webdriver not grabbing the specified divs, and not sure why?

这是控制器的代码,我正在尝试使用。

class ScraperController < ApplicationController

  def getinformation
      require 'watir-webdriver'
      require 'phantomjs'

      @browser = Watir::Browser.new:phantomjs
      @browser.goto "http://reddit.com"
      @divs = @browser.divs(class: "title may-blank ")

  end

end

在视图页面上,我有 <%= @divs.length %> 并且它正在输出 0。当我在视图页面上键入 <%= browser.title %> 时,它会给我 "reddit: the front page of the internet",所以我知道我从网页上得到了一些东西。

我通过查看主页上一些帖子的标题找到了 div class "title may-blank ",我尝试使用 div class "title may-blank " 和 "title may-blank"。一种在末尾带有 space,当它在 reddit 页面上被检查时如何显示,另一种在末尾没有 space。两者都没有给我任何东西。

假设您要查找:

<a class="title may-blank outbound" data-event-action="title" href="https://i.redd.it/kxtpiskh9mez.jpg" tabindex="1" data-href-url="https://i.redd.it/kxtpiskh9mez.jpg" data-outbound-url="https://out.reddit.com/t3_6si8wj?url=https%3A%2F%2Fi.redd.it%2Fkxtpiskh9mez.jpg&amp;token=AQAAKQiLWXNK30ZkH9-TplVYPCVEIJwNWgqFZCdFuOc3O5l1c7M1&amp;app_name=reddit.com" data-outbound-expiration="1502283817000" rel="">Fries</a>

问题是元素是 a 而不是 div。您至少需要做:

@browser.links(class: "title may-blank ")

虽然这会 return 结果,但可能并非您所期望的一切。在 String 中支持多个 类 也在 Watir 中被弃用。

我想你真的想要:

@browser.links(class: "title")

如果您确实需要两者 类,请使用:

@browser.links(class: ["title", "may-blank"])