문제

웹 브라우저 컨트롤을 사용하여 웹 사이트에 로그인하고 있습니다.

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가 완료되며 I 웹 사이트에 로그인하기 전에도 다음 코드 줄이 실행되고 로그인되지 않아 오류가 발생합니다.

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

내 응용 프로그램이 로그인이 완료 될 때까지 기다린 다음 위의 코드 줄을 실행할 수있는 방법은 무엇입니까? 어떤 아이디어?

도움이 되었습니까?

해결책

변수에서 응용 프로그램 상태를 추적하고 WebBrowser.DocumentCompleted 이벤트를 사용하여 로그인이 통과했는지 테스트하십시오.

다른 팁

살 베트! 방금 비슷한 게시물에 응답했습니다.이 정확한 절차를 수행하기 위해 다음을 살펴보십시오.vb.net에서 WebBrowser가 완전히로드 될 때까지 기다리는 방법은 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top