Кошмар JS не работает
Я знаю, что название вопроса выглядит очень расплывчато! Но это все.
Я установил 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)
})
Ничего не произошло, скрипт ничего не выводил, я упростил скрипт до простого однократного перехода, для страницы на моем сервере эта страница никогда не вызывалась, когда я запускал скрипт через node file.js
У меня есть CentOS 6.7, phantomjs 1.1 Я также протестировал его на новой установке CentOS 7 с последней версией phantomjs, тоже самое.
Я пропускаю какое-то обязательное условие или что-то? Как мне решить проблему с node script.js
не дает никакого выхода
ОБНОВЛЕНИЕ: Очевидно, проблема в том, что электрон, который используется кошмаром "вместо фантомов", требует графической среды, поэтому он не работает в моей среде.
3 ответа
Новая версия Nightmare требует electron
Не фантомы Удостовериться 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
в фоновом режиме, без отображения графического интерфейса. Вы проверяете, работает ли это:
var nightmare = Nightmare({ show: false});