パブリック データ ソースからサーバーにデータをダウンロードするコードを作成しようとしています。そのために、データ ソース Web サイト (webBrowser1 という名前の WebBrowser コントロール) の Web ページを開くコードを作成し、Web ページのテキスト ボックスにファイル番号を入力し、[OK] をクリックして結果を取得します。コードは1つのファイルに対して正常に機能しましたが、ループでそれを実行しようとすると、 InvokeMember("Click") はループが完了したときにのみ機能します(ループの最後でクリックするだけです)。Well_File_No が変更されたときに Web ページのボタンを繰り返しクリックするようにこのコードを変更するにはどうすればよいですか? 私のコードは以下に添付されています。助けてくれてありがとう。C# Windows フォームを使用してコードを記述しています。
private void runToolStripMenuItem_Click(object sender, EventArgs e)
{
//Code runs from Toolstrip on the Windows Form
for (int i = 0; i < 10; i++)
{
// this function try to locate textbox and click button on webpage
test(i);
}
}
void test(int i)
{
// File Number to be entered in textbox named "fileno"
Well_File_No = Convert.ToString(17141 + i);
webBrowser1.Document.GetElementById("fileno").SetAttribute("Value", Well_File_No);
foreach (HtmlElement btn in webBrowser1.Document.GetElementsByTagName("input"))
{
var BTN = btn;
if (BTN.GetAttribute("type").Equals("submit"))
{
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
BTN.InvokeMember("Click");
break;
}
}
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
... process data from the table and store....
}