Skip to main content

Download

Download 对象通过 page.on('download') 事件由页面分发。

属于浏览器上下文的所有下载文件在浏览器上下文关闭时会被删除。

下载事件在下载开始时触发。下载路径在下载完成后可用:

// 注意 Promise.all 可防止点击和等待下载之间的竞争条件。
const [ download ] = await Promise.all([
// 在点击之前调用 waitForEvent 以设置等待很重要。
page.waitForEvent('download'),
// 触发下载。
page.getByText('Download file').click(),
]);
// 等待下载完成
const path = await download.path();

download.cancel()

Added in: v1.13

取消下载。如果下载已完成或已取消,则不会失败。成功取消后,download.failure() 将解析为 'canceled'

download.createReadStream()

Added in: v1.8

返回当前下载的可读流,如果下载失败则返回 null

download.delete()

Added in: v1.8

删除下载的文件。如有必要,将等待下载完成。

download.failure()

Added in: v1.8

如果有下载错误则返回。如有必要,将等待下载完成。

download.page()

Added in: v1.12

获取下载所属的页面。

download.path()

Added in: v1.8

在成功下载的情况下返回下载文件的路径。如有必要,该方法将等待下载完成。远程连接时该方法会抛出异常。

请注意,下载的文件名是随机 GUID,使用 download.suggestedFilename() 获取建议的文件名。

download.saveAs(path)

Added in: v1.8

将下载复制到用户指定的路径。在下载仍在进行时调用此方法是安全的。如有必要,将等待下载完成。

download.suggestedFilename()

Added in: v1.8

返回此下载的建议文件名。它通常由浏览器从 Content-Disposition 响应头或 download 属性计算得出。请参阅 whatwg 上的规范。不同的浏览器可以使用不同的逻辑来计算它。

download.url()

Added in: v1.8

返回下载的 url。