我试图让我的CasperJS脚本读取外部txt文件(abc.txt),并且需要在CasperJS过程中创建abc.txt。
(并且abc.txt必须使用' curl'为某些第三方api创建,所以我调用了一个子进程来更新旧的abc.txt。)
然而,abc.txt中的信息似乎锁定在乞讨中,我是否更改了信息或删除整个文件并不重要。
有没有人知道CasperJS是否可以更具互动性? 或者如果我需要更改整个脚本的任何建议?
(我试图从网站A获得一个问题,然后去网站B找到答案,然后在网站A中提交答案)
Content-type
答案 0 :(得分:1)
如果data.txt的内容发生变化,在执行脚本期间,这对包含该文件内容副本的变量没有任何影响。字符串值和文件内容之间永远不会有直接连接。
如果要刷新字符串内容,则需要再次读取该文件:
data = fs.read('abc.txt');
如果您需要等待更改文件,则可以定期读取文件内容以查看它们是否同时更改。这可以通过casper.waitFor()
:
var casper = require('casper').create();
var fs = require('fs');
var data = fs.read('abc.txt');
var newData;
casper.start();
casper.waitFor(function _check(){
newData = fs.read('abc.txt');
return data !== newData;
});
casper.wait(1000); // additional wait to make sure that the file writing has finished
casper.then(function (){
console.log(newData);
});
casper.run();