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

Manipular a janela de 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.
fabianoheringer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Jul 27, 2016 5:14 pm

Manipular a janela de download

Mensagem por fabianoheringer »

Pessoal, fiz uma macro que faz uma busca em um site, monta um relatorio, e exporto para um arquivo CSV.
Tudo isso ja fiz, e funcionou perfeitamente, o problema é que no momento da exportação, o navegador abre a janela para salvar e/ou abrir o arquivo. O que preciso é dar um "salvar como..." e colocar em uma determinada pasta.

Vi que é um processo mais complexo, pois precisa trabalhar com as API´s para manipular a janela, alguém poderia me dar uma ajuda de como proceder?

Abraços


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
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Manipular a janela de download

Mensagem por Mikel Silveira Fraga »

Fabiano, boa noite e seja muito bem vindo ao fórum.

Pelo que vi de sua dúvida, uma das formas mais simples de se conseguir realizar esse download, seria utilizando o modelo/proposta do link abaixo:
- VBA – FAZENDO O DOWNLOAD DE UM ARQUIVO

Veja se consegue compreender e adaptar o código. Caso tenha alguma dúvida, envie mais detalhes sobre seu modelo, para que possamos tentar ajudá-lo.

Forte abraço.


fabianoheringer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Jul 27, 2016 5:14 pm

Re: Manipular a janela de download

Mensagem por fabianoheringer »

Olá Mikel, obrigado pela resposta.
Então, eu já havia tentado utilizar esse método, mas neste caso ele tá baixando o código html da página, e não o arquivo em si.

O grande problema no meu caso, é que a página web a partir de certos filtros, gera o arquivo a ser baixado, e não é um link direto pro arquivo. Por isso que esse script que você mencionou não está funcionando.

Fiz todo o processo de "navegar" na página, ai fique no último passo que era salvar arquivo rs rs...


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Manipular a janela de download

Mensagem por Mikel Silveira Fraga »

Fabiano, bom dia.

Entendi sua situação, até cheguei a suspeitar, mas não tinha certeza pelo fato de você não ter disponibilizado um modelo para teste.

Nesse caso, se ele chega a abri uma janela para download, talvez a solução abaixo lhe atenda:
- Interação VBA com Internet Explorer - Janela Download

Dê uma olhada na solução dada neste tópico e veja se pode vir a lhe ajudar.

Caso não dê certo, continuamos a buscar uma solução.

Abraços.


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.


fabianoheringer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Jul 27, 2016 5:14 pm

Re: Manipular a janela de download

Mensagem por fabianoheringer »

Olá Mikel, também testei essa solução, o problema que as versões novas do Internet Explorer, não abrem mais uma "janela" a parte, e sim ela está dentro do navegador, portanto não uma identificação pela janela, para que esse script possa funcionar.

Já rodei tudo e não encontrei nada parecido. Então vou partir pro plano B

Neste meu script, antes de tentar gerar o arquivo, a tabela que preciso ela é exibida no navegador, minha idéia então e tentar identificá-la dentro do código html, e de alguma maneira copiá-la para a planilha.

Abaixo:
download/file.php?mode=view&id=3399

Ja identifiquei também o nome da tabela no código html, agora nao sei como "copiar" pra dentro da planilha.

Alguma idéia?

Abraços!
Anexos
relatorio.jpg
relatorio.jpg (159.38 KiB) Exibido 10837 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Manipular a janela de download

Mensagem por Mikel Silveira Fraga »

Fabiano, boa tarde.

Cara, realmente o lance do download ficou complicado. Além disso, o IE também não tem acompanhado, de forma satisfatória, a evolução dos recursos da web.

Porém, se você tem a condição de baixar a informação diretamente da tabela, conforme imagem, dê uma olhada nessa apostila sobre integração de VBA + IE. Com certeza você irá encontrar informações que irão te ajudar nessa tarefa.
- Interação VBA com Internet Explorer - Apostila

Tentei localizar algum comando que fizesse a captura dos campos de uma tabela, mas no momento me recordo de um modelo apenas, mas o mesmo não utiliza o Microsoft Internet Control para realizar interação, mas sim o Selenium VBA. Por falar nele, te indicaria como ferramenta para realização dos procedimentos de interação entre VBA x WEB. Seguem alguns links abaixo:
- Modelo Captura Tabela: [MODELO] Consulta CEP Correios usando Selenium VBA;
- Links falando sobre Selenium VBA:
-- Fórum: viewtopic.php?f=23&t=4161
-- Blog: http://www.tomasvasquez.com.br/blog/mic ... -webdriver
-- YouTube: https://www.youtube.com/watch?v=hk-65p2 ... e=youtu.be

Dúvidas, estamos a disposição.

Abraços e excelente semana.


fabianoheringer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Jul 27, 2016 5:14 pm

Re: Manipular a janela de download

Mensagem por fabianoheringer »

Olá Mikel,
Vou dar uma vasculhada sim nessa apostila pra saber se encontro o que preciso.Obrigado pela ajuda

Quanto ao Selenium, comecei a mexer na solução, mas não sei o que acontece que ele dá um erro muito estranho.

"Unable to bind to locking port 9054 within 45000 ms"

o código que o selenium ide gerou foi o seguinte:

Dim selenium
Set selenium = CreateObject("SeleniumWrapper.WebDriver")
selenium.Start "firefox", "http://aplicacoes2.portobello.com.br:8080/"

selenium.Open "/ords/prd/f?p=107:LOGIN_DESKTOP:13264655292245:::::"
selenium.Type "id=P101_USERNAME", "xxxx"
selenium.Type "id=P101_PASSWORD", "xxx"
selenium.clickAndWait "id=B30248543147160805"
selenium.clickAndWait "link=Histórico de Pedido"
selenium.Type "id=P15_DAT_INIC", "01/01/2016"
selenium.Type "id=P15_DAT_FIM", "31/12/2050"
selenium.Select "id=R31588350623805231_row_select", "label=Tudo"
selenium.Click "xpath=(//button[@type='button'])[8]"
selenium.Click "xpath=(//button[@type='button'])[8]"
selenium.Click "xpath=(//button[@type='button'])[7]"

selenium.stop
Editado pela última vez por fabianoheringer em Sex Jul 29, 2016 9:30 am, em um total de 1 vez.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Manipular a janela de download

Mensagem por Mikel Silveira Fraga »

Fabiano, boa noite.

Esse erro tem ocorrido já a algum tempo. O que ocorre é uma incompatibilidade das últimas versões do Firefox e SeleniumVBA.

Para corrigir esse erro, faça a alteração na linha abaixo:

Código: Selecionar todos

selenium.Start "chrome", "http://aplicacoes2.portobello.com.br:8080/"
Dessa forma, a rotina deverá funcionar perfeitamente.

Ps.: Enviei uma MP pra ti. Tente lê-la urgentemente.

Abraços e bom descanso.


fabianoheringer
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Jul 27, 2016 5:14 pm

Re: Manipular a janela de download

Mensagem por fabianoheringer »

Olá Mike, obrigado pela MP...

Então, parei no seguinte, com aquela apostila que voce me indicou, consegui copiar a tabela para a planilha do excel, ficou excelente.

Mas surgiu um outro imprevisto, se você reparar no relatorio, existe a lista para escolher quantas linhas mostrar por pagina, até ai tudo bem, consegui fazer com que selecionasse "Tudo". O problema que nesse relatório, nao existe um botao do tipo "Buscar" ou "Atualizar", quando eu clico na quantidade de linhas "Tudo" ele já atualiza. Quando faço isso via o código, ele só seleciona o tudo, mas não atualiza a tabela com todas as linhas.

Existe esse botão de "Ir" que aparece na imagem, mas quando faço o comando para selecionar o "Tudo", e clico em Ir, ele volta pro padrão que são "50" linhas.

Pensei em logo selecionar as linhas, enviar um comando de TAB pra ele atualizar...é possível fazer isso ?


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Manipular a janela de download

Mensagem por Mikel Silveira Fraga »

Fabiano, bom dia.

Sobre a MP, sem problema. Percebi o que você tinha feito, o que te deixou exposto. Espero que eu tenha sido o único a perceber isso.

Sobre a sua dúvida, provavelmente essa seleção esta vinculada a um Evento onChance do JavaScript, de forma que de acordo com a alteração, ele já deveria realizar o procedimento de correção.

Não vou me lembrar agora, mas caso esse evento exista, procure um comando no WebDriver do Selenium, para execução do Script. Se não me engano, esse comando é algo parecido com execScript. Dê uma olhada nas opções da lista de métodos e propriedades (IntelliSense) do WebDriver do Selenium.

Fico no aguardo do retorno.

Abraços e excelente final de semana.


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