Так что я устанавливаю значение текстового поля, затем я нажму кнопку, чтобы отправить запрос. Значение в текстовом поле показывает, что я хочу, но когда я вызываю щелчок кнопки, веб-сайт выводит на странице сообщение об ошибке, как если бы значение текстового поля было пустым (хотя я смотрю на него, и он показывает что я хотел).веб-страница не распознает текст, введенный в текстовое поле
Теперь, если я вручную нажму кнопку, он по-прежнему считает, что текстовое поле пуст. Но если я вручную нажму на текстовое поле (просто кликнуть, ничего не меняйте), тогда вручную нажмите на кнопку, она работает.
Таким образом, очевидно, что-то происходит за кулисами, что требует текстового поля имели фокус перед страницы будет понятно, что было напечатано в.
private void SetText(string elementID, string text)
{
foreach (HtmlWindow hw in this.webBrowser1.Document.Window.Frames)
{
HtmlElement element = hw.Document.GetElementById(elementID);
if (element != null)
{
element.SetAttribute("value", text);
// here's where I'm trying things
break;
}
}
}
Вот что я пытался (не уверен, что все эти были даже действительными вещами, но я все равно их пробовал:
Я попытался настроить фокус на текстовое поле, а затем удалить его, установив его на элемент button.Focus(), а затем кнопку.Focus() до нажмите кнопку.
Я попытался вызвать измененный элемент event.InvokeMember («change»), element.InvokeMember («changed»), element.InvokeMember («onchange»), element.InvokeMember («textchanged»).
Я попытался вызвать фокусное событие - element.InvokeMember («focus»).
Я пробовал ссылаться на событие lostfocus - element.InvokeMember ("lostfocus").
Я понятия не имею, что такое веб-страница, которая, как ожидается, будет запущена, когда кто-то на самом деле набирает текст в текстовое поле, но это, по-видимому, препятствует тому, чтобы страница «видя» то, что было там размещено моим кодом.
Любые идеи?
Я бы начал с попытки попробовать поймать тело тела SetText. Также пройдите через него с точками останова. Еще одна вещь, которая приходит на ум, - вызов Application.DoEvents() в конце вашего метода. –