Ничего из вышеперечисленного не помогло мне, я мог бы вызвать setAttribute () для текстового поля имени пользователя в обработчике событий DocumentCompleted (), но не для текстового поля пароля. В конце концов я получил его на работу:
HtmlElementCollection inputs = doc.GetElementsByTagName("input");
HtmlElement usr = inputs.GetElementsByName("username")[0];
usr.setAttribute("value", strUsername);
HtmlElement pwd = inputs.GetElementsByName("password")[0];
pwd.GotFocus += new HtmlElementEventHandler(pwd_GotFocus);
pwd.Focus();
Затем в обработчике onFocus:
void pwd_GotFocus(object sender, HtmlElementEventArgs e)
{
HtmlElement pwd = (HtmlElement)sender;
pwd.SetAttribute("value", strPassword);
}
Понятия не имею, почему это работает, а другое нет. Я пытался изменить только пароль на тот случай, если изменение документа от установки имени пользователя мешало ему. Я даже дошел до того, что создал другой элемент управления WebBrowser, затем взял DocumentText из источника, выполнил поиск и замену установки значения пароля в необработанном HTML, прежде чем задавать DocumentText во втором WebBrowser, и он снова не установил значение должным образом .
Я бы хотел узнать более чистое решение, если у кого-то есть