【发布时间】:2012-04-27 08:08:54
【问题描述】:
我正在使用 C# WebBrowser 控件,但我遇到了一个问题,即当页面未加载但程序尝试继续时按下“下一步”之类的按钮时,程序会尝试继续但给我一个空错误。
有没有让程序等待页面加载完成的功能?
我试图在程序中放置一个 while 循环来检查 html 页面的标题,但随后程序冻结了。类似的东西会冻结程序:
while(!webbrowser1.Document.Title.ToString().Equals("NextPageTitle"))
{
}
::NextCommands::
它不起作用,我试过了,但没有点击按钮“fblqf”。但它不返回空错误..
public void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("q").SetAttribute("value", "חחח");
webBrowser1.Document.GetElementById("btnK").InvokeMember("Click");
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// do the work you need to do now that that page has completed loading
webBrowser1.Document.GetElementById("fblqf").InvokeMember("Click");
}
解决方案:
public void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("q").SetAttribute("value", "חחח");
webBrowser1.Document.GetElementById("btnK").InvokeMember("Click");
int x=0;
while (x==0)
{
System.Windows.Forms.Application.DoEvents();
if(webBrowser1.Document.GetElementById("pnnext") != null)
break;
}
webBrowser1.Document.GetElementById("pnnext").InvokeMember("Click");
webBrowser1.Document.GetElementById("q").Focus();
}
【问题讨论】: