none
Como copiar dados de página do WebBrowser para Label? RRS feed

  • Pergunta

  • Olá! Tudo bem com vocês? Então, preciso copiar a seguinte informação para uma Label: <div class="enc">R$0,00</div>

    Usei este código para fazer login num site a partir de TextBox's:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            WebBrowser1.Document.GetElementById("login").SetAttribute("value", TextBox1.Text)
            WebBrowser1.Document.GetElementById("passwd").SetAttribute("value", TextBox2.Text)
    
            WebBrowser1.Document.GetElementById("idSIButton9").InvokeMember("click")
        End Sub
    Como faço para obter o valor do elemento <div class="enc">R$0,00</div> em uma Label?

    terça-feira, 19 de novembro de 2013 02:05

Respostas

  • Amigo eu não sei bom como ta seu cenário mas, eu fiz um assim e sendo que minha página tem um resultado assim:

    <html>
    	<head>
    		<title>Teste de pagina</title>
    	</head>
    	<body>
    			<span class"enc">18</span>
    			<span class"ten">19</span>
    	</body>
    </html>
    
    Códificação para pegar a class "enc":

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    	WebBrowser1.Navigate(New Uri("http://localhost/teste.asp"))
    	WebBrowser1.Show()
    End Sub
    
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted '
    	Try
    		If Not IsNothing(WebBrowser1.Document) Then
    			Dim elementos = WebBrowser1.Document.GetElementsByTagName("span")
    			If (Not IsNothing(elementos) And elementos.Count > 0) Then
    				Dim i As Integer = 0
    				While (i < elementos.Count AndAlso Not elementos.Item(i).OuterHtml().Contains("enc"))
    					i += 1
    				End While
    				If (i < elementos.Count) Then
    					Dim resultado As String = elementos.Item(i).InnerText
    				End If
    			End If
    		End If
    	Catch ex As Exception
    
    	End Try
    End Sub

    Fulvio Cezar Canducci Dias

    • Sugerido como Resposta Thiago Patrocinio sábado, 23 de novembro de 2013 14:06
    • Marcado como Resposta Free4k sábado, 23 de novembro de 2013 14:12
    sábado, 23 de novembro de 2013 13:48
  • Tentei "Label1.Text = resultado" não funcionou.

    Aonde você colocou e outra coisa cade seu código poste !!!

    Dim resultado as String Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load WebBrowser1.Navigate(New Uri("http://localhost/teste.asp")) WebBrowser1.Show() End Sub Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted ' Try If Not IsNothing(WebBrowser1.Document) Then Dim elementos = WebBrowser1.Document.GetElementsByTagName("span") If (Not IsNothing(elementos) And elementos.Count > 0) Then Dim i As Integer = 0 While (i < elementos.Count AndAlso Not elementos.Item(i).OuterHtml().Contains("enc")) i += 1 End While If (i < elementos.Count) Then resultado = elementos.Item(i).InnerText

    Label1.Text = resultado '// se fez assim??? End If End If End If Catch ex As Exception End Try End Sub

    No código acima!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Free4k sábado, 23 de novembro de 2013 19:55
    sábado, 23 de novembro de 2013 19:40

