下载
简介
对于页面下载的每个附件,都会发出 Page.onDownload(handler) 事件。所有这些附件都下载到一个临时文件夹中。您可以使用事件中的 Download 对象获取下载 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()));
请注意,处理事件会分叉控制流并使脚本更难以理解。由于您的主控制流不会等待此操作解决,因此您的场景可能会在您下载文件时结束。
注意
有关上传文件,请参阅 上传文件 部分。