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

问题描述:

所以这是我试图使用的控制器的代码。Watir-webdriver没有抓住指定的div,不知道为什么?

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的:在互联网的首页“,所以我知道我从网页上获得了一些东西。

通过检查主页上某些帖子的标题,我发现div类“标题可能为空”,并且我尝试过使用div类“标题可能为空”和“标题可能为空” 。最后一个空格,在reddit页面上进行检查时显示的内容,以及末尾没有空格的内容。两者都没有给我什么。

+1

您应该切换到 “的Watir” 而不是 “的Watir-的webdriver”。 Watir-Webdriver代码库已被弃用。这是更新现在在Watir发生。 –

+0

感谢您的建议!会做。 – ChrisWilson

假设你正在试图找到:

<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"]) 
+0

非常感谢你! – ChrisWilson

+0

我试图通过Watir文档之前试图解决我的问题,然后发布在*上,但似乎无法找到我的答案。难道我只需要看起来更难,或者你知道Watir有一个很好的教程吗? – ChrisWilson

+0

你可以试试我的书,[Watirways](https://leanpub.com/watirways/read#leanpub-auto-locating-an-element---basics)。这只是部分写的,有点过时,但这是一个起点。 –