C # WebBrowser — Как дождаться загрузки элемента DOM?

#c# #.net #visual-studio #visual-studio-2010 #browser

#c# #.net #visual-studio #visual-studio-2010 #браузер

Вопрос:

В моей форме есть элемент WebBrowser. Он загружает страницу. За этим следует код для ожидания загрузки страницы:

 while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
  

Затем я создаю последовательность getElementById .Инструкции фокусировки.
За каждым из них следует команда «SendKeys.Отправить («MyKeys»)»
Но когда я запускаю программу, веб-браузер загружает нужную страницу, и все значения «SendKeys» отображаются в последнем поле.

Пытался приостановить его многими способами перед заполнением полей, не работает.

Ответ №1:

Пожалуйста, попробуйте это

 webBrowser1.Document.GetElementById("FirstName").SetAttribute("value", "John");
  

дайте мне знать, как это происходит.

Комментарии:

1. Какая-либо конкретная причина, по которой вы должны использовать SendKeys? Вероятно, есть и другие обходные пути для достижения той же цели. В качестве примечания, вместо использования приложения. DoEvents, я бы использовал событие ProgressChanged для отслеживания readyState.