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

Usar Selenium para enviar (UPLOAD) arquivo

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
AndersonRamos
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Seg Jan 21, 2019 9:50 am

Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por AndersonRamos »

Fala galera, boa tarde!

Sou novo aqui no Fórum e inexperiente em VBA, meu conhecimento ainda é pouco, já fucei aqui no Fórum sobre esse tema, mas não encontrei o que eu precisava, se já houver algum tópico com essa solução peço desculpas... Hehehe

Mas vamos ao que interessa: Eu fiz um software que roda em VBA e que utiliza o Excel para guardar alguns dados, esse software gera um arquivo .TXT que salva em determinada pasta do computador, porém, eu quero automatizar ainda mais esse software, eu quero que além de salvar o .TXT na máquina, quero que ele envie esse arquivo para o destino final que é o site de uma instituição financeira.

Já fiz a interação do VBA + Chrome pelo Selenium, ele acessa o site com senha, usuário, nome do servidor e abre a janela do Windows para selecionar o arquivo, mas não estou conseguindo manipular esta janela de seleção de arquivos pelo Selenium.

Abaixo segue o Código escrito por mim (com ajuda do Tomás em uma vídeo aula) e um PrintScreen da janela que quero manipular (por questões óbvias, algumas informações foram ocultadas por serem sigilo bancário).
Sem título.png
Sem título.png (24.2 KiB) Exibido 12166 vezes
Janela.PNG
Janela.PNG (45.88 KiB) Exibido 12166 vezes
Já olhei em outros sites, mas não consigo fazer essa tarefa.

Espero que consigam me ajudar. Obrigado!


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.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por webmaster »

Anderson,

Você não precisa manipular a janela do arquivo. Isso é o navegador te ajudando a fazê-lo. Para a página, o elemento de upload é o mesmo que um campo de texto normal, portando, basta você usar o SendKeys para informar o caminho (completo) do arquivo.


AndersonRamos
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Seg Jan 21, 2019 9:50 am

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por AndersonRamos »

webmaster escreveu: Ter Jan 22, 2019 2:25 am Anderson,

Você não precisa manipular a janela do arquivo. Isso é o navegador te ajudando a fazê-lo. Para a página, o elemento de upload é o mesmo que um campo de texto normal, portando, basta você usar o SendKeys para informar o caminho (completo) do arquivo.
Bom dia Tomás,

Pois é ai onde estou empacado, eu tenho que clicar no botão "Adicionar Arquivos" ou o código antes de chamar a janela já envia o comando para o navegador com o caminho do arquivo?
Por que o que estou fazendo é enviando um comando de clicar no botão, mas depois não consigo informar o caminho do arquivo para que ele anexe ao site.


AndersonRamos
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Seg Jan 21, 2019 9:50 am

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por AndersonRamos »

Seguinte, tentei uma linha de código aqui, como cheguei nela, instalei a extensão do Selenium IDE no meu navegador e gravei os passos que fiz para anexar o arquivo ao Site, ele deu o seguinte código:

Command = Type
Target = css=input[type="file"]
Value = C:\PASTA\ARQUIVO.TXT

Com esses dados eu montei a seguinte rotina:

Sub Anexar_Arquivo()
Driver.FindElementByCss("css=input[type=""file""]").SendKeys Arquivo
End Sub

Onde a variável Arquivo contem o caminho do arquivo a ser anexado, e o VBA me retorna o seguinte erro:
Janela.PNG
Janela.PNG (8.35 KiB) Exibido 12133 vezes
Espero que consigam me ajudar... hehehe

Obrigado por enquanto!


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.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por webmaster »

Sugestões:

- Qual o resultado do Driver.FindElementByCss("css=input[type=""file""]")? Chegou a testar ele via janela de verificação imediata?
- Não lembro de cabeça, mas acho que "css=" não é necessário no FindElementByCss
- De toda forma, tente também o FindByXPath

Vídeo que vão ajudar:

https://www.youtube.com/watch?v=TuJ-F5P_n5g
https://www.youtube.com/watch?v=Z5G1M5TGAnQ
https://www.youtube.com/watch?v=WEikdqa4tRU

Att


AndersonRamos
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Seg Jan 21, 2019 9:50 am

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por AndersonRamos »

Então Tomás,

Já tinha assistido seu vídeo de como encontrar elementos na página, eu tentei utilizar o XPath e o CSS, mas sem sucesso...

Quando utilizei da Janela de Verificação Imediata, retornou o mesmo erro que informei acima "Erro de execução 32".

Eu encontrei um site com um código para fazer UpLoad de imagem, mas neste site tem um campo para o arquivo:

Imagem

Já o site que eu estou tentando realizar este UpLoad não tem essa disponibilidade e tem um DropBox (DragOver):

Imagem

Caso seja necessário para que possa me ajudar, eu disponibilizo o site e senha para seu acesso de forma privada.

Espero que consiga me ajudar! Obrigado por enquanto.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Usar Selenium para enviar (UPLOAD) arquivo

Mensagem por webmaster »

Anderson,

Nesse caso é bem diferente. Quando a página altera o comportamento padrão dos elementos, é preciso entendê-la e saber como manipular e isso exige conhecimento em HTML e Javascript.

Cada caso é um caso e o seu precisa ser analisado pontualmente.

Att


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