欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于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
                    });
                }
相关标签: 程序人生