Rails 3.1.2 プロジェクト (mac OS X) で作業して、PhantomJS を適切にインストールしました (次のようなコードを実行でき、完全に動作し、ページのタイトルを正確に取得し、正確なスクリーンショットを保存します)。
try_phantom.coffee
page = require('webpage').create()
page.open 'http://localhost:5000/parties/onetestparty', (status) ->
title = page.evaluate -> document.title
console.log "Title: #{title}"
page.render './log/javascript_screenshot.png'
phantom.exit()
ただし、次のようにrspecでカピバラ/ポルターガイストを使用しようとすると:
spec_helper.rb
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
次に、javascript を必要とする呼び出しで仕様を使用します。
party_spec.rb
it "should allow a simple screenshot", js: true do
visit "/"
page.driver.render('./log/screen_Home.png', :full => true)
end
私のJavaScriptがレンダリングされているようには見えず、スクリーンショットも常に空白です!
デバッガーを試してみましたが、空白の HTML ページ (head タグと body タグが空の HTML のみ) が表示されるようです。
問題は、カピバラとポルターガイストの間のインターフェース、または(可能性が高い)ポルターガイストとファントムジスのいずれかであると確信しています。関連する gem のバージョンは次のとおりです。
capybara 1.1.3
capybara-webkit 0.13.0
ポルターガイスト 1.0.2 phantomjs
は 1.7.0
さらにトラブルシューティングする方法がわからない...どんな助けでも大歓迎です。