Skip to main content

下载

对于页面下载的每个附件,都会发出 page.on('download') 事件。所有这些附件都下载到临时文件夹中。您可以从事件中使用 Download 对象获取下载 URL、文件系统路径和负载流。

您可以使用 browserType.launch([options]) 中的 downloadsPath 选项指定下载文件的持久化位置。

note

当生成下载文件的浏览器上下文关闭时,下载的文件将被删除。

这是处理文件下载的最简单方法:

const [ download ] = await Promise.all([
// 开始等待下载
page.waitForEvent('download'),
// 执行启动下载的操作
page.locator('button#delayed-download').click(),
]);
// 等待下载过程完成
console.log(await download.path());
// 将下载的文件保存到某处
await download.saveAs('/path/to/save/download/at.txt');

变体

如果您不知道是什么启动了下载,您仍然可以处理该事件:

page.on('download', download => download.path().then(console.log));

请注意,处理事件会分叉控制流,并使脚本更难遵循。您的场景可能会在您下载文件时结束,因为您的主控制流没有等待此操作解析。

note

有关上传文件,请参阅 上传文件 部分。