Capibara, Poltergeist y Phantomjs y dando una respuesta vacía en el cuerpo

Estoy recibiendo un documento vacío de phantomjs. Estoy tratando de usar Capybara y Poltergeist para configurar el controlador phantomjs para Capybara.

Creé un módulo de la siguiente manera y lo incluí en el archivo que usa las necesidades para conectarse.

require 'capybara/poltergeist'

  module Parser
    module JSParser
      include Capybara

      # Create a new PhantomJS session in Capybara
      def new_session
        # Register PhantomJS (aka poltergeist) as the driver to use
        Capybara.register_driver :poltergeist do |app|
          Capybara::Poltergeist::Driver.new(app, :debug => true)
        end

        # Use XPath as the default selector for the find method
        Capybara.default_selector = :xpath
        Capybara.javascript_driver = :poltergeist
        Capybara.current_driver = :poltergeist
        # Start up a new thread
        @session = Capybara::Session.new(:poltergeist)

        # Report using a particular user agent
        @session.driver.headers = { 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X)' }

        # Return the driver's session
        @session
      end

      # Returns the current session's page
      def html
        @session.html
      end

    end
  end

Luego, cargando la página de la siguiente manera:

class Loader
  include Parser::JSParser

  def load_page
    new_session
    visit "http://www.smashingmagazine.com"
    #let phantomjs take its time
    sleep 5
    puts "html=#{html}"  
  end
end

Entonces, finalmente, llamando a la página de carga.

Loader.new.load_page

Aquí está la respuesta de depuración de poltergeist

poltergeist [1364758785355] state default -> loading
{"response"=>true}
{"name"=>"visit", "args"=>["http://www.smashingmagazine.com"]}
poltergeist [1364758794574] state loading -> default
{"response"=>{"status"=>"success"}}
{"name"=>"body", "args"=>[]}
{"response"=>"<html><head></head><body></body></html>"}

Como puede ver, la respuesta es solo un documento en blanco con solo las etiquetas html, head y body, pero nada en la etiqueta body.

¿Qué mal estoy haciendo? Al observar el tráfico de la red, recibo la respuesta completa del host (smashingmagazine.com en este caso). Es después de que vuelve la respuesta que no sé lo que está sucediendo. A veces los phantomjs también se estrellan y en otras ocasiones, pasa con el cuerpo vacío. Esta es la última línea que se imprime en STDERR cuando se bloquea phantomjs

PhantomJS client died while processing {"name":"visit","args":["http://www.smashingmagazine.com"]}

Respuestas a la pregunta(3)

Su respuesta a la pregunta