Wenn ich in einem 3.1.2 Projekt von rails (Mac OS X) arbeite, habe ich PhantomJS richtig installiert (ich kann Code wie den folgenden ausführen und es funktioniert perfekt , den Titel der Seite und den Inhalt korrekt abgreifend Speichern eines genauen Screenshots)
try_phantom.coffee
%Vor%Wenn ich jedoch versuche, capybara / poltergeist in rspec wie folgt zu verwenden:
spec_helper.rb
%Vor%und dann eine Spezifikation mit einem Aufruf verwenden, der javascript erfordert:
partys_spec.rb
%Vor%Es scheint nicht, dass mein Javascript gerendert wird, und auch der Screenshot ist immer leer!
Ich habe versucht, den Debugger, aber das scheint auch eine leere HTML-Seite (nur HTML mit leeren Kopf-und Body-Tags)
Ich bin mir ziemlich sicher, dass das Problem entweder die Schnittstelle zwischen Capybara und Poltergeist oder (wahrscheinlicher) Poltergeist und Phantomjs ist. Hier sind die Versionen der relevanten Edelsteine:
Capybara 1.1.3
capybara-webkit 0.13.0
Poltergeist 1.0.2
phantomjs ist 1.7.0
Ich bin mir nicht sicher, wie ich weiter nach Fehlern suchen könnte ... Jede Hilfe wäre willkommen.
Erstellen Sie einen sehr einfachen Test und sehen Sie, was passiert.
simple_spec.rb
%Vor%Hat das ein Bild von Google?
Ich hatte das gleiche Problem, aber in meinem Fall wurde es durch die Verwendung von Subdomains verursacht. Poltergeist wurde auf sinnlose URL (Art von "http://spb.:22789") hingewiesen, so dass es nichts als "ungefähr: leer" erhält.
Um dieses Problem zu lösen, habe ich folgendes getan:
Setze app_host und server_port für Capybara
Capybara.app_host = 'http: //city.tulp.test: 3003'
Capybara.server_port = 3003
Hinzufügen einer Dummy-Domäne zu / etc / hosts
Hoffe, das hilft.
Tags und Links ruby-on-rails-3 capybara phantomjs poltergeist rspec-rails