C#WebBrowser-如何等待DOM元素加载?

C#WebBrowser-如何等待DOM元素加载?,c#,.net,visual-studio,visual-studio-2010,browser,C#,.net,Visual Studio,Visual Studio 2010,Browser,我的表单中有一个WebBrowser元素。 它加载一个页面。 随后是等待页面加载的代码: while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } 然后我生成一系列GetElementByID.Focus语句。 每个命令后面都跟有命令“SendKeys.Send(“MyKeys”)” 但当我运行程序时,web浏览器下载需要一个页面,所有“SendKeys”值似乎都是在最

我的表单中有一个WebBrowser元素。 它加载一个页面。 随后是等待页面加载的代码:

while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
然后我生成一系列GetElementByID.Focus语句。 每个命令后面都跟有命令“SendKeys.Send(“MyKeys”)” 但当我运行程序时,web浏览器下载需要一个页面,所有“SendKeys”值似乎都是在最后一个字段中键入的

在填写字段之前,尝试以多种方式暂停,但无效。

请尝试此操作

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

让我知道进展情况。

您为什么要使用SendKeys?可能还有其他解决方法可以完成同样的事情。作为补充说明,我本应该使用ProgressChanged事件来捕获ReadyState,而不是使用Application.DoEvents。