Pergunta

Eu estou usando um controle webbrowser para acessar um site.

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

Uma vez que a página é carregada I login usando o seguinte código

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")

Isso funciona bem. No login bem-sucedido eu tenho que navegar para outra página. Isso só acontecerá se o login está correto. A questão aqui é como filho como a página de login é carregado o readystate de controle webbrowser torna-se completa e até mesmo antes do login eu para o site da próxima linha de código é executado e resulta em um erro como eu não estou logado.

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

Como posso fazer minha espera aplicativo para o login ser completa e, em seguida, executar a linha de código acima. Alguma idéia?

Foi útil?

Solução

Tente manter o controle de seu estado de aplicação em uma variável e usar o evento WebBrowser.DocumentCompleted para testar se o login passado.

Outras dicas

Salvete! Eu só respondeu um post semelhante aqui, para realizar esse procedimento exato, por favor, dê uma olhada: Como esperar até WebBrowser é completamente carregado em VB.NET?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top