我在 github 上找到了这个:https ://github.com/gr2m/phantomjs-console
但这有点疯狂,必须将命令写入文件中,仅在一行上,然后读取和删除,并且输出在终端中。
我想要一个像...这样的控制台
$ phantomjs --console
phantom> console.log(typeof $)
[Object Function]
phantom> console.log("happy days")
happy days
phantom>
有这样的吗?
编辑:开始理解他们为什么以如此疯狂的方式做到这一点......
来自 PhantomJS-Node:https ://github.com/sgentle/phantomjs-node
不,真的,它是如何工作的?
我会用一个问题来回答这个问题。如何与不支持共享内存、套接字、FIFO 或标准输入的进程通信?
好吧,PhantomJS 确实支持一件事,那就是打开网页。事实上,它真的很擅长打开网页。因此,我们通过启动 ExpressJS 的实例、在子进程中打开 Phantom 并将其指向将 socket.io 消息转换为
alert()
调用的特殊网页来与 PhantomJS 通信。这些alert()
电话被 Phantom 接听,然后就可以了!通信本身是通过 James Halliday 出色的dnode 库进行的,幸运的是,当与 browserify 结合使用时,它运行良好, 可以直接在 PhantomJS 的 pidgin Javascript 环境中运行。
如果你想破解幻影,请做!您可以使用 cake test 或 npm test 运行测试,并使用 cake build 重建咖啡脚本/浏览器代码。你可能需要
npm install -g coffeescript
蛋糕才能工作。