2014-06-12 2 views
1

Visual Basic으로 로그인하면 YouTube에 로그인하고 다른 몇 가지 작업을 수행하는 프로그램을 만들려고합니다. 가끔씩 내 프로그램에서 이 페이지는 다음과 같이 보이지만 때로는 http://puu.sh/9pCua/6320beccef.png이 표시되지 않으므로 "다른 계정으로 로그인"에 대한 ID가 있는지 확인합니다.다른 if-then 문을 실행하기 전에 웹 페이지를로드하십시오. VB

If WebBrowser1.Document.GetElementById("account-chooser-link") IsNot Nothing Then 
     WebBrowser1.Document.GetElementById("account-chooser-link").InvokeMember("click") 
    End If 

는 그 다음이 페이지로 이동 : http://puu.sh/9pCZB/4d1768cf06.png 그리고 그것은 "계정을 추가"에 대한 ID가 존재하는지 확인합니다이 그 코드입니다. 이것은 그에 대한 코드입니다. 이러한 링크는 내가 로그인하는 정보에 입력 할 수있는 대상 페이지로 이동합니다 클릭 한 모두 후

If WebBrowser1.Document.GetElementById("account-chooser-add-account") IsNot Nothing Then 
     WebBrowser1.Document.GetElementById("account-chooser-add-account").InvokeMember("click") 
    End If 

이 지금까지 하위의 전체 코드입니다 :이 두 번째 웹 페이지가로드 될 필요가 있기 때문에 "계정을 추가"의 ID를 인식하지 못하기 때문에 두 번째 링크를 클릭 할 수 없습니다 하나 개의 링크를 클릭 한 후이와

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    If WebBrowser1.Document.GetElementById("account-chooser-link") IsNot Nothing Then 
     WebBrowser1.Document.GetElementById("account-chooser-link").InvokeMember("click") 
    End If 

    If WebBrowser1.Document.GetElementById("account-chooser-add-account") IsNot Nothing Then 
     WebBrowser1.Document.GetElementById("account-chooser-add-account").InvokeMember("click") 
    End If 

    WebBrowser1.Document.GetElementById("Email").SetAttribute("value", TextBox1.Text) 

End Sub 

문제입니다. 나는 항상 버튼을 두 번 치는 것만으로 두 번째 "If Then"문을 실행하기 전에 두 번째 웹 페이지가로드되는 위치로 만들고 싶습니다. 이것이 가능한가?

답변

0

WebBrowserDocumentCompleted 이벤트를 처리해야합니다.이 이벤트는 페이지가로드되었음을 나타냅니다. 여러 문서를로드하는 경우 이벤트 핸들러에로드 할 문서와로드 할 문서를 결정하는 논리가 필요합니다. 현재 문서의 URL을 확인하거나 다른 메커니즘을 사용할 수 있습니다.

+0

내가 사용할 수있는 "DocumentCompleted"의 예를 들어 주시겠습니까? @jmcilhinney – Spooky

+0

자신을 찾았을 때 찾은 예에 대해 무엇을 이해하지 못합니까? – jmcilhinney

+0

예 당신이 무슨 말을하고 있었는지 이해하지 못했지만, 더 많은 조사를 한 후에 감사드립니다. 내 문제는 여전히 버튼을 한 번의 클릭으로 하나 이상의 웹 페이지를로드 할 수있는 문서 완성 된 부분을 수행하는 논리를 추가하는 것입니다. – Spooky

관련 문제