【问题标题】:CefSharp Chromium page loading never completesCefSharp Chromium 页面加载永远不会完成
【发布时间】:2019-04-09 12:26:08
【问题描述】:

我需要我的 ChromiumWebBrowser 来加载 URL 数组中的所有页面,在每个页面上执行 javascript,然后下载它们的源代码。我写了一段代码:

            ChromiumWebBrowser[] chromium = new ChromiumWebBrowser[offersLinks.Count()];                     
            for(int i = 0; i < offersLinks.Count(); ++i)
            {
                Debug.WriteLine("Page " + (i + 1) + "/" + offersLinks.Count());
                chromium[i] = new ChromiumWebBrowser(offersLinks[i]);
                chromium[i].FrameLoadEnd += async (sender, args) =>
                {
                    //Wait for the MainFrame to finish loading
                    if (args.Frame.IsMain)
                    {
                        Debug.WriteLine("Loaded.");
                        if (chromium[i].CanExecuteJavascriptInMainFrame)
                        {
                            JavascriptResponse response = await chromium[i].EvaluateScriptAsync(javascript);

                            if (response.Result != null)
                            {
                                Debug.WriteLine(response.Message);
                            }
                        }

                        chromium[i].ViewSource();
                        string html = await chromium[i].GetSourceAsync();
                    }
                };
            }

但是,出于某种原因,FrameLoadEnd 回调中的代码永远不会执行。能给我解释一下吗?

【问题讨论】:

  • 是否需要调用 ChromiumWebBrowser 对象来实际加载 offerLinks[i] URL 的方法?除非页面从未加载,否则我看不出没有调用事件处理程序的任何原因。
  • @alec 页面应该在 costructor 中加载,在设置 URL 之后。
  • 你是对的,但看起来它没有 100% 地加载传递给构造函数的 URL 的问题。 “某些情况下的 WinForms 解决方法无法加载传递给 ChromiumWebBrowser 构造函数的 URL(#2234(注释)中的初始详细信息已在 821a44f 中恢复,因为问题似乎已解决。”您能否尝试使用 URL 显式调用 Load 方法在构造 ChromiumWebBrowser 对象后查看行为是否有任何不同?
  • @alec,我已经试过了,可惜没用。
  • 您在使用 CefSharp.OffScreen 吗?您不能像上面的示例代码那样使用 WPF 或 WinForms 版本

标签: c# asynchronous async-await cefsharp


【解决方案1】:

如果您不需要UI,最好使用CefSharp.OffScreen

CefSharpWPFWinForms 版本在附加到 UI 之前不会开始加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    相关资源
    最近更新 更多