关于puppeteer解决headless-chrome 无法下载文件的问题
程序员文章站
2022-05-15 13:40:32
...
项目场景:
puppeteer通过headless chrome 下载文件失败
问题描述:
我想通过puppeteer nodejs 写一些脚本,然后通过服务调用他,结果发现一切运行正常,但是文件无法下载,最后发现是浏览器问题,浏览器无头模式下一般无法下载文件,但是这是我必要的步骤
解决方案:
最后解决方案是在,自定义函数,这里的downloadPath需要你自己定义,
@Override
function setDownloadBehavior(page,downloadPath){
return page._client.send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath
});
}
这是我的案例(nodejs部分代码):
@Override
let downloadPath='C:\\Users\\Lenovo\\Downloads';
await setDownloadBehavior(page,downloadPath);
try{
const freightPolicyLongId = await page.$eval('#freightPolicyLongId', el => el.value);
await page.evaluate((insureno1,freightPolicyLongId)=>{
$.ajax({
type: 'post',
async: false,
url: 'signPolicy!pdfDianZiPolicy.action',
data: 'longNo='+insureno1
success: function (message) {
if(message.indexOf('ECA00001') > 0 ){//有下载权限,可以下载
var url = message;
window.open(url, '_self', '');
return true;
}else{//没有下载权限,不能下载
}
}
}
);
},insureno1)
}catch(e){
}
function setDownloadBehavior(page,downloadPath){
return page._client.send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath
});
}
上一篇: 关于docker 拉取文件出错问题的解决