Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Usar Selenium para enviar (UPLOAD) arquivo
-
- Acabou de chegar
- Mensagens: 9
- Registrado em: Seg Jan 21, 2019 9:50 am
Usar Selenium para enviar (UPLOAD) arquivo
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). Já olhei em outros sites, mas não consigo fazer essa tarefa.
Espero que consigam me ajudar. Obrigado!
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). Já olhei em outros sites, mas não consigo fazer essa tarefa.
Espero que consigam me ajudar. Obrigado!
Re: Usar Selenium para enviar (UPLOAD) arquivo
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.
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.
-
- Acabou de chegar
- Mensagens: 9
- Registrado em: Seg Jan 21, 2019 9:50 am
Re: Usar Selenium para enviar (UPLOAD) arquivo
Bom dia Tomás,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.
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.
-
- Acabou de chegar
- Mensagens: 9
- Registrado em: Seg Jan 21, 2019 9:50 am
Re: Usar Selenium para enviar (UPLOAD) arquivo
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:
Espero que consigam me ajudar... hehehe
Obrigado por enquanto!
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:
Espero que consigam me ajudar... hehehe
Obrigado por enquanto!
Re: Usar Selenium para enviar (UPLOAD) arquivo
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
- 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
-
- Acabou de chegar
- Mensagens: 9
- Registrado em: Seg Jan 21, 2019 9:50 am
Re: Usar Selenium para enviar (UPLOAD) arquivo
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:
Já o site que eu estou tentando realizar este UpLoad não tem essa disponibilidade e tem um DropBox (DragOver):
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.
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:
Já o site que eu estou tentando realizar este UpLoad não tem essa disponibilidade e tem um DropBox (DragOver):
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.
Re: Usar Selenium para enviar (UPLOAD) arquivo
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
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