如何使用casperjs下载没有url的文件
How to download file without url using casperjs
我正在尝试使用casperjs下载csv文件,但我得到的却是html页面的代码。
我找不到事件处理程序,所以我不知道如何获得文件!下面是html代码和显示的图像,当它被点击,一个csv文件被下载。我在javascript文件中搜索,我没有找到任何与此图像相关的内容(例如,当图像被点击时调用的函数)
<p align=right>
<input type="image" name="ctl00$ExportCSV" id="ctl00_ExportCSV" title="Export data to CSV file" src="images/csv.png" style="border-width:0px;" />
</p>
我尝试了下面的代码,但没有成功!(
casper.on('resource.received', function(resource) {
if (resource.stage !== "end") {
console.log("resource.stage !== 'end'");
return;
}
if (resource.url.indexOf('ExportData.csv') > -1) {
console.log("Downloading csv file");
var fs = require('fs');
casper.download(resource.url, fs.workingDirectory+'/ExportData.csv');
}
});
下载文件有什么帮助吗?非常感谢!!
首先,casper.download()
的前两个参数为'String url'和'String target '。这里的'String target'是您希望下载的资源的名称,而不是您希望下载到的位置,因为您使用了fs,所以我假定您是这样解释它的。workingDirectory作为"字符串目标"的一部分。请参阅此处的casper.download()
示例,并仔细查看它。
此外,似乎在你发布的html代码中,你试图下载一个。png文件名csv.png,而不是一个实际的。csv文件-但这可能是我的误解。如果你想下载一个。png文件,请使用casper.captureSelector
。
我相信你正在尝试使用这个答案中的代码,所以我有最后一个建议来使你的代码工作。看起来您复制粘贴了代码,所以我必须确保:if (resource.url.indexOf('ExportData.csv') > -1) {
行仅在"ExportData.csv"实际上是您的资源名称时才会起作用。使用console.log( resource.header )
行来检查资源的名称。这个名字也应该是你的'String target '。
我希望这对你有帮助!
- 直接下载文件,而不是从window.open(url)
- CKFinder 3为所选文件返回错误的URL
- 将CSV文件从URL导入Node.js
- 如何从“”运行url;.js”;文件
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 如何使用javascript或jquery mobile从url读取和显示XML文件
- gcloud节点-我如何确保通过签名URL上传到谷歌云存储的文件是公开可读的
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- jqueryajax调用是复制url,当在模态视图之后在外部js文件中进行调用时
- 生成的excel文件url
- 如何在PHP中使用url保护我的图像和文件夹免受直接访问
- 如何使用phonegap从android中的URL下载文件
- 读取不带fs的txt文件nodejs(来自url)
- 检查蒸汽配置文件url是否有效
- ExtJS:从受保护的url创建JSB3文件
- 将 MVC 3 应用程序部署到 URL 文件夹已损坏 JavaScript 和内容路径
- 如何获取JSON URL文件并使其不断更新
- 获取远程加载图像的url's文件大小
- JS智能感知不工作的外部URL文件在VS2012
- ASP.. NET - windows . open (URL) -文件被缓存,我如何停止它