EVENTO ONCHANGE WEBBROWSER
Boa tarde,
Pessoal, vou incomodar mais um pouco aqui. Nesse SITE, tem duas combobox que eu preciso seleciona-las, o problema é que tenho que selecionar a primeira e depois que ela for selecionada a segunda será carregada de acordo com a seleção da primeira, o que eu não estou conseguindo e fazer com que seja esperado a segunda ser carregada. Para selecionar a primeira eu uso o código baixo:
Pessoal, vou incomodar mais um pouco aqui. Nesse SITE, tem duas combobox que eu preciso seleciona-las, o problema é que tenho que selecionar a primeira e depois que ela for selecionada a segunda será carregada de acordo com a seleção da primeira, o que eu não estou conseguindo e fazer com que seja esperado a segunda ser carregada. Para selecionar a primeira eu uso o código baixo:
Dim theElementCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName([Ô]option[Ô])
For Each curElement As HtmlElement In theElementCollection
If curElement.InnerText = [Ô]Arapongas[Ô] Then
curElement.SetAttribute([Ô]selected[Ô], [Ô]selected[Ô])
End If
Next
Dim HtmlL As HtmlElement = WebBrowser1.Document.GetElementById([Ô]comarca[Ô])
HtmlL.RaiseEvent([Ô]onchange[Ô])
Não sei se ajudaria mas se existem 2 botões e o segundo é carregado atráves do primeiro, você pode tentar verificar se o 2 botão já se encontra no formulário dai você prossegue o seu código caso contrário você trata o erro.
OBS: Não sei como fazer isso só sugestão...rsrs
Quem sabe dá uma luz:
http://stackoverflow.com/questions/1912678/invalidcastexception-with-webbrowser-isbusy-or-readystate-vb-net
OBS: Não sei como fazer isso só sugestão...rsrs
Quem sabe dá uma luz:
http://stackoverflow.com/questions/1912678/invalidcastexception-with-webbrowser-isbusy-or-readystate-vb-net
Citação::
Não sei se ajudaria mas se existem 2 botões e o segundo é carregado atráves do primeiro, você pode tentar verificar se o 2 botão já se encontra no formulário dai você prossegue o seu código caso contrário você trata o erro.
OBS: Não sei como fazer isso só sugestão...rsrs
rsrs... Na verdade o que acontece é o seguinte, eu vou fazer dois tipos de pesquisa, alguns vão sim por onde você sugeriu, mas existe alguns números de processos que tem que ser pesquisado por essas combos ai.
Valeu ae.
Como seu único propósito é carregar o 2º ComboBox de acordo com a seleção da primeira, ficaria assim:
Como mostrei no exemplo, o Index 9 seleciona a comarca de Arapongas.
Outro modo de fazer esta seleção seria.
Isto porque, se você olhar no HTML da página, vai perceber que o número que corresponde à opção Arapongas é o nº 72.
Bom... Veja o que dá pra ser aproveitado e modifique à vontade.
Dim Combo1 As HtmlElement = WebBrowser1.Document.GetElementById([txt-color=#e80000][Ô]comarca[Ô][/txt-color])
Dim Opcao1 As mshtml.IHTMLSelectElement = Combo1.DomElement
Opcao1.selectedIndex = 9 [txt-color=#007100][ô]Seleciona a comarca de Arapongas[/txt-color]
Opcao1.form.action = [txt-color=#e80000][Ô][/txt-color][txt-color=#0000f0]javascript:carregaCartorios([ô]/v2/cartorio/cartoriosDaComarca[ô])[/txt-color][txt-color=#e80000][Ô][/txt-color]
Opcao1.form.submit()
Como mostrei no exemplo, o Index 9 seleciona a comarca de Arapongas.
Outro modo de fazer esta seleção seria.
Opcao1.Value = 72
Isto porque, se você olhar no HTML da página, vai perceber que o número que corresponde à opção Arapongas é o nº 72.
Bom... Veja o que dá pra ser aproveitado e modifique à vontade.
Citação:Dim Combo1 As HtmlElement = WebBrowser1.Document.GetElementById([Ô]comarca[Ô])
Dim Opcao1 As mshtml.IHTMLSelectElement = Combo1.DomElement
Opcao1.selectedIndex = 9 [ô]Seleciona a comarca de Arapongas
Opcao1.form.action = [Ô]javascript:carregaCartorios([ô]/v2/cartorio/cartoriosDaComarca[ô])[Ô]
Opcao1.form.submit()
Essa parte funciona perfeitamente, o problema é quando eu rodo essa parte ai ai demora alguns instantes para carregar a segunda combo, eu queria ver se tem como tipo, passar para frente só depois que a segunda combo seja carregada.
Você pode fazer alguma coisa como:
Ou algo parecido.
Dim Combo2 as HTMLElement = WebBrowser1.Document.GetElementById([txt-color=#e80000][Ô]cartorio[Ô][/txt-color])
While Combo2.InnerText = [txt-color=#e80000][Ô]Selecione o cartório[Ô][/txt-color]
Application.DoEvents()
End While
Ou algo parecido.
Exatamente não sei se ajudaria mas existe a propriedade (DocumentCompleted) só não sei se daria para aplicar na combobox:
http://www.vbforums.com/showthread.php?569262-Webbrowser-Document-Complete
http://forums.codeguru.com/showthread.php?447738-WebBrowser-Wait-for-load
http://www.portugal-a-programar.pt/topic/33219-url-na-combobox/
http://www.vbforums.com/showthread.php?569262-Webbrowser-Document-Complete
http://forums.codeguru.com/showthread.php?447738-WebBrowser-Wait-for-load
http://www.portugal-a-programar.pt/topic/33219-url-na-combobox/
ALEVALE, não adiantaria porque a execução do comando provém de um Script (que roda no lado do usuário) e não do carregamento do WebBrowser (que vai ao provedor e atualiza a página).
Tópico encerrado , respostas não são mais permitidas