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

VBA+Selenium: Salvar Documento ou imagem

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.
rlellis
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Seg Mai 30, 2016 3:30 pm

VBA+Selenium: Salvar Documento ou imagem

Mensagem por rlellis »

Olá pessoal,

Tenho um processo de automação rodando no Chrome. Quando eu clico no link de um documento (PDF, DOC, XLS, ZIP,...) / imagem (JPG, TIF, PNG, BMP, ...), o documento / imagem (quando possível) é aberto em uma nova guia. Após abrir o arquivo, preciso salvar este documento .

Tentei usar a SendKeys com a sequencia <Control>+"S" conforme exemplo abaixo, mas não obtive sucesso, alguém sabe me dizer onde estou errando?

Não posso pegar o link do arquivo direto, porque ele é dinâmico e depende de um processamento do servidor.

O código abaixo é a parte referente a salvar um arquivo PDF:
...

Public swd As New SeleniumWrapper.WebDriver

swd.clickAndWait "css=img.imgCmdVr"
swd.clickAndWait "link=Andamentos"
swd.clickAndWait "css=img.imgCmdVr"
swd.clickAndWait "link=Documentos"
swd.clickAndWait "css=img.imgCmdVr"
swd.clickAndWait "link=INICIAL.pdf" 'Aqui eu consigo abrir o arquivo no Chrome

Application.Wait Now() + TimeValue("0:00:08")

swd.SendKeys Keys.Control, "s"

Application.Wait Now() + TimeValue("0:00:08")

swd.setImplicitWait 5000
swd.SendKeys "c:\temp\123.pdf"
swd.SendKeys Keys.Enter
swd.setImplicitWait 10000



....

Não acontece nenhum erro, simplesmente não abre.

Conto com a ajuda de todos.

Grato.


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: VBA+Selenium: Salvar Documento ou imagem

Mensagem por webmaster »

Colega,

O SendKeys no meu entedimento funciona no contexto do Excel. N'ao vej como ele poderia interferir no navegador. O que voce pode fazer e explorar opcoes de automacao do chrome. Voce seta isso na inicializacao. Procure por Chrome configurations.

Att


rlellis
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Seg Mai 30, 2016 3:30 pm

Re: VBA+Selenium: Salvar Documento ou imagem

Mensagem por rlellis »

Tomás,

Você conhece alguma forma para eu substituir o comando:
swd.clickAndWait "link=INICIAL.pdf" 'Aqui eu consigo abrir o arquivo no Chrome

Por uma estrutura onde eu pudesse simular o clicar com a tecla da direita e selecionar o "Save target as"??

Eu estou abrindo o arquivo para depois salvar porque não consegui implementar uma forma de chamar o menu que fica ligado ao botão direito do mouse.

Grato desde já pelas informações.


melchi
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Set 20, 2017 1:10 pm

Re: VBA+Selenium: Salvar Documento ou imagem

Mensagem por melchi »

Colega, você conseguiu resolver este problema ?
Pois estou na mesma dúvida, não posso salvar o link pois ele é gerado a partir de um processamento de dados, e quando está aberto e fica na forma de PDF.
O que eu queria era exatamente o que vc quer, atribuir um nome para este arquivo e salvar numa pasta indicada.


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.


melchi
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Set 20, 2017 1:10 pm

Re: VBA+Selenium: Salvar Documento ou imagem

Mensagem por melchi »

Então, eu resolvi da seguinte forma.
Pode não ser elegante mas deu certo.

Depois que o arquivo é salvo na pasta, eu mando renomear ele e mover ele de pasta.

ta ai o codigo q usei..


Sub RenomearArq()

uLine = Sheets("Certidões").Range("I" & Rows.Count).End(xlUp).Row
'Executa no intervalo de linhas definido
Set Rng1 = Sheets("Certidões").Range("I8:I" & uLine).Cells
For Each Cell In Rng1

'Pega o nome antigo na Coluna A e armazena na variavel
NomeAntigo = "C:\Users\Melchi\Downloads\consultarSituacaoFornecedor (1)"

'Pega o novo nome na coluna B e armazena na variavel
NovoNome = "C:\Users\Melchi\Downloads\" & Cell(1, 1).Value

Name NomeAntigo As NovoNome
Name "C:\Users\Melchi\Downloads\" & Cell(1, 1).Value As "C:\Users\Melchi\Desktop\CARGA DE DADOS\Certidão\Baixadas\" & Cell(1, 1).Value

Next

End Sub


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