SO の投稿で行った手順をたどっているように見えます: Capybara, Poltergeist and Phantomjs で、 body に空の応答を返します。(必要に応じてこれを重複としてマークしてください。ただし、最小限のスタンドアロン テスト ケースとバージョン番号を含めています。)
質問
私は明らかに間違ったことをしていますか?問題の切り分けに役立つ可能性がある、実行できる別の最小限のテストはありますか?
ファイル: pgtest.rbrequire '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.jsvar 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 は正しく動作しているように見えます。