点击按钮后等待加载页面
本文关键字:加载 等待 按钮 | 更新日期: 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);
}
}