C#WebBrowswerコントロールを使用していますが、ページが読み込まれていないときに[次へ]のようなボタンを押すと、プログラムが続行しようとしますが、代わりにnullエラーが発生するという問題があります。
ページの読み込みが完了するまでプログラムを待たせる機能はありますか?
HTMLページのタイトルをチェックするwhileループをプログラムに入れようとしましたが、プログラムがフリーズします。次のようなものがプログラムをフリーズします。
while(!webbrowser1.Document.Title.ToString().Equals("NextPageTitle"))
{
}
::NextCommands::
それは動作しません、私はそれを試しました、そしてボタン「fblqf」はクリックされません。ただし、nullエラーは返されません。
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();
}