cef3 模拟浏览器,点击下载文件时,需要判断文件是否下载完成,来继续下一步操作。
解决:重写 IDownloadHandler 接口
class DownloadHandler : IDownloadHandler { public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback) { if (!callback.IsDisposed) { using (callback) { DownCrawler.isDownload = false; //标识置为false,表示正在下载 string fileLocation = downloadItem.SuggestedFileName.Substring(0, downloadItem.SuggestedFileName.IndexOf(".")); //文件路径 Debug.WriteLine(fileLocation); callback.Continue(@"C:\Downloads\one\" + downloadItem.SuggestedFileName, showDialog: false); //设置文件存放路径 } } } public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) { //如果下载完成 if (downloadItem.IsComplete) { Debug.WriteLine("下载完成"); DownCrawler.isDownload = true; //标识置为true,表示下载完成 } } }
应用该重写接口
browser.DownloadHandler = new DownloadHandler();
然后在执行代码中 插入循环判断 下载标识 是否为true
while(!DownCrawler.isDownload){ Thread.Sleep(2000); }
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有