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

Abrir último .xlsx feito download

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.
murilofrigeri
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Qui Nov 26, 2020 3:41 pm

Abrir último .xlsx feito download

Mensagem por murilofrigeri »

Fiz uma programação através de VBA + Selenium que acessa um site através do google chrome, digita minhas informações de login e após isso preenche alguns campos e faz download de um relatório no formato Excel (.xlsx).
O nome do arquivo é sempre relatorio e conforme vão baixando mais relatórios o próprio google chrome vai nomeando relatorio (1), relatorio (2)...
Estou procurando há algum tempo algum código VBA que consiga acessar o último arquivo feito download em uma pasta ou algum código do Selenium que consiga acessar o último arquivo que foi feito o download ou pelo menos o nome do último arquivo. Alguém tem uma ideia de como posso fazer isso?


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.


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Abrir último .xlsx feito download

Mensagem por Raygsson »

Veja se ajuda: https://www.tomasvasquez.com.br/blog/mi ... chrome-70/
Pelo que entendi do código é feito um Scraping na aba de download do Chrome, buscando o primeiro item acima.
Se o código não funcionar, foi testado na versão 70 do Chrome, pode usar a mesma linha de raciocínio para ajustar a versão atual do navegador.


murilofrigeri
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Qui Nov 26, 2020 3:41 pm

Re: Abrir último .xlsx feito download

Mensagem por murilofrigeri »

Eu tentei utilizar o exemplo feito nesse tópico https://www.tomasvasquez.com.br/blog/mi ... chrome-70/ no meu código, no entanto não encontra o nome do último download.
A variável UltimoDownloadFeito fica vazia.


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Abrir último .xlsx feito download

Mensagem por Raygsson »

Altere o ID na linha que captura nome, deixe assim:

Código: Selecionar todos

 
 Sub CapturarDownload()

    Dim driver As ChromeDriver
    Set driver = New ChromeDriver

    driver.Get "http://www.tomasvasquez.com.br/downloads/ModeloCadastrov3ListView.zip"
    driver.Get "chrome://downloads/"
    
    Application.Wait (Now + TimeValue("00:00:02"))

    Set downloadsManager = driver.FindElementByTag("downloads-manager")
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsManager)
    Set downloadsItem = driver.ExecuteScript("return arguments[0].querySelectorAll('downloads-item')[0];", shadowRoot)
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsItem)
    Set Nome = shadowRoot.FindElementById("file-link")
    
    Debug.Print Nome.Text

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.


murilofrigeri
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Qui Nov 26, 2020 3:41 pm

Re: Abrir último .xlsx feito download

Mensagem por murilofrigeri »

Raygsson escreveu: Seg Fev 08, 2021 2:37 pm Altere o ID na linha que captura nome, deixe assim:

Código: Selecionar todos

 
 Sub CapturarDownload()

    Dim driver As ChromeDriver
    Set driver = New ChromeDriver

    driver.Get "http://www.tomasvasquez.com.br/downloads/ModeloCadastrov3ListView.zip"
    driver.Get "chrome://downloads/"
    
    Application.Wait (Now + TimeValue("00:00:02"))

    Set downloadsManager = driver.FindElementByTag("downloads-manager")
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsManager)
    Set downloadsItem = driver.ExecuteScript("return arguments[0].querySelectorAll('downloads-item')[0];", shadowRoot)
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsItem)
    Set Nome = shadowRoot.FindElementById("file-link")
    
    Debug.Print Nome.Text

End Sub

Deu certo, 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.


Responder