我们如何使用CasperJS实现基于浏览器的下载窗口的自动化

How can we automate browser based download window using CasperJS

本文关键字:浏览器 下载 窗口 自动化 何使用 CasperJS 实现 我们      更新时间:2023-09-26

我陷入了以下场景。场景是,在我的网页中,我有一些文件,我需要下载那个。当我点击下载按钮时,它会弹出下载窗口。以及如何自动化这件事。我正在使用CasperJS和SlimerJS。。。。下面是html代码

<ul class="dropdown-menu">
<li>
<li>
<li>
<li>
<a id="export_notebook_gist" href="#">Export Notebook to File</a>
</li>
<li>
<li>
<li>
<li>
</ul>
</ul>

您可以使用casper的下载函数从目标页面下载资源。您所要做的就是找到链接到下载按钮的资源url,并将其传递给casper的下载函数。

这是一个的例子

 //Download a PDF report
 casper.then(function() { 
    var fs  = require('fs'); 
    var dataurl = this.findElUrl('#_2a7a2a0a2a1a0a'); // This is a jQuery function that finds the PDF file's url.
    var file =  new Date().getTime() + '.pdf';
    var fileloc = apppath + 'reports/' + file;
    self.download(dataurl, fileloc); // will download PDF to the specified directory
});

查找PDF url的功能是

casper.findElUrl = function(selector){
var test = this.evaluate(function(selector) {
    return $(selector).data('url');
},selector);
return test;
}

顺便说一句,您必须使用casper的客户端脚本将jQuery注入到目标页面,如下所示。

var casper = require('casper').create({
pageSettings: {
    webSecurityEnabled: false,
    loadImages:  false,
    loadPlugins: false
},
clientScripts: ["./jquery.min.js"]
});

希望这能有所帮助。。