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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie einen einfachen test und sehen, was passiert.
simple_spec.rb
Nicht, dass Sie ein Bild von Google?
Ich hatte das gleiche problem, aber in meinem Fall war es durch die Verwendung von subdomains. Poltergeist auf die verwiesen wurde, bedeutungslos url (Art "http://spb.:22789") so erhält er nichts, aber "about:blank".
Um dieses Problem zu lösen habe ich folgende:
Set app_host und server_port für Capybara
Capybara.app_host = 'http://city.tulp.test:3003'
Capybara.server_port = 3003
Hinzufügen von dummy-domain in /etc/hosts
Hoffe, das hilft.
Vielleicht hilft es, wenn Sie den Treiber registrieren?
r
fürcurrent_driver