这是我正在尝试使用的控制器的代码。
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类"title may-blank“,并且我尝试使用div类"title may-blank”和"title may-blank“。一个是在最后有空格的,当它在reddit页面上被检查时它是如何显示的,另一个是没有空格的。但两者都没有给我任何帮助。
发布于 2017-08-09 12:18:21
假设您正在尝试查找:
<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&token=AQAAKQiLWXNK30ZkH9-TplVYPCVEIJwNWgqFZCdFuOc3O5l1c7M1&app_name=reddit.com" data-outbound-expiration="1502283817000" rel="">Fries</a>
问题是元素是a
而不是div
。您至少需要做以下工作:
@browser.links(class: "title may-blank ")
虽然这将返回结果,但它可能不是您期望的所有结果。在一个String
中支持多个类在Watir中也被弃用了。
我想你实际上只是想:
@browser.links(class: "title")
如果您确实需要这两个类,请使用:
@browser.links(class: ["title", "may-blank"])
https://stackoverflow.com/questions/45588826
复制相似问题