Rails Phantomjs, Poltergeist und Capybara spielen nicht gut zusammen

8

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.

    
Dave Collins 26.11.2012, 19:49
quelle

3 Antworten

11

Erstellen Sie einen sehr einfachen Test und sehen Sie, was passiert.

simple_spec.rb

%Vor%

Hat das ein Bild von Google?

    
theSociableme 27.11.2012, 14:43
quelle
6

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:

  1. Setze app_host und server_port für Capybara

    Capybara.app_host = 'http: //city.tulp.test: 3003'
     Capybara.server_port = 3003

  2. Hinzufügen einer Dummy-Domäne zu / etc / hosts

Hoffe, das hilft.

    
Eugene 05.12.2012 11:00
quelle
2

Vielleicht hilft es, wenn Sie den Treiber registrieren?

%Vor%     
Lichtamberg 26.11.2012 22:02
quelle