我需要SlimerJS的一些帮助。基本上我的程序需要定期从stdin获取输入来完成下一个任务。
如果从外部输入读取,以下代码适用于PhantomJS + CasperJS,但在SlimerJS + CasperJS中无法执行相同操作。
some code ...
var nextLink = system.stdin.readLine();
some code ...
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
feature request on GitHub documentation中缺少stdin
属性,这显然不受支持。
主要有两种可行的解决方法。这两个都要求您使用您选择的语言编写第二个程序(可以是PhantomJS脚本)。
当您在CasperJS脚本中找到需要输入的点时,您会多次读取预定义文件,直到其中包含某些内容。所以当你看到CasperJS就在这时你执行第二个程序。该程序可能是一个简单的命令,如
echo my text > predefinedFile.txt
或更精细的东西。 CasperJS中的轮询功能是这样的:
function poll(){
var content = fs.read(predefinedFile).trim();
if (!content) {
this.wait(1000, poll);
} else {
// do something sensible
}
}
//....
casper.then(poll);
当作为CasperJS脚本运行时,可以使用webserver module向SlimerJS发送消息。第二个程序需要发送实际请求。