如何在CasperJS中保存按钮单击触发的文件?

时间:2016-08-31 23:30:44

标签: javascript phantomjs casperjs

我正在尝试下载由日期范围填充的日志,因此我填写了包含所需日期的表单,然后单击“#34;导出呼叫日志”#34;按钮它只是在常规浏览器中自动触发CSV文件下载。

如何保存在点击'时应自动触发的文件?使用Casper的相同按钮?

casper.then(function(){
    console.log("Filling out form and getting CSV");
    this.evaluate(function(){
        document.getElementsByName("startdate")[0].value="08/30/2016";
        document.getElementsByName("enddate")[0].value="08/30/2016";
        document.getElementsByName("s1")[0].click();
    });
});

按钮HTML如下:

<td><input type="submit" name="s1" value="Export Call Logs"></td>

另外,作为附注,显然我不想手动输入日期,有点在某种程度上打败程序的点,我对Pyhon最熟悉,是他们的某种等同于DateTime模块或者我可以使用Casper获取前几天的日期并作为Var存储相应的输入?即今天的日期是2016年8月31日我想输入前一天,08/30/2016。

编辑: 尝试实施以下评论的example

casper.then(function(){
    console.log("Filling out form and getting CSV");
    this.page.onFileDownload = function(status){console.log("onFileDownload(' + status + ')");
    return "downloadedfile.csv"; };
    this.evaluate(function(){
        document.getElementsByName("startdate")[0].value="08/30/2016";
        document.getElementsByName("enddate")[0].value="08/30/2016";
        document.getElementsByName("s1")[0].click();
    });
});

1 个答案:

答案 0 :(得分:0)

您可以尝试下载()功能,您可以找到更多信息here

example