我有一个代码,可在网络浏览器页面中找到特定按钮,然后单击两次。问题在于,第一次单击按钮时,加载时间很短,然后再次变为可单击状态,因此,当第二次单击该按钮时,它仍在加载,因此无法正常工作。我基本上需要一种方法让程序等待按钮被加载之后再单击一次。 这是我的代码:
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()
,但是它冻结了浏览器,并且按钮未加载。希望您能提供帮助。
答案 0 :(得分:0)
尝试一下:
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");
}
}