跳到主要内容

下载

介绍

页面下载的每个附件都会触发 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));

请注意,处理事件会分叉控制流,使脚本难以跟踪。您的场景可能在文件下载完成之前就结束了,因为您的主要控制流没有等待此操作完成。

注意

有关文件上传,请参阅上传文件章节。