2010-03-03 68 views
0

我正在使用机械化,并在使用脚本/控制台在rails环境中测试时遇到继承问题。Ruby机械化和继承的问题

当我写这样的:

require 'rubygems' 
require 'mechanize' 

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

,一切工作正常。但是,当我尝试创建WWW的子类::机械化这样的:

require 'rubygems' 
require 'mechanize' 

class Alfa < WWW::Mechanize; end 

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

我得到以下错误:

NoMethodError:你有一个零对象时,你没想到吧!而从/Library/Ruby/Gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/page.rb:77:in'解析器”

上午我评估nil.parse 发生 错误遗漏了什么?提前

+0

你真的试图挖掘到机械化源在上述页面,看看那里有什么? – 2010-03-03 16:35:53

+0

是的,我一直在寻找了一段时间的代码,但我猜我必须做一些额外的有关子分类。 – thiagobrandam 2010-03-03 16:45:04

+0

您是否试图将您的“Alfa”类放入与Mechanize相同的名称空间? – Aurril 2010-03-03 17:46:14

回答

2

当你继承WWW ::机械化

谢谢,不用了HTML解析器提供:那是什么错误行实际上告诉了你。

这工作:

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

感谢我,BLIS,我还以为是由底层Page类自动完成这些设置步骤。 – thiagobrandam 2010-03-03 20:45:35