Ruby机械化和继承问题

时间:2010-03-03 16:34:12

标签: ruby-on-rails ruby mechanize

我正在使用mechanize并在使用脚本/控制台在rails环境中进行测试时遇到继承问题。

当我写这样的时候:

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
agent.get 'http://www.google.com'

一切正常。但是当我尝试像这样创建一个WWW :: Mechanize的子类时:

require 'rubygems'
require 'mechanize'

class Alfa < WWW::Mechanize; end

agent = Alfa.new
agent.get 'http://www.google.com'

我收到以下错误:

NoMethodError:当你没想到它时,你有一个零对象! 评估nil.parse时发生错误     来自/Library/Ruby/Gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/page.rb:77:in`s parser'

我错过了什么吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

当你继承WWW :: Mechanize时,没有提供HTML解析器:这就是错误行实际告诉你的。

这有效:

class Agent < WWW::Mechanize
end
a = Agent.new
a.html_parser = Nokogiri::HTML
a.get 'http://www.google.com'