Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Interação IE com VBA

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Helen Pitanga
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 06, 2019 5:26 pm

Interação IE com VBA

Mensagem por Helen Pitanga »

Oi pessoal!

Fiz um curso de VBA e agora estou colocando em prática onde trabalho. A questão é que empaquei aqui e não consigo sair.

Quero extrair relatórios de um determinado site que empresa usa para controle de estoque e saldo de colaboradores, mas não estou conseguindo fazer funcionar. É necessário fazer uma série de cliques (1º em Estoques; 2º Estoque por Técnico; 3º Exportar). Segue abaixo o código que localizei realizando a inspeção dos dois primeiros passos:
1º Estoques - <li class="active menu" id="menuid_b_5">
<a href="javascript:getMenu('Estoques','37319',menuid_b_5);">Estoques</a>
</li>

2º Estoque por Técnico - <ul class="vertical group level1" style="top: 0px; display: block;"></ul>
<input name="rdmTabela" id="rdmTabela_Hidden" type="hidden">
<script type="text/javascript"> window["rdmTabela"]=RadMenu.Create("rdmTabela");window["rdmTabela"].Initialize({"IsContext":true,"ContextMenuElementID":"wrapper","Skin":"Outlook","Flow":0,"Enabled":true,"OnClientItemClicked":"OnClick"},{});
</script>

Gente, desculpa se pareço muito ignorante no assunto, mas como eu disse, estou iniciando.

Obrigada.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: Interação IE com VBA

Mensagem por Julio Mangilli »

Olá tudo bom?

Um inicio para você tentar.....


Sub buscar()

Dim IE As Object
Set IE = CreateObject("InternetExplorer.application")
With IE
.Visible = True
.NAVIGATE ("Seu site")
'exemplo de link para por ali dentro:https://servicos.gollog.com.br/Home/Inicio#cotacao

While .Busy Or .ReadyState <> 4:
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


IE.Document.getElementById("menuid_b_5").Click
IE.Document.getElementById("rdmTabela_Hidden").Click


Caso queira colocar em algum campo valores pode utilizar

IE.Document.getElementById("").Value = ("22/09/2019")

Abraços


Helen Pitanga
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 06, 2019 5:26 pm

Re: Interação IE com VBA

Mensagem por Helen Pitanga »

Oi Julio.

Boa tarde.

Obrigada pelo seu breve retorno.

