我们如何使用CasperJS实现基于浏览器的下载窗口的自动化
How can we automate browser based download window using CasperJS
我陷入了以下场景。场景是,在我的网页中,我有一些文件,我需要下载那个。当我点击下载按钮时,它会弹出下载窗口。以及如何自动化这件事。我正在使用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"]
});
希望这能有所帮助。。
相关文章:
- 通过Android Chrome浏览器下载文件
- 强制web浏览器下载整个页面内容
- 当浏览器下载所需的文件时,GIF 在初始屏幕中缓慢制作动画
- 响应式设计:这个Javascript会导致浏览器下载两个图像吗?
- 浏览器下载 JSON 结果,而不是传递回脚本
- 如何支持从所有浏览器下载mp3
- 拖动文件以在火狐浏览器下载
- 使用javascript获取浏览器下载路径
- 如何将内存流调用到浏览器下载
- 在加载网站时访问浏览器下载的资产
- 在html5中,我可以强制浏览器下载音频文件I'我在用
- 使用wcf从服务器获取文件并在客户端浏览器下载
- 如何强制浏览器下载并缓存当前未显示在页面上的图像
- 如何让web浏览器下载存储在JavaScript字符串中的文件
- 浏览器下载状态
- 无法使用jquery从chrome浏览器下载.xls文件
- 提示浏览器下载对话框
- 使用浏览器下载队列中的多个文件
- 强制浏览器下载Html页面,而不是呈现它
- 是否有可能在浏览器下载页面时显示Twitter引导进度条?