【发布时间】:2020-11-16 06:33:55
【问题描述】:
我正在尝试使用 Watir 编写一个可以按计划运行的网络爬虫。
我的模块名为PriceScraperModule,但它没有加载。我收到此错误:
NameError (uninitialized constant PriceScraperModule::Watir)
我的模块看起来像:
module PriceScraperModule
def self.scrape
browser = Watir::Browser.new
end
end
我的 Gemfile 包括:
gem 'watir'
gem 'webdrivers'
当我尝试要求它时,它也不起作用:
module PriceScraperModule
require 'watir'
def self.scrape
browser = Watir::Browser.new
end
end
我收到此错误:
LoadError (cannot load such file -- watir)
我该怎么办?
【问题讨论】:
-
这看起来很像 gem 在您的 Gemfile 中,但实际上并没有安装。当您运行
bundle info watir时,响应是什么?如果显示“找不到...”,请运行bundle install并再试一次。 -
尝试评论这一行`需要'watir'`,因为它是宝石所以不需要这一行。
-
@KamalPanhwar,你的这个假设是基于什么?如果此代码不是通过 Rails 调用的,则需要手动 require gem。 require 引发错误而不只是返回 false 的事实告诉我们系统上没有安装 gem。
-
我已经检查了代码并且没有错误,所以我想也许在 Rails 中他要求提供错误!
-
@KamalPanhwar 这就是我第一次尝试时所做的。它没有 require 行。
标签: ruby-on-rails ruby watir rails-api webdrivers-gem