Schienen Phantomjs, poltergeist, und Capybara-spielen nicht gut zusammen

Arbeiten in einer rails 3.1.2 Projekt (mac OS X), habe ich PhantomJS richtig installiert (ich kann code ausführen, wie die folgenden, und es funktioniert perfekt, genau das grabben der Titel der Seite und speichern Sie eine genaue Abbildung)

try_phantom.Kaffee

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()

Jedoch, wenn ich versuche zu verwenden capybara/poltergeist in rspec wie folgt:

spec_helper.rb

require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist

und dann mit einer Skillung mit einem Aufruf, die javascript erfordern:

parties_spec.rb

        it "should allow a simple screenshot", js: true do
            visit "/"
            page.driver.render('./log/screen_Home.png', :full => true)
        end

Es scheint nicht, dass mein javascript gerendert wird, und auch der screenshot ist immer leer!

Habe ich versucht, den debugger, das scheint aber auch eine leere HTML-Seite (nur html mit leeren Kopf und Körper-tags)

Ich bin mir ziemlich sicher, das problem ist entweder die Schnittstelle zwischen capybara und poltergeist oder (wahrscheinlicher) poltergeist und phantomjs. Hier sind die Versionen der jeweiligen Edelsteine:

capybara 1.1.3

capybara-webkit-0.13.0

poltergeist 1.0.2

phantomjs ist 1.7.0

Nicht sicher, wie Sie Sie beheben weiter... Jede Hilfe wäre sehr geschätzt.

  • Hinweis: Eine Sache habe ich auch schon versucht sagt poltergeist explizit, wo mein phantomjs gefunden werden kann: :phantomjs => "/usr/local/Cellar/phantomjs/1.7.0/bin/phantomjs". Das ändert nichts an dem Ergebnis... Aber ich denke, es beweist, dass phantomjs IST eigentlich immer laufen, denn wenn ich ihm einen falschen Weg, bekomme ich eine Fehlermeldung.
InformationsquelleAutor Dave Collins | 2012-11-26
Schreibe einen Kommentar