想象一下像
这样的剧本system = require "system"
system.stdout.write "What's your name? "
name = system.stdin.readLine()
system.stdout.writeLine "Hello, #{name}"
通过
运行casperjs name.coffee
我希望能够在用于运行脚本的终端中与用户进行交互,但是我陷入了readLine()调用。
答案 0 :(得分:2)
正如GarethOwen指出的那样,确实是可能的。
这是Unix命令cat
的一个非常基本的CasperJS实现:
var system = require('system'),
casper = require('casper').create();
while (!system.stdin.atEnd()) {
var line = system.stdin.readLine();
casper.log(line);
}
casper.exit();
请注意,此模块主要使用C ++实现: https://github.com/ariya/phantomjs/blob/master/src/system.h
而stdin
/ stdout
/ stderr
是PhantomJs类File
的实例:
https://github.com/ariya/phantomjs/blob/master/src/filesystem.h
答案 1 :(得分:1)
根据文档,phantomJS可以与标准输入进行通信。见这个例子:
https://github.com/ariya/phantomjs/blob/master/examples/stdin-stdout-stderr.js
有关进程间通信的文档在这里:
https://github.com/ariya/phantomjs/wiki/Inter-Process-Communication
但我自己从未尝试过。