Usuário com melhor resposta
Interação VBA Internet Explorer:

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
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
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ão continuar" /></a>
Mais uma vez, agradeço antecipadamente a ajuda do s colegas.
-
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