跳到主要内容

下载

介绍

页面下载的每个附件都会触发 Page.onDownload(handler) 事件。所有这些附件都下载到一个临时文件夹中。您可以使用事件中的 下载 对象获取下载 url、文件名和有效载荷流。

您可以使用 BrowserType.launch() 中的 setDownloadsPath 选项指定下载文件的持久化位置。

注意

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

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

// Wait for the download to start
Download download = page.waitForDownload(() -> {
// Perform the action that initiates download
page.getByText("Download file").click();
});

// Wait for the download process to complete and save the downloaded file somewhere
download.saveAs(Paths.get("/path/to/save/at/", download.suggestedFilename()));

变体

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

page.onDownload(download -> System.out.println(download.path()));

请注意,处理该事件会分叉控制流,使得脚本更难跟踪。由于您的主控制流未等待此操作解析,您的场景可能会在您下载文件时结束。

注意

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