InvokeMember("Click") динамически в C#

Я пытаюсь написать код для загрузки данных из общедоступного источника данных на наш сервер. Для этого я написал код, который открывает веб-страницу веб-сайта источника данных (элемент управления WebBrowser с именем webBrowser1), затем введите номер файла в текстовое поле на веб-странице и нажмите кнопку ОК, чтобы получить результат. Код работал нормально для одного файла, но затем, когда я попытался сделать это в цикле, InvokeMember("Click") работает только тогда, когда цикл завершен (только щелчки в конце цикла). Как я могу изменить этот код, чтобы итеративно нажимать кнопку на веб-странице при изменении Well_File_No? Мой код прилагается ниже. Спасибо за помощь. Я пишу код с помощью C# Windows Form.

 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....
     }

0 ответов

Другие вопросы по тегам