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

时间:2017-08-09 10:59:54

标签: ruby-on-rails ruby phantomjs watir-webdriver

所以这是控制器的代码,我试图使用它。

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

在视图页面上,我有&lt;%= @ divs.length%&gt;它输出0.当我输入&lt;%= browser.title%&gt;它在视图页面上给了我&#34; reddit:互联网的首页&#34;,所以我知道我从网页上得到了一些东西。

我发现div类&#34;标题可能是空白&#34;通过检查主页上某些帖子的标题,我尝试使用div类&#34;标题可能空白&#34;和&#34;标题可能是空白&#34;。一个是最后的空间,它在红色页面上检查时的显示方式以及最后没有空格的方式。两个都没有给我任何东西。

1 个答案:

答案 0 :(得分:4)

假设你正试图找到:

<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 ")

虽然这会返回结果,但可能不是您所期望的一切。在Watir中也不推荐支持String中的多个类。

我认为你真的只想:

@browser.links(class: "title")

如果您确实需要这两个课程,请使用:

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