Приложение Windows Form — управление входными элементами -вWinForm WebBrowser
Хотя я знаком с HttpWebResponse
/HttpWebRequest
для входа на веб-сайт, я пробовал это сейчас с помощью библиотеки mshtml и обнаружил какое-то странное поведение, и я хотел бы посмотреть, сможет ли кто-нибудь еще помочь мне здесь...
У меня есть страница входа в HTML с бэкэндом java с полем Username
, полем Password
и полем Button
.
Логика очень проста, у меня есть встроенное приложение winform со встроенным веб-браузером. В событии Document_Completed
я использую следующий код, чтобы войти в свои настройки и нажать кнопку.
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser.Url.ToString() == @"MyWebPage/signin")
{
HTMLDocument hdc = new HTMLDocumentClass();
hdc = (HTMLDocument)webBrowser.Document.DomDocument;
IHTMLElement elb = hdc.getElementById("login_button");
IHTMLInputElement elu = (IHTMLInputElement)hdc.getElementById("username");
IHTMLInputElement elp = (IHTMLInputElement)hdc.getElementById("password");
try
{
elu.value = "MyID";
elp.value = "MyPwd";
elb.click();
}
catch { }
}
}
Помимо того, что этот код очень быстрый и без обработки ошибок, он должен сработать, и он частично срабатывает..
Есть два сценария:
Я запускаю инструмент, он загружает веб-страницу.
. Я нажимаю кнопку вручную, я вошел в систему, я нажимаю выход, я снова на странице входа
Есть ли кто-нибудь, кто мог бы объяснить мне, почему это происходит и как я могу обойти это с текущей настройкой (, следовательно, не используяHttpWebRequest
). Я не вижу разницы между загрузкой страницы при запуске или перенаправлением после выхода из системы, но, видимо, разница есть или я делаю что-то не так.
Любая обратная связь по этому вопросу очень ценится.
Спасибо, Кевин
Я добавил Button
в свою форму Windows, которая основана на том же внутреннем коде, что и ниже, чтобы щелкнуть кнопку на веб-странице, это работает отлично.
Я активировал нажатие этой кнопки в событии webBrowser_Completed
, но оно не работает. По какой-то причине все, что я добавляю к событию webBrowser_DocumentCompleted
, не позволяет мне инициировать событие щелчка для кнопки в моем элементе управления WebBrowser
. Как только все это событие завершится, если я попытаюсь запустить его, оно сработает, но я хотел бы автоматизировать это. Любой совет?