0

私は機械化を使用しており、スクリプト/コンソールを使用してレール環境でテストするときに継承に問題があります。

私がこのように書くとき:

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 オブジェクトがあります! /Library/Ruby/Gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/page.rb:77:in `parser' から nil.parse を評価中にエラーが発生しました

何か不足していますか?

前もって感謝します

4

1 に答える 1

2

WWW::Mechanize をサブクラス化すると、HTML パーサーが提供されません。これは、エラー行が実際に示していることです。

これは機能します:

class Agent < WWW::Mechanize
end
a = Agent.new
a.html_parser = Nokogiri::HTML
a.get 'http://www.google.com'
于 2010-03-03T19:04:44.720 に答える