0

パブリック データ ソースからサーバーにデータをダウンロードするコードを作成しようとしています。そのために、データ ソース 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....
     }
4

0 に答える 0