Jump to content
bidfun

Esperar webpage carregar na totalidade

Recommended Posts

bidfun

Boa Tarde,

Ando aqui às voltas, mas depois de muitas pesquisas e testes até à data nada resultou apesar destas duvidas serem muito comuns:

1.º - Como faço para carregar uma página na totalidade (webbrowser1.navigate) e só depois da mesma estar totalmente carregada as seguintes instruções sejam executadas?

2.º - Num textbox multiline, como faço para a linha de cima da textbox ser a linha mais recente evitando que a informação mais recente não esteja visível?

Cumprimentos

Artur Pereira

Public Sub Btt_Importar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btt_Importar.Click

 WebBrowser1.Navigate("URL")

' 1 #Questão - Esperar "URL" carregar na totalidade e a seguir continuar a execução

 Dim var1, var2 As String
 Dim linha As String

Try
	 var1 = WebBrowser1.document.GetElementById(xpto1).InnerText
	 Var2 = WebBrowser1.document.GetElementById(xpto2).InnerText


linha = var1 & "|" & var2


Txt_listagem.Text &= Environment.NewLine & linha

' 2 #Questão - Numa texbox multiline, como fazer para o ultimo item ser sempre o de cima na texbox?
 Catch ex As Exception
 End Try
End Sub

Share this post


Link to post
Share on other sites
eduardo carvalho

1 - podes usar o evento

DocumentCompleted do browser

2 -

experimenta assim

Txt_listagem.Text = linha & vbcrlf & Txt_listagem.Text

espero ter ajudado

Share this post


Link to post
Share on other sites
bidfun

Boa Tarde,

Eduardo graças à tua ajuda a 2.ª questão ficou solucionada, obrigado.

Quanto à primeira questão ainda não consegui solucionar.

Já tentei com o evento:

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

não funciona, o GetElementById é processado antes de a página carregar na integra e a informação extraída não é completa.

Já tentei colocar junto com o evento DocumentCompleted o seguinte código:

[/size]

If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then

       End If

mas mesmo assim não está a funcionar, não sei se tem a ver com o numero de frames do url que carrego, se houver alguém que me possa ajudar agradecia.

Já tentei colocar um timer para atrazar, dar tempo para o carregamento da página, mas esta situação não me satisfez pois corro o risco de ou dar muito tempo, ou de o tempo definido não ser o suficiente para o carregamento do url, o mesmo depende da velocidade da net.

Cumprimentos

Artur Pereira

Share this post


Link to post
Share on other sites
electric

Pode parecer estupido mas vou dar a minha opinião,

quando usas

[b]If WebBrowser1.ReadyState = WebBrowserReadyState.Complete [b]Then

       [b]End [b]If

este so é chamado uma vez , se nao esta este nao funciona...

eu criava um timer com 1 segundo por exemplo o if no interior, e obviamente apos o if dar certo o timer parava e so voltaria a ser activado quando voltases a usar o browser :\

Espero ter ajudado :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.