none
Interação VBA Internet Explorer: RRS feed

  • Pergunta

  • Olá, boa noite.

    Antes de tudo, me antecipo a pedir desculpas caso já exista perguntas semelhantes a esta. Mas procurei no fórum e não encontrei.

    Tenho uma macro que acessa uma página da WEB, preenche um formulário e emite uma guia. Para gerar a guia utilizo o comando .Document.all("nome").Click e funciona perfeitamente.

    Ocorre que eu a adaptei para acessar uma página da Caixa Econômica Federal, com finalidade similar. Nesse caso, o código funcionou em parte: preenche corretamente a primeira parte do formulário, mas na hora de passar para a próxima etapa (próxima tela) o código não funciona.

    Na próxima tela também tenho o mesmo problema, não consegui dar um click em qualquer dos botões.

    Pesquisei no código fonte da página mas não consegui identificar os nomes (ID) dos botões. Tentei então o comando .Document.all("frm").submit e .Document.forms("frm").submit, sem sucesso.

    Fico muito grato caso possam me ajudar.

    Abs.

    Segue código:

    Public Sub Imprimir_1()
    On Error Resume Next
    Dim Endereço As String
    Dim Endereço2 As String
    Dim MyBrowser As SHDocVw.InternetExplorer
    Dim SWs As New SHDocVw.ShellWindows

    Endereço = "http://www.grfrecursal.caixa.gov.br/sisfg/pages/sfg/recursal/iniciar.jsf"
    Endereço2 = "http://www.grfrecursal.caixa.gov.br/sisfg/pages/sfg/recursal/recolhimento.jsf"
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Navigate (Endereço)
    ie.Visible = True
    ie.Document.forms.Item("frm").Item(2).Value = ""04740876000125"" 'CNPJ

    While ie.ReadyState <> 4
    Wend
    ie.Document.forms.Item("frm").Item(3).Value = "Empresa" 'Razão Social
    While ie.ReadyState <> 4
    Wend
    ie.Document.forms.Item("frm").Item(4).Value = "Marconi" 'Nome de Contato
    While ie.ReadyState <> 4
    Wend
    ie.Document.forms.Item("frm").Item(5).Value = "9999999999" 'Telefone de Contato
    While ie.ReadyState <> 4
    Wend
    ie.Document.forms.Item("frm").Item(9).Value = ""04740876000125"" 'CNPJ

    While ie.ReadyState <> 4
    Wend

    ie.Document.forms("frm").submit

    End Sub

    quinta-feira, 14 de agosto de 2014 00:24

Respostas

  • Amigos, problema resolvido. Obtive a resposta em outro fórum. A solução foi utilizar um For Each ... Next no método getElementsByTagName("a"), identificando o link pelo tabeindex e, aí sim, click nele.
    • Marcado como Resposta Marconiz quinta-feira, 21 de agosto de 2014 17:04
    quinta-feira, 21 de agosto de 2014 17:03

Todas as Respostas

  • Olá, boa noite.

    Felizmente consegui avança no código. Consegui avança para a próxima etapa do formulário. Finalmente, falta somente descobri o comando para gerar a guia, ou seja, clicar no botão "Gera Guia".

    Acredito que a solução esteja neste trecho do código fonte:

                    <div class="botoes_linha" style="height:70px; top:110px"> <div style="; margin-left:594px; "><a href="#" onmouseup="refresh(10000)" tabindex="19" type="submit" onclick="var a=function(){if (! validateFormLocal()) {return false};A4J.AJAX.Submit('frm',event,{'parameters':{'ajaxSingle':'frm:j_id141','frm:j_id142':'frm:j_id142'} ,'similarityGroupingId':'frm:j_id142'} );};var b=function(){if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('frm'),{'frm:j_id141':'frm:j_id141'},'');}return false};return (a()==false) ? false : b();" type="submit"> <img src="../../../imagens/bt_gerar_guia.jpg" border="0" alt="bot&atilde;o continuar" /></a>
                            

    Mais uma vez, agradeço antecipadamente  a ajuda do s colegas.

    sexta-feira, 15 de agosto de 2014 03:34
  • Amigos, problema resolvido. Obtive a resposta em outro fórum. A solução foi utilizar um For Each ... Next no método getElementsByTagName("a"), identificando o link pelo tabeindex e, aí sim, click nele.
    • Marcado como Resposta Marconiz quinta-feira, 21 de agosto de 2014 17:04
    quinta-feira, 21 de agosto de 2014 17:03