下载
简介
每当页面下载附件时,都会触发page.on('download')事件。所有这些附件都会被下载到一个临时文件夹中。您可以通过事件中的Download对象获取下载URL、文件名和有效负载流。
您可以使用browserType.launch()中的downloadsPath选项来指定下载文件的存储位置。
note
下载的文件会在产生它们的浏览器上下文关闭时被删除。
以下是处理文件下载的最简单方法:
// 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));
请注意,处理该事件会分叉控制流,使脚本更难以跟踪。由于您的主控制流未等待此操作完成,您的场景可能会在下载文件时结束。
note
关于上传文件,请参阅uploading files部分。