2016-04-19 20 views
3

Ich weiß, dass der Titel der Frage sehr vage aussieht! Aber das ist da.Nightmare JS funktioniert nicht

ich NodeJS auf meinem Produktions-Server installiert, der PhantomJS ordnungsgemäß funktioniert hatte, dann installierte ich Alptraum über npm install nightmare, ich habe es in node_modules sehen können, habe ich versucht, das Beispiel von den Entwicklern auf GitHub aufgeführt:

var Nightmare = require('nightmare'); 
var nightmare = Nightmare({ show: true }) 

nightmare 
    .goto('http://yahoo.com') 
    .type('input[title="Search"]', 'github nightmare') 
    .click('#uh-search-button') 
    .wait('#main') 
    .evaluate(function() { 
    return document.querySelector('#main .searchCenterMiddle li a').href 
    }) 
    .end() 
    .then(function (result) { 
    console.log(result) 
    }) 

Es ist nichts passiert, das Skript hat nichts ausgegeben, ich habe das Skript zu einem einfachen einzigen Goto vereinfacht, für eine Seite auf meinem Server wurde die Seite nie aufgerufen, als ich das Skript über Ich habe CentOS 6.7, phantomjs 1.1 Ich habe es auch auf einem frischen CentOS getestet 7 Installation mit der neuesten Version von Phantomjs, die gleiche Sache.

Fehle ich irgendeine Art von Voraussetzung oder etwas? Wie Debuggen ich das Problem, da node script.js ist keine Ausgabe

UPDATE geben: Offenbar ist das Problem, Elektron, das von Alptraum verwendet wird ‚statt PhantomJS‘ erfordert eine grafische Umgebung, weshalb scheitert es läuft in meine Umgebung.

Antwort

4

Neue Version von Nightmare erfordert electron, Not PhantomsJs. Stellen Sie sicher, dass electron Befehl in Ihrer $ PATH-Variable ist.

Installieren Electron

npm i -g electron-prebuilt

Debug:

DEBUG=nightmare* node script.js

+0

Danke, ich dachte, dass es zunächst nach Ihrer Antwort war, cos offensichtlich, dass sollte der Grund gewesen sein, ich installiert elektronen prebuilt global, lief ich in einige Abhängigkeitsfehler, wenn ich versuchte, Elektron zu laufen, ich installierte die benötigten Bibliotheken, aber Albtraum funktioniert immer noch nicht, ich versuchte 'NODE_DEBUG = Albtraumknoten script.js' immer noch keine Ausgabe Auch läuft' electron' gibt mir keine Ausgabe auch, ich versucht 'electron --help', nicht sicher, ob es dieses Argument akzeptiert, aber egal wie keine Ausgabe –

+1

Versuchen Sie' DEBUG = Albtraum * Knoten script.js', sieht aus wie die Bibliothek '' debug' Modul verwendet, nicht das integrierte Debuglog – hassansin

+0

Danke, das hat den Fehler gezeigt, vielleicht habe ich etwas wron Muss ich eine GUI-Umgebung haben, damit dies ausgeführt werden kann? Muss X11 ausgeführt werden? Da eine der benötigten Bibliotheken zu X11 gehörte, denke ich 'libgtk-x11', bekomme ich den Fehler: 'electron child process mit Code 1 beendet: Allgemeiner Fehler - Sie benötigen möglicherweise xvfb'. –

0

Sie können auch electron im Hintergrund zu setzen versuchen, ohne tatsächlich jede GUI zeigt. Sie überprüfen, ob das funktioniert:

var nightmare = Nightmare({ show: false}); 
+0

hast du es versucht? – Tebe