CefSharp documentcompleted

6

我正在尝试在C# WinForms中使用cefsharp浏览器,并需要知道如何确定页面何时完全加载以及如何获取浏览器文档并获取HTML元素。

我刚刚初始化了浏览器,但不知道接下来该做什么:

  public Form1()
        {


            InitializeComponent();
            Cef.Initialize(new CefSettings());
            browser = new ChromiumWebBrowser("http://google.com");
            BrowserContainer.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;

        }

1
阅读一般使用指南,Google CefSharp 一般使用。它在维基上。 - amaitland
2个回答

17

CefSharp有一个名为LoadingStateChanged的事件,其使用LoadingStateChangedArgs参数。

LoadingStateChangedArgs有一个叫做IsLoading的属性,用于指示页面是否仍在加载。

您可以像这样订阅它:

browser.LoadingStateChanged += OnLoadingStateChanged;

这种方法的样子应该是这样的:

private void OnLoadingStateChanged(object sender, LoadingStateChangedEventArgs args)
{
    if (!args.IsLoading)
    {
        // Page has finished loading, do whatever you want here
    }
}

我相信你可以像这样获取页面源代码:

string HTML = await browser.GetSourceAsync();

你可能需要掌握类似HtmlAgility这样的工具来解析它,由于这不是本主题所涵盖的内容,因此我不会进行介绍。


1
谢谢,这真的很有帮助。 - Brian dean

-1

我最终使用了:

using CefSharp;

wbAuthorization.AddressChanged += OnAddressChanged;

并且

private void OnAddressChanged(
    object s,
    AddressChangedEventArgs e)
{
    if (e.Address.StartsWith(EndUri))
    {
        ResultUri = new Uri(e.Address);
        this.DialogResult = DialogResult.OK;
    }
}

EndUri 是我想要检查的最终页面,而 ResultUri 包含了我以后想要提取的字符串。这只是一个更大类中的一些示例代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接