点击按钮后等待加载页面

本文关键字:加载 等待 按钮 | 更新日期: 2023-09-27 18:08:53

我希望能够点击按钮,然后等待页面加载。我搜索,但没有正确的解决方案。这是代码的一部分:

el = webBrowser1.Document.GetElementById("LoginButton");
el.InvokeMember("click");
webBrowser1.Navigate(url);

我需要它是,点击后,应用程序将加载页面,然后去另一个页面。webBrowser1.Navigate(url)必须与click使用相同的方法。因为这是一个循环。

请帮助。

编辑。*更多代码*(第一个代码是我需要的示例)

List<string> list1 = new List<string>();
            bool flag = true;
            while (flag)
            {
                flag = false;
                foreach (HtmlElement he2 in webBrowser1.Document.GetElementsByTagName("a"))
                {
                    if (he2.GetAttribute("href").Contains("profile.php?ID="))
                    {
                        list1.Add(he2.InnerText);
                    }
                }
                foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("a"))
                {
                    if (he.InnerHtml == "Next")
                    {
                        flag = true;
                        he.InvokeMember("click");

                    }
                }

            }

当我点击时,下一页必须加载,我必须解析下一页上的标签,但它在下一页加载之前开始解析页面,所以它解析同一页

点击按钮后等待加载页面

最后,我刚刚从按钮中获得了href,并使用了这段代码(而不是he.InvokeMember("click")):

 webBrowser1.Navigate(url_next);
 while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
     Application.DoEvents();

您可以使用DocumentCompleted事件来查找何时完成登录。

webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
el = webBrowser1.Document.GetElementById("LoginButton");
el.InvokeMember("click");
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    Uri myUrl = new Uri("http://stackoverflow.com");
    if (e.Url == myUrl)
    {
        WebBrowser1.Navigate(url);
    }
}