跳到主要内容

下载

简介

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

你可以使用 BrowserType.LaunchAsync() 中的 DownloadsPath 选项指定将下载的文件保存到何处。

备注

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

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

// 在点击之前启动等待下载的任务
var waitForDownloadTask = page.WaitForDownloadAsync();
await page.GetByText("Download file").ClickAsync();
var download = await waitForDownloadTask;

// 等待下载过程完成,并将下载的文件保存到某个位置
await download.SaveAsAsync("/path/to/save/at/" + download.SuggestedFilename);

变体

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

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

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

备注

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