I test if my WebBrowser is completed with:
webBrowser2.DocumentCompleted += (s, e) =>
{
// Do stuff
}
The webpage I am accessing as tons of JS files and iframes and stuff, so I use the below function to make sure it's the actual page that's completed loading.
webBrowser2.DocumentCompleted += (s, e) =>
{
if (e.Url.AbsolutePath != (s as WebBrowser).Url.AbsolutePath)
{
return;
}
// Do stuff
}
However, it still doesn't appear to be working. Am I doing something wrong or is this syntactically correct and there's some other error in my code?
I use this (from an answer on SO to a similar question):
void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
return;
//The page has finished loading.
}
DocumentComplete
may get fired multiple times for many reasons (frames, ajax, etc). At the same time, for a particular document, window.onload
event will be fired only once. So, perhaps, you can do your processing upon window.onload
. I just answered a related question on how that can be done.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With