CLICAR BOTAO WEBBROWSER
Bom dia,
Pessoal é o seguinte, eu estou tentando clicar em um botão que está em um webbrowser mas não estou conseguindo de forma alguma, esse é o site, e eu precisava clicar no botão Buscar Processo abaixo o código que estou tentando.
Obrigado.
Pessoal é o seguinte, eu estou tentando clicar em um botão que está em um webbrowser mas não estou conseguindo de forma alguma, esse é o site, e eu precisava clicar no botão Buscar Processo abaixo o código que estou tentando.
Dim Elems As HtmlElementCollection
Dim WebOC As WebBrowser = WebBrowser1
Elems = WebOC.Document.GetElementsByTagName([Ô]div[Ô])
For Each elem As HtmlElement In Elems
If elem.InnerHtml <> Nothing Then
Dim StringElemento As String = elem.InnerHtml
If StringElemento.StartsWith([Ô]<INPUT style=[Ô]) Then
elem.InvokeMember([Ô]click[Ô])
End If
End If
Next
Obrigado.
posta o link da pagina que você ta tentando
ele foi postado. Basta clicar na palavra esse é o site colocado no primeiro post. Mas de qualquer forma segue o link novamente.
http://assejepar.com.br/v2/
http://assejepar.com.br/v2/
ALTAIR olhando pelo fonte :
<input type=[Ô]image[Ô] src=[Ô]/v2/images/btn_buscar_processo.png[Ô] alt=[Ô]Buscar Processo[Ô] />
eu tentei da seguinte maneira:
O problema é que ele está pegando os dois campos Buscar Processos que existe, ja tentei filtrar de outras maneiras e mesmo assim ele pega os dois, se colocar dessas maneiras:
Eu vou continuar tentando qualquer novidade te posto, quem poderia te ajudar bem era o Pegudo, se tem um cara que manja de webbrowser é ele kkkkk mas vamos continuar :D
<input type=[Ô]image[Ô] src=[Ô]/v2/images/btn_buscar_processo.png[Ô] alt=[Ô]Buscar Processo[Ô] />
eu tentei da seguinte maneira:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName([Ô]input[Ô])
For Each curElement As HtmlElement In theElementCollection
If curElement.GetAttribute([Ô]src[Ô]).Contains([Ô]v2/images/btn_buscar_processo.png[Ô]) Then
curElement.InvokeMember([Ô]click[Ô])
End If
Next
End Sub
O problema é que ele está pegando os dois campos Buscar Processos que existe, ja tentei filtrar de outras maneiras e mesmo assim ele pega os dois, se colocar dessas maneiras:
If curElement.GetAttribute([Ô]src[Ô]) = [Ô]v2/images/btn_buscar_processo.png[Ô] Then [ô] Não funciona
If curElement.GetAttribute([Ô]alt[Ô]) = [Ô]Buscar Processos[Ô] Then [ô] Pega todos os botões do site já que o designer colocou todos os [Ô]alts[Ô] com o mesmo nome :s
Eu vou continuar tentando qualquer novidade te posto, quem poderia te ajudar bem era o Pegudo, se tem um cara que manja de webbrowser é ele kkkkk mas vamos continuar :D
Seguindo o seu exemplo fiz de uma forma aqui que vai clicar apenas no segundo botão, não sei se é a melhor forma, se conseguires algo ai também ai testo das duas formas.
Muito obrigado.
Dim ContaBotao As Integer = 0
Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName([Ô]input[Ô])
For Each curElement As HtmlElement In theElementCollection
If curElement.GetAttribute([Ô]src[Ô]).Contains([Ô]v2/images/btn_buscar_processo.png[Ô]) Then
If ContaBotao = 1 Then
curElement.InvokeMember([Ô]click[Ô])
Else
ContaBotao += 1
End If
End If
Next
Muito obrigado.
Pelo que vi no site você não precisa exatamente fazer o clique no botão, que é um input com type=image, como ele não tem um name então provavelmente o botão é usado apenas para fazer o submit, o que você pode fazer é ao invés procurar pelo elemento do botão é simplesmente efetuar o submit do form correspondente, no caso me parece ser o de pesquisa por numeração única, se você inspecionar o html vai ver que o elemento form dele tem o class=[Ô]pesquisa_numerica[Ô], então é só procurar por ele, pode ser feito assim por exemplo:
Dim form = (From f As HtmlElement In WebBrowser1.Document.Forms Where f.GetAttribute([Ô]className[Ô]) = [Ô]pesquisa_numerica[Ô] Select f).SingleOrDefault()
If form IsNot Nothing Then
form.InvokeMember([Ô]submit[Ô])
End If
Tópico encerrado , respostas não são mais permitidas