且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C#如何等待一个网页,然后再继续完成加载

更新时间:2022-12-26 18:48:42

尝试DocumentCompleted事件

  webBrowser.DocumentCompleted + =新WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);无效webBrowser_DocumentCompleted(对象发件人,WebBrowserDocumentCompletedEventArgs E)
{
    webBrowser.Document.GetElementById(产品)的setAttribute(价值,产品)。
    webBrowser.Document.GetElementById(版本)的setAttribute(价值,版本)。
    webBrowser.Document.GetElementById(承诺)InvokeMember(点击)。
}

I'm trying to create a program to clone multiple bugs at a time through the web interface of our defect tracking system. How can I wait before a page is completely loaded before I continue?

//This is pseudo code, but this should give you an idea of what I'm trying to do.  The
//actual code uses multi-threading and all that good stuff :).
foreach (string bug in bugs)
{
    webBrowser.Navigate(new Uri(url));
    webBrowser.Document.GetElementById("product").SetAttribute("value", product);
    webBrowser.Document.GetElementById("version").SetAttribute("value", version);
    webBrowser.Document.GetElementById("commit").InvokeMember("click");

    //Need code to wait for page to load before continuing.
}

Try the DocumentCompleted Event

webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser.Document.GetElementById("product").SetAttribute("value", product);
    webBrowser.Document.GetElementById("version").SetAttribute("value", version);
    webBrowser.Document.GetElementById("commit").InvokeMember("click");
}