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&token=AQAAKQiLWXNK30ZkH9-TplVYPCVEIJwNWgqFZCdFuOc3O5l1c7M1&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"])
这是控制器的代码,我正在尝试使用。
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&token=AQAAKQiLWXNK30ZkH9-TplVYPCVEIJwNWgqFZCdFuOc3O5l1c7M1&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"])