Todas as Respostas

  • Amigo eu não sei bom como ta seu cenário mas, eu fiz um assim e sendo que minha página tem um resultado assim:

    <html>
    	<head>
    		<title>Teste de pagina</title>
    	</head>
    	<body>
    			<span class"enc">18</span>
    			<span class"ten">19</span>
    	</body>
    </html>
    
    Códificação para pegar a class "enc":

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    	WebBrowser1.Navigate(New Uri("http://localhost/teste.asp"))
    	WebBrowser1.Show()
    End Sub
    
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted '
    	Try
    		If Not IsNothing(WebBrowser1.Document) Then
    			Dim elementos = WebBrowser1.Document.GetElementsByTagName("span")
    			If (Not IsNothing(elementos) And elementos.Count > 0) Then
    				Dim i As Integer = 0
    				While (i < elementos.Count AndAlso Not elementos.Item(i).OuterHtml().Contains("enc"))
    					i += 1
    				End While
    				If (i < elementos.Count) Then
    					Dim resultado As String = elementos.Item(i).InnerText
    				End If
    			End If
    		End If
    	Catch ex As Exception
    
    	End Try
    End Sub

    Fulvio Cezar Canducci Dias

    • Sugerido como Resposta Thiago Patrocinio sábado, 23 de novembro de 2013 14:06
    • Marcado como Resposta Free4k sábado, 23 de novembro de 2013 14:12
    sábado, 23 de novembro de 2013 13:48
  • Olá! Como assim cenário?
    sábado, 23 de novembro de 2013 14:13
  • Como está a sua codificação!

    O que já tem pronto!

    Isso ... 

    Boa sorte!


    Fulvio Cezar Canducci Dias

    sábado, 23 de novembro de 2013 14:41
  • Olá! Como assim cenário?

    Quando o Flúvio fala de cenário, ele quer dizer como está a sua Camada de Apresentação (Quais botões, Label, TextBox tem no seu projeto)

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sábado, 23 de novembro de 2013 14:47
  • Olá! Como assim cenário?


    Quando o Flúvio fala de cenário, ele quer dizer como está a sua Camada de Apresentação (Quais botões, Label, TextBox tem no seu projeto)

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    só lembrando "Fúlvio" ...kkk

    Fulvio Cezar Canducci Dias

    sábado, 23 de novembro de 2013 14:53
  • Olá! Mas como faço para copiar o texto para uma Label. Eu postei esse HTML no link abaixo:

    http://ultecne.info/new.html

    sábado, 23 de novembro de 2013 17:15
  • Só uma pergunta?

    Você quer enviar a alteração para a Pagina!

    Assim se tem um valor e quer mandar esse valor via codificação C# direto pra página e isso ficar como definitivo?

    Se for, não dá! chama-se segurança!

    Agora caixa de texto tem como!!! somente!


    Fulvio Cezar Canducci Dias

    sábado, 23 de novembro de 2013 18:47
  • Nenhum dos dois, eu quero copiar o texto, no caso do seu exemplo: 
    <span class"enc">18</span>
    Quero copiar o texto, no caso "18", para uma Label do PROGRAMA (Windows Forms), e não para uma página.
    sábado, 23 de novembro de 2013 19:00
  • Então tá feito!

    Olha só

    Dim resultado as String
    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    	WebBrowser1.Navigate(New Uri("http://localhost/teste.asp"))
    	WebBrowser1.Show()
    End Sub
    
    Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted '
    	Try
    		If Not IsNothing(WebBrowser1.Document) Then
    			Dim elementos = WebBrowser1.Document.GetElementsByTagName("span")
    			If (Not IsNothing(elementos) And elementos.Count > 0) Then
    				Dim i As Integer = 0
    				While (i < elementos.Count AndAlso Not elementos.Item(i).OuterHtml().Contains("enc"))
    					i += 1
    				End While
    				If (i < elementos.Count) Then
    					resultado = elementos.Item(i).InnerText
    				End If
    			End If
    		End If
    	Catch ex As Exception
    
    	End Try
    End Sub

    A variável "resultado" se passar dentro do If (i < elementos.Count) foi o resultado encontrado !!! ?

    Entendeu?


    Fulvio Cezar Canducci Dias

    sábado, 23 de novembro de 2013 19:31
  • Tentei "Label1.Text = resultado" não funcionou.
    sábado, 23 de novembro de 2013 19:37
  • Tentei "Label1.Text = resultado" não funcionou.

    Aonde você colocou e outra coisa cade seu código poste !!!

    Dim resultado as String Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load WebBrowser1.Navigate(New Uri("http://localhost/teste.asp")) WebBrowser1.Show() End Sub Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted ' Try If Not IsNothing(WebBrowser1.Document) Then Dim elementos = WebBrowser1.Document.GetElementsByTagName("span") If (Not IsNothing(elementos) And elementos.Count > 0) Then Dim i As Integer = 0 While (i < elementos.Count AndAlso Not elementos.Item(i).OuterHtml().Contains("enc")) i += 1 End While If (i < elementos.Count) Then resultado = elementos.Item(i).InnerText

    Label1.Text = resultado '// se fez assim??? End If End If End If Catch ex As Exception End Try End Sub

    No código acima!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Free4k sábado, 23 de novembro de 2013 19:55
    sábado, 23 de novembro de 2013 19:40
  • Olá! Fiz desse jeito, porém esqueci do código: "Dim resultado As String". Obrigado!
    sábado, 23 de novembro de 2013 19:54