Quando vou depurar, ele passa pelo código, mas não acontece nada. :(


gioboscolo
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Qui Out 24, 2019 3:18 pm

Re: Interação IE com VBA

Mensagem por gioboscolo »

Boa noite, amigo.
Há alguns dias tive um problema parecido.
Segue o tópico: (https://www.tomasvasquez.com.br/forum/v ... php?t=7325)

Posso te adiantar que pesquisei muito para sair desse erro. Mas a solução encontrada foi a que me referi no tópico.

Pelo que pesquisei há alguns métodos de se fazer interações com objetos javascript.
Pegando pelo ID, que a pessoa acima sugeriu e na maioria das vezes da certo.
Se não der vai tentando coisas diferentes.

utilize o comando do amigo e substitua o "IE.Document.getElementById("menuid_b_5").Click" pelo seguinte:
Tentando pela classe "IE.Document.getElementsByClassName("active menu").Click" obs: se tiver outros menus com a mesma classe pode ser que ele clique em outro. Caso o faça a solução está aí. Deve-se posteriormente adicionar o item que você deseja clicar. IE.Document.getElementsByClassName("active menu").item(nº).Click

A mesma coisa pela tag: IE.Document.getElementsByTagName("li").item(nº).Click ~> nesse método é mais difícil de localizar o item devido a quantidade comumente altas de tags iguais na mesma página.

voce pode tentar também .document.all.item("menuid_b_5").Click (e ir tentando com os outros elementos)
Caso não consiga há também o método execscript q executa a tarefa javascript (não sei utilizá-lo mas na web tem bastante coisa)

Se a sua empresa permitir e não necessitar homologação talvez seja válido utilizar o Selenium para tla visto que pelo que pesquisei este é melhor para essas tarefas.

Apesar de eu ter tido sucesso na automação da interação de tres sites, em um deles eu não estou conseguindo. Então caso vc ache a solução favor compartilhar conosco!

Boa sorte!

Finalmente, como eu sofri muito para criar minha automação estou a disposição para te ajudar.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: Interação IE com VBA

Mensagem por Julio Mangilli »

O gioboscolo tem razão....

A gente vai muito por tentativa o método Selenium tem muita opção legal que acaba facilitando eu acredito
Se quiser eu posto aqui uma por selenium para voce testar mas se você estiver pelo mesma situação do gioboscolo então vamos tentar outra forma , o gioboscolo já tem experiencia em IE então juntos vamos tentar ajudar e estou a disposição também.


Helen Pitanga
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 06, 2019 5:26 pm

Re: Interação IE com VBA

Mensagem por Helen Pitanga »

Oi Júlio. Toda ajuda é bem vinda. Estive pesquisando sobre o Selenium WebDriver, mas aqui na empresa não é liberada a instalação. Precisa do "De acordo" até do gerente.

Obrigada a todos pelo emprenho em me ajudar. Estou me sentindo bem acolhida aqui! ;)


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: Interação IE com VBA

Mensagem por Julio Mangilli »

E como está indo seu projeto ?

Tem uma forma para aquele segundo botão

Dim objElementCol As Object
Dim objElement As Object

Set objElementCol = IE.Document.getElementsByTagName("input")

For Each objElement In objElementCol
If objElement.Value = "rdmTabela_Hidden" Then 'ou "rdmTabela"
objElement.Click
Exit For
End If
Next objElement

Na verdade como disse nosso amigo gioboscolo , temos que ir por tentantiva caso a programação não consiga achar o elemento.

Por isso as ID
IE.Document.getElementById("menuid_b_5").Click
IE.Document.getElementById("rdmTabela_Hidden").Click

Que coloquei são tentativas, muitas vezes vai da certo, mas tente verificar se realmente os nomes foram encontrados.
IE.Document.getElementById("menuid_b_5").value
IE.Document.getElementById("menuid_b_5").Click

Testa e nos informe.


Helen Pitanga
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 06, 2019 5:26 pm

Re: Interação IE com VBA

Mensagem por Helen Pitanga »

Olá pessoal.
Tenho novidades. Consegui colocar o Selenium no PC em casa (sim, levei trabalho pra casa :) ) e consegui as informações. Só não estou sabendo como criar o código.

Command (click) - Target (linkText = Estoques)
Command (click) - Target (css=.accordionContent:nth-child(1))
Command (Select Frame) - Target (index=0)
Command (click) - Target (id = btnExportar)

Gente, se vocês tiverem o link de algum site que eu aprenda e entenda sobre quais códigos usar para fazer essa geringonça funcionar, me digam. Tentarei fazer esse código na marra. Rsrsrsrsrs

Abraços galera!


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: Interação IE com VBA

Mensagem por Julio Mangilli »

Olá,

Segue exemplo, qualquer coisa estamos a disposição..
Selenium tem varias ideias legais para buscar o elemento.

driver.FindElementById("").Click
driver.FindElementByClass("").Click
driver.FindElementByName("").Click
driver.FindElementByxpath("").Click
driver.FindElementByPartiallinktext("").Click
driver.FindElementBylinktext("").Click

Verifica o que consegue e nos avise.
Anexos
CAIXA FGTS EM ATRASO.rar
(257.97 KiB) Baixado 232 vezes


Helen Pitanga
Acabou de chegar
Acabou de chegar
Mensagens: 7
Registrado em: Qua Nov 06, 2019 5:26 pm

Re: Interação IE com VBA

Mensagem por Helen Pitanga »

Oi pessoal. Ainda estou tentando fazer funcionar. Só me tirem uma dúvida. Se eu conseguir a programação com o Selenium, a macro só roda em máquinas que tenham Selenium instalado em seus navegadores?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder