等待WebBrowser控件加载并运行所有JavaScript

时间:2013-04-08 14:43:45

标签: javascript .net webbrowser-control

using (var browser = new WebBrowser()) {
    browser.Navigate(location);

    browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
    while (browser.ReadyState != WebBrowserReadyState.Complete) {
        Application.DoEvents();
    }
    log.Info("READY " + browser.Document.GetElementById("main").InnerText);
}

private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
    WebBrowser wb = (WebBrowser)sender;
    log.Info("COMPLETED " + wb.Document.GetElementById("main").InnerText);
}

两个日志都返回尚未应用JavaScript更改的元素。

现在我在WinForms中有另一个WebBrowser,它将在启动时加载页面。这次我还使用DocumentCompleted事件,但仍然没有javascripted来源。

form.webBrowser1.DocumentCompleted += (sender, e) => {
    log.Info("READY HIAAR" + form.webBrowser1.Document.GetElementById("main").InnerText);
};

最后,我尝试使用按钮获取源代码。首先我让WebBrowser在WinForms中加载页面,然后在5秒后按按钮

form.dataButton.Click += (sender, e) => {
    log.Info("READY HIAAR" + form.webBrowser1.Document.GetElementById("main").InnerText);
};

只有最后log.info才会返回我需要的实际内容

如何在加载并运行所有JavaScript时捕获事件?点击击败了目的。

0 个答案:

没有答案