我正在尝试使用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 //
};但是这段代码只有在加载第一个页面时才会通知我
发布于 2017-08-14 14:59:42
加载到网页上的每个帧都会触发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 completelyhttps://stackoverflow.com/questions/45642333
复制相似问题