跳至主要内容

下载

简介

对于页面下载的每个附件,都会发出 Page.Download 事件。所有这些附件都下载到一个临时文件夹中。您可以使用事件中的 Download 对象获取下载 URL、文件名和有效负载流。

您可以使用 DownloadsPath 选项在 BrowserType.LaunchAsync() 中指定要将下载的文件持久化到哪里。

注意

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

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

// Start the task of waiting for the download before clicking
var waitForDownloadTask = page.WaitForDownloadAsync();
await page.GetByText("Download file").ClickAsync();
var download = await waitForDownloadTask;

// Wait for the download process to complete and save the downloaded file somewhere
await download.SaveAsAsync("/path/to/save/at/" + download.SuggestedFilename);

变体

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

page.Download += (sender, download) => Console.WriteLine(download.Url);

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

注意

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