2009-09-10 2 views
0

Я использую элемент управления веб-браузером для входа на веб-сайт.Управление и готовность WebBrowser

WbBrowser.Navigate("http://www.foo.com/login.php") 

После загрузки страницы я войти, используя следующий код

While WbBrowser.ReadyState <> WebBrowserReadyState.Complete 
      Application.DoEvents() 
     End While 

WbBrowser.Document.GetElementById("user_login").SetAttribute("Value", "username") 
WbBrowser.Document.GetElementById("user_pass").SetAttribute("Value", "password") 
WbBrowser.Document.Forms("loginform").InvokeMember("submit") 

Это прекрасно работает. При успешном входе мне нужно перейти на другую страницу. Это произойдет только в том случае, если логин верен. Проблема здесь в том, что сын, когда загружается страница входа в систему, завершает работу readystate управления веб-браузером, и даже до того, как я зашел на сайт, следующая строка кода будет выполнена и приведет к ошибке, поскольку я не вошел в систему.

WbBrowser.Navigate("http://www.foo.com/page2.php") 

Как я могу заставить приложение ждать завершения регистрации, а затем выполнить указанную выше строку кода. Есть идеи?

+0

это для работы с качеством, которую NUnit может обрабатывать, или это для консольного приложения, которому нужно открыть ссылку? – djangofan

+0

Его личный проект. Это не консольное приложение. – Shoban

ответ

1

Попробуйте отслеживать состояние вашего приложения в переменной и используйте событие webbrowser.DocumentCompleted, чтобы проверить, прошел ли вход.

Смежные вопросы