我有一个 Node 脚本,我想使用该child_process
模块来让Selenium服务器与 PhantomJS 的GhostDriver 一起运行。
我需要模块:
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}
一些注意事项:
- Selenium jar 文件实际上位于 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到同样的错误
- 如果我在脚本之外单独运行这些命令,一切正常