У меня есть скрипт Node, с которым я хочу использовать модуль child_process
, чтобы заставить сервер Selenium работать с GhostDriver PhantomJS.
Мне нужен модуль: Child = require "child_process"
А вот как я пытаюсь запустить сервер и привязать к нему GD (в Coffeescript):
@Selenium = new Child.exec "java -jar selenium/selenium-server-standalone-2.44.0.jar -role hub -port 4444", (error, stdout, stderr) =>
console.log stdout
console.log error if error
@PhantomJS = new Child.exec "phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://127.0.0.1:4444", (error, stdout, stderr) =>
console.log stdout
console.log error if error
stdout
для @PhantomJS
это:
PhantomJS is launching GhostDriver...
[ERROR - 2014-12-10T18:51:27.587Z] GhostDriver - main.fail - {"message":"Could not start Ghost Driver","line":82,"sourceId":4469911104,"sourceURL":":/ghostdriver/main.js","stack":"Error: Could not start Ghost Driver\n at :/ghostdriver/main.js:82","stackArray":[{"sourceURL":":/ghostdriver/main.js","line":82}]}
Кроме того, я получаю эту ошибку от этой команды: {"killed": false, "code": 1, "signal": null}
Некоторые примечания:
- Файл jar Selenium фактически находится по адресу selenium/selenium-server-standalone-2.44.0.jar.
- Я пробовал
npm update
ing просто посмотреть, будет ли это иметь значение - Мне пришло в голову, что что-то еще может работать на порту 4444, поэтому я пошел дальше и запустил
"PORT_NUMBER=4444 | lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill"
безрезультатно. - Я попытался установить PhantomJS из исходного кода в соответствии с этим предложением с той же ошибкой
- Если я запускаю эти команды отдельно, вне скрипта, все работает нормально