DotNetBrowser FinishLoadingFrameEvent 多次使用
DotNetBrowser FinishLoadingFrameEvent multiple use
我正在尝试使用 DotNetBrowser 加载多个页面,每次加载新 url 时我都需要知道,
myBro.FinishLoadingFrameEvent += delegate (object send, FinishLoadingEventArgs es)
{
if (es.IsMainFrame && es.ValidatedURL.Contains("login"))
{
DOMDocument document = myBro.GetDocument();
DOMElement user = document.GetElementById("LoginForm_login");
user.SetAttribute("value", "email");
DOMElement pass = document.GetElementById("LoginForm_password");
pass.SetAttribute("value", "pass");
DOMElement loginbtn = document.GetElementByTagName("button");
loginbtn.Click();
// can't add nothing more here //
};
但此代码仅在加载第一页时才会通知我
网页上加载的每个框架都会触发 FinishLoadingFrameEvent
,即使在重新加载页面之后也是如此。您可以多次使用它,以便在调用 LoadURL
方法后浏览器完全加载网页时收到通知。
这是基于文档文章 https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110055-loading-url-synchronously 的示例代码:
ManualResetEvent waitEvent = new ManualResetEvent(false);
browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
{
// Wait until main document of the web page is loaded completely.
if (e.IsMainFrame)
{
waitEvent.Set();
}
};
//Load URL
browser.LoadURL("http://www.google.com");
waitEvent.WaitOne();
//The page http://www.google.com is now loaded completely
//Then, reset the event and load the next URL
waitEvent.Reset();
browser.LoadURL("http://www.microsoft.com");
waitEvent.WaitOne();
//The page http://www.microsoft.com is now loaded completely
我正在尝试使用 DotNetBrowser 加载多个页面,每次加载新 url 时我都需要知道,
myBro.FinishLoadingFrameEvent += delegate (object send, FinishLoadingEventArgs es)
{
if (es.IsMainFrame && es.ValidatedURL.Contains("login"))
{
DOMDocument document = myBro.GetDocument();
DOMElement user = document.GetElementById("LoginForm_login");
user.SetAttribute("value", "email");
DOMElement pass = document.GetElementById("LoginForm_password");
pass.SetAttribute("value", "pass");
DOMElement loginbtn = document.GetElementByTagName("button");
loginbtn.Click();
// can't add nothing more here //
};
但此代码仅在加载第一页时才会通知我
网页上加载的每个框架都会触发 FinishLoadingFrameEvent
,即使在重新加载页面之后也是如此。您可以多次使用它,以便在调用 LoadURL
方法后浏览器完全加载网页时收到通知。
这是基于文档文章 https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110055-loading-url-synchronously 的示例代码:
ManualResetEvent waitEvent = new ManualResetEvent(false);
browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
{
// Wait until main document of the web page is loaded completely.
if (e.IsMainFrame)
{
waitEvent.Set();
}
};
//Load URL
browser.LoadURL("http://www.google.com");
waitEvent.WaitOne();
//The page http://www.google.com is now loaded completely
//Then, reset the event and load the next URL
waitEvent.Reset();
browser.LoadURL("http://www.microsoft.com");
waitEvent.WaitOne();
//The page http://www.microsoft.com is now loaded completely