梦魇JS不工作

时间:2016-04-19 13:01:12

标签: javascript node.js phantomjs browser-automation nightmare

我知道问题的标题看起来很模糊!但就是这样。

我在我的生产服务器上安装了nodejs,其中phantomjs工作正常,然后我通过npm install nightmare安装了恶梦,我可以在node_modules中看到它,我尝试了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)
  })

没有发生任何事情,脚本没有输出任何内容,我将脚本简化为一个简单的单一goto,对于我服务器上的页面,当我通过node file.js

运行脚本时从未调用过该页面

我有CentOS 6.7,phantomjs 1.1 我还在最新版本的phantomjs的全新CentOS 7安装上进行了测试,同样的事情。

我错过了某种先决条件或什么?如何调试问题,因为node script.js没有提供任何输出

更新:显然问题是,噩梦'而不是幻影'所使用的电子需要图形环境,这就是它无法在我的环境中运行的原因。

3 个答案:

答案 0 :(得分:6)

梦魇的新版本需要electron,而非PhantomsJs。确保{PATM}变量中包含electron命令。

安装电子

npm i -g electron-prebuilt

要调试:

DEBUG=nightmare* node script.js

答案 1 :(得分:1)

看看这个Dockerfile:https://github.com/aheuermann/docker-electron/blob/master/7/Dockerfile

这是您需要的最小库。并开始编写脚本:

Xvfb -ac -screen scrn 1280x2000x24 :9.0 &
export DISPLAY=:9.0
DEBUG=* node src/index.js

基于电子的应用程序不应该再崩溃

答案 2 :(得分:0)

您也可以尝试在后台设置await而不实际显示任何GUI。你检查一下是否有效:

electron