下载
简介
对于页面下载的每个附件,都会发出 page.on('download') 事件。所有这些附件都下载到临时文件夹中。您可以使用事件中的 Download 对象获取下载 url、文件名和有效负载流。
您可以使用 downloadsPath 选项在 browserType.launch() 中指定持久化下载文件的位置。
注意
当生成下载文件的浏览器上下文关闭时,下载的文件将被删除。
以下是处理文件下载的最简单方法
// Start waiting for download before clicking. Note no await.
const downloadPromise = page.waitForEvent('download');
await page.getByText('Download file').click();
const download = await downloadPromise;
// Wait for the download process to complete and save the downloaded file somewhere.
await download.saveAs('/path/to/save/at/' + download.suggestedFilename());
变体
如果您不知道是什么启动了下载,您仍然可以处理该事件
page.on('download', download => download.path().then(console.log));
请注意,处理事件会fork控制流,并使脚本更难跟踪。您的场景可能会在您下载文件时结束,因为您的主控制流没有等待此操作完成。
注意
有关上传文件,请参阅上传文件部分。