Página 1 de 1

Salvar Pagina da Web - Selenium

Enviado: Qua Mar 07, 2018 5:17 pm
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

Re: Salvar Pagina da Web - Selenium

Enviado: Ter Mai 29, 2018 9:06 pm
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