噩梦 JS 不工作
Nightmare JS not working
我知道问题的标题看起来很模糊!但仅此而已。
我在我的生产服务器上安装了 nodejs,它有 phantomjs 正常工作,然后我通过 npm install nightmare
安装了 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,对于我服务器上的一个页面,当我通过 运行 脚本 [=12] 时,该页面从未被调用=]
我有 CentOS 6.7,phantomjs 1.1
我还在使用最新版本的 phantomjs 的全新 CentOS 7 安装上测试了它,同样的事情。
我是否缺少某种先决条件?我该如何调试问题,因为 node script.js
没有给出任何输出
更新:显然问题是,nightmare 'instead of phantomjs' 使用的 electron 需要图形环境,这就是为什么它无法在我的环境中 运行。
新版本的 Nightmare 需要 electron
,而不是 PhantomsJs。确保 electron
命令在你的 $PATH 变量中。
安装电子
npm i -g electron-prebuilt
要调试:
DEBUG=nightmare* node script.js
看看这个 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
基于 Electron 的应用程序不应再崩溃
您也可以尝试在后台设置 electron
,而不实际显示任何 GUI。你检查这是否有效:
var nightmare = Nightmare({ show: false});
我知道问题的标题看起来很模糊!但仅此而已。
我在我的生产服务器上安装了 nodejs,它有 phantomjs 正常工作,然后我通过 npm install nightmare
安装了 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,对于我服务器上的一个页面,当我通过 运行 脚本 [=12] 时,该页面从未被调用=]
我有 CentOS 6.7,phantomjs 1.1 我还在使用最新版本的 phantomjs 的全新 CentOS 7 安装上测试了它,同样的事情。
我是否缺少某种先决条件?我该如何调试问题,因为 node script.js
没有给出任何输出
更新:显然问题是,nightmare 'instead of phantomjs' 使用的 electron 需要图形环境,这就是为什么它无法在我的环境中 运行。
新版本的 Nightmare 需要 electron
,而不是 PhantomsJs。确保 electron
命令在你的 $PATH 变量中。
安装电子
npm i -g electron-prebuilt
要调试:
DEBUG=nightmare* node script.js
看看这个 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
基于 Electron 的应用程序不应再崩溃
您也可以尝试在后台设置 electron
,而不实际显示任何 GUI。你检查这是否有效:
var nightmare = Nightmare({ show: false});