首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DotNetBrowser FinishLoadingFrameEvent多用途

DotNetBrowser FinishLoadingFrameEvent多用途
EN

Stack Overflow用户
提问于 2017-08-12 03:13:45
回答 1查看 972关注 0票数 1

我正在尝试使用DotNetBrowser加载多个页面,我需要知道每次加载新的url时,

代码语言:javascript
复制
 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 //

};

但是这段代码只有在加载第一个页面时才会通知我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-14 14:59:42

加载到网页上的每个帧都会触发FinishLoadingFrameEvent,即使在页面重新加载之后也是如此。您可以多次使用它,以便在调用LoadURL方法后浏览器已完全加载网页时收到通知。

以下是基于文档文章https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110055-loading-url-synchronously的示例代码:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45642333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档