Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CefSharp documentcompleted

I am trying to use cefshar browser in C# winforms and need to know how I know when page completely loaded and how I can get browser document and get html elements,

I just Initialize the browser and don't know what I should do next:

  public Form1()
        {


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

        }
like image 262
Brian dean Avatar asked Feb 01 '17 16:02

Brian dean


1 Answers

CefSharp has a LoadingStateChanged event with LoadingStateChangedArgs.

LoadingStateChangedArgs has a property called IsLoading which indicates if the page is still loading.

You should be able to subscribe to it like this:

browser.LoadingStateChanged += OnLoadingStateChanged;

The method would look like this:

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

I believe you can get the page source like this:

string HTML = await browser.GetSourceAsync();

You'd probably need to get to grips with something like HtmlAgility to parse it, I'm not going to cover that as it's off topic.

like image 99
Equalsk Avatar answered Sep 22 '22 10:09

Equalsk