我有一段代码,可以在web浏览器页面中找到特定的按钮,然后单击它两次。问题是,当按钮第一次被点击时,它在再次可点击之前会有一个短暂的加载,所以当它第二次被点击时,它不会工作,因为它仍然在加载中。我基本上需要一种方法来告诉程序等待按钮加载,然后再次单击它。下面是我的代码:
var links = webpage.Document.GetElementsByTagName("button");
foreach (HtmlElement link in links)
{
if (link.GetAttribute("className") == "something")
{
link.InvokeMember("click");
}
}
links = webpage.Document.GetElementsByTagName("button");
foreach (HtmlElement link in links)
{
if (link.GetAttribute("className") == "something")
{
link.InvokeMember("click");
}
}我已经尝试过使用Thread-Sleep(),但它冻结了浏览器,按钮也无法加载。希望你能帮上忙。
发布于 2019-01-14 06:11:49
试试这个:
var links = webpage.Document.GetElementsByTagName("button");
foreach (HtmlElement link in links)
{
if (link.GetAttribute("className") == "something")
{
link.InvokeMember("click");
}
}
links = webpage.Document.GetElementsByTagName("button");
foreach (HtmlElement link in links)
{
if (link.GetAttribute("className") == "something")
{
while (!link.Enabled)
{
Application.DoEvents();
Thread.Sleep(100);
}
link.InvokeMember("click");
}
}https://stackoverflow.com/questions/54172938
复制相似问题