6

SO の投稿で行った手順をたどっているように見えます: Capybara, Poltergeist and Phantomjs で、 body に空の応答を返します。(必要に応じてこれを重複としてマークしてください。ただし、最小限のスタンドアロン テスト ケースとバージョン番号を含めています。)

質問

私は明らかに間違ったことをしていますか?問題の切り分けに役立つ可能性がある、実行できる別の最小限のテストはありますか?

ファイル: pgtest.rb
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

module PGTest
  include Capybara::DSL
  extend self

  def test
    Capybara.register_driver :poltergeist do |app|
      Capybara::Poltergeist::Driver.new(app)
    end

    Capybara.current_driver = :poltergeist
    session = Capybara::Session.new(:poltergeist)

    visit "http://www.google.com"
    sleep 5
    puts session.html
  end
end

PGTest.test

次のように呼び出すと、空のページが出力されます。

$ ruby pgtest.rb
<html><head></head><body></body></html>

環境

  • OS X 10.8.5 (12F45)
  • ルビー 2.0.0p247 (2013-06-27) [x86_64-darwin12.4.0]
  • ファントムjs 1.9.2
  • カピバラ (2.1.0)
  • ポルターガイスト (1.4.1)

ファントムジスの解消

www.google.com から html を抽出する phantomjs を使用できることに注意してください。

ファイル: pjs_dump.js
var page = require('webpage').create();
page.open("http://www.google.com", function () {
    var html = page.evaluate(function () {
        return document.documentElement.outerHTML;
    });
    console.log(html);
    phantom.exit();
});

「phantomjs pjs_dump.js」を実行すると、www.google.com からの html が出力されるため、phantomjs は正しく動作しているように見えます。

4

2 に答える 2