Ir para o conteúdo
bidfun

Esperar webpage carregar na totalidade

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.