2016-04-19 101 views
3

我知道这个问题的标题看起来很模糊!但这就是它。梦魇JS不工作

我安装我的生产服务器,其中有phantomjs正常工作,然后我通过npm install nightmare安装的噩梦,我可以看到它在node_modules上的NodeJS,我试图通过开发GitHub上列出的例子:

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

没有任何事情发生,脚本没有输出任何东西,我简化了脚本到一个简单的单个转到,我的服务器上的页面,当我通过脚本运行时从未调用页面node file.js

我有CentOS 6.7,phantomjs 1.1我也在新的CentOS上测试过它7安装与最新版本的phantomjs,同样的事情。

我是否缺少某种先决条件?如何调试的问题,因为node script.js不给任何输出

更新:显然,问题是,电子,用于通过噩梦“而不是phantomjs的”需要一个图形环境,这就是为什么它不能运行我的环境。

回答

4

新版本的梦魇需要electron,而不是PhantomsJs。确保electron命令在您的$ PATH变量中。

安装电子

npm i -g electron-prebuilt

要调试:

DEBUG=nightmare* node script.js

+0

谢谢你,我还以为你的答案后,起初它,COS显然本来应该的原因,我在全球安装了电子预建的,我遇到了一些依赖错误,当我我试图运行电子,我安装了所需的库,但噩梦仍然无法正常工作,我试过'NODE_DEBUG =噩梦节点script.js'仍然没有输出 同样运行'电子'也不给我任何输出,I尝试'电子--help',不知道它是否接受这个参数,但无论如何不输出 –

+1

尝试'DEBUG = nightmare * node script.js',看起来像库使用'debug'模块,而不是内置的调试日志 – hassansin

+0

谢谢,那显示了错误,也许我已经得到了一些东西g,我是否需要有一个GUI环境才能运行?它需要X11运行吗?因为它需要的一个库属于X11我认为'libgtk-x11',我得到错误:'电子子进程退出代码1:一般错误 - 您可能需要xvfb'。 –

0

您也可以尝试设置electron在后台实际上不显示任何GUI。你检查一下,如果这个工程:

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

你尝试过吗? – Tebe