下载
简介
对于页面下载的每个附件,都会发出 Page.Download 事件。所有这些附件都下载到临时文件夹中。您可以使用事件中的 Download 对象获取下载 URL、文件名和有效负载流。
您可以使用 BrowserType.LaunchAsync() 中的 DownloadsPath 选项来指定下载文件的持久化位置。
注意
下载的文件会在产生它们的浏览器上下文关闭时被删除。
这是处理文件下载的最简单方法
// 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);
请注意,处理事件会分叉控制流,使脚本更难理解。你的主控制流可能没有等待此操作解析,因此你的场景可能在下载文件时结束。
注意
有关上传文件,请参阅上传文件部分。