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

Salvar Pagina da Web - Selenium

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.
melchi
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Qua Set 20, 2017 1:10 pm

Salvar Pagina da Web - Selenium

Mensagem por melchi »

Olá, gostaria de uma ajuda!!
Já quebrei a cabeça com isso mas não consigo resolver!

Tenho um script que insere informação em um campo (CNPJ), clicka num botão, que abre em outra aba e carrega uma pagina na internet.
Bom, até aí tá tudo beleza, só que eu queria salvar esta pagina no meu computador.
Mas não consigo fazer o selenium ler a aba que foi aberta pelo botão!! Alguém pode me ajudar ???
O problema está nesta linha "driver.SwitchToWindowByName("certidao", -1, True) = Window" ele diz que não existe método ou propriedade.
Eu tentei clicar no botão "imprimir" desta segunda aba, mas acho que nem funcionaria. Se eu vencer esta fase, a próxima seria dar um comando do tipo "save as"

Segue o código:


Sub Distrital()
Dim driver As WebDriver
Set driver = New ChromeDriver
Dim CNPJ As String
Dim nomeDaJanelaDeDestino As String
Dim certidao As String
redo:

PastaDestino = "C:\Users\Melchi\Desktop\CARGA DE DADOS\Certidão\Baixadas"
driver.Get "http://www.fazenda.df.gov.br/area.cfm?id_area=449"
Application.Wait (Now + TimeValue("0:00:03"))
driver.FindElementByXPath("//*[@id=""formEmiteCertidao""]/table[1]/tbody/tr/td/input[1]").Click
Application.Wait (Now + TimeValue("0:00:03"))

uLine = Sheets("Certidões").Range("O" & Rows.Count).End(xlUp).Row

'Executa no intervalo de linhas definido
Set Rng2 = Sheets("Certidões").Range("O8:O" & uLine).Cells
For Each Cell In Rng2

CNPJ = "00346098000133"
driver.FindElementById("argumento").SendKeys CNPJ
driver.FindElementById("btnGeraCertidao").Click
Application.Wait (Now + TimeValue("0:00:02"))
nomeDaJanelaDeDestino = "certidao"
driver.SwitchToWindowByName("certidao", -1, True) = Window

driver.FindElementByXPath("/html/body/a/img").Click

Next Cell
driver.Quit
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.


Nill2016
Colaborador
Colaborador
Mensagens: 32
Registrado em: Qua Mai 09, 2018 11:34 am

Re: Salvar Pagina da Web - Selenium

Mensagem por Nill2016 »

Fiz um teste e veja se a modificação que fiz lhe oferece um caminho:

Sub Distrital()
Dim driver As WebDriver
Set driver = New ChromeDriver
Dim CNPJ As String
Dim nomeDaJanelaDeDestino As String
Dim certidao As String
redo:

PastaDestino = "C:\Users\Melchi\Desktop\CARGA DE DADOS\Certidão\Baixadas"
driver.Get "http://www.fazenda.df.gov.br/area.cfm?id_area=449"
Application.Wait (Now + TimeValue("0:00:03"))
driver.FindElementByXPath("//*[@id=""formEmiteCertidao""]/table[1]/tbody/tr/td/input[1]").Click
Application.Wait (Now + TimeValue("0:00:03"))

uLine = Sheets("Certidões").Range("O" & Rows.Count).End(xlUp).Row

'Executa no intervalo de linhas definido
Set Rng2 = Sheets("Certidões").Range("O8:O" & uLine).Cells
For Each Cell In Rng2

CNPJ = "00346098000133"
driver.FindElementById("argumento").SendKeys CNPJ
driver.FindElementById("btnGeraCertidao").Click
Application.Wait (Now + TimeValue("0:00:02"))
nomeDaJanelaDeDestino = "certidao"
'driver.SwitchToWindowByName("certidao", -1, True) = Window - Está desabilitada
driver.SwitchToNextWindow.Activate 'Vai para aba ativa.
driver.FindElementByXPath("/html/body/a/img").Click

Next Cell
driver.Quit
End Sub


Responder