跳至主要内容

下载

简介

每当页面下载附件时,都会触发Page.Download事件。所有这些附件都会被下载到一个临时文件夹中。您可以通过事件中的Download对象获取下载URL、文件名以及有效载荷流。

您可以使用BrowserType.LaunchAsync()中的DownloadsPath选项来指定下载文件的存储位置。

note

下载的文件会在产生它们的浏览器上下文关闭时被删除。

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

// 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);

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

note

关于上传文件,请参阅uploading files部分。