如何使用CasperJS读取文件中的实时更改

时间:2016-02-23 14:41:28

标签: javascript file-io phantomjs casperjs

我试图让我的CasperJS脚本读取外部txt文件(abc.txt),并且需要在CasperJS过程中创建abc.txt。

(并且abc.txt必须使用' curl'为某些第三方api创建,所以我调用了一个子进程来更新旧的abc.txt。)

然而,abc.txt中的信息似乎锁定在乞讨中,我是否更改了信息或删除整个文件并不重要。

有没有人知道CasperJS是否可以更具互动性? 或者如果我需要更改整个脚本的任何建议?

(我试图从网站A获得一个问题,然后去网站B找到答案,然后在网站A中提交答案)

Content-type

1 个答案:

答案 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();