Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

driver.AddArgument ("--headless")

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Seg Out 07, 2019 11:12 am

Olá Pessoal,

A baixou eu tenho uma programação bem bacana que funciona muito bem para baixar arquivos de Notas fiscais de serviço da Internet, roda bem tranquilo.

Porem quando eu coloco para trabalhar em segundo Plano com argumento "driver.AddArgument ("--headless")"
"""'O Download não é efetuado""""".
Ah também não consegui manipular o caminho do arquivo, acredito que fiz algo errado, mas sem ser em segundo plano, baixa o arquivo tranquilamente na Pasta download padrão Chrome.

Não tenho conhecimento avançados nesse tipo de programação, mas estou adorando, poderiam me dar uma força amigos?


Sub Betha()

Dim driver As New Selenium.ChromeDriver
Dim screenShot As Image
Set driver = New ChromeDriver
' driver.AddArgument ("--headless")
driver.Get "https://e-gov.betha.com.br/e-nota/entidade.faces"
While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.FindElementById("login:iUsuarios").SendKeys Range("D6")
driver.FindElementById("login:senha").SendKeys Range("D7")
driver.FindElementById("login:btAcessar").Click

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... nfse.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend

driver.FindElementById("mainForm:periodoIni").SendKeys Range("D10")
driver.FindElementById("mainForm:periodoFim").SendKeys Range("D11")
driver.FindElementById("mainForm:btExecutar").Click
While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.SwitchToAlert.Accept

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend



driver.FindElementByPartialLinkText("ver").Click



On Error GoTo Err
Dim Auxiliar As Long
Dim URL As String, CaminhoLocal As String
URL = "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"
CaminhoLocal = "C:\Users\User\Desktop\Teste"

MsgBox "Download efetuado com sucesso!"
Exit Sub
Err:
MsgBox "Erro no download do arquivo"




End Sub



Desde já muito 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.



Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

Re: driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Seg Out 07, 2019 1:10 pm

Primeiramente agradeço por estar me ajudando, porem por falta de experiencia da minha parte ainda não consegui.. Nem fazer o download usando o método " driver.AddArgument ("--headless")" , somente sem ele que consigo e também não consegui manipular o download.

Acredito também que exista alguns erros em o que montei, poderia sitar aonde posso estar errando?

Estou assistindo seus videos e são todos ótimos, já progredi muito com eles e agradeço também por compartilhar o conhecimento.

Podes verificar se teria algo a mudar ?

Sub Betha()

Dim driver As New Selenium.ChromeDriver
Set driver = New ChromeDriver
driver.AddArgument ("--headless")
driver.SetPreference "download.default_directory", Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "")
driver.SetPreference "download.directory_upgrade", True
driver.SetPreference "download.prompt_for_download", False

driver.Get "https://e-gov.betha.com.br/e-nota/entidade.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.FindElementById("login:iUsuarios").SendKeys Range("D6")
driver.FindElementById("login:senha").SendKeys Range("D7")
driver.FindElementById("login:btAcessar").Click

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... nfse.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend

driver.FindElementById("mainForm:periodoIni").SendKeys Range("D10")
driver.FindElementById("mainForm:periodoFim").SendKeys Range("D11")
driver.FindElementById("mainForm:btExecutar").Click
While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.SwitchToAlert.Accept

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend



driver.FindElementByPartialLinkText("ver").Click



On Error GoTo Err
Dim Auxiliar As Long
Dim URL As String, CaminhoLocal As String
URL = "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"
CaminhoLocal = "C:\Users\User\Desktop\Teste"

MsgBox "Download efetuado com sucesso!"
Exit Sub
Err:
MsgBox "Erro no download do arquivo"




End Sub



Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

Re: driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Ter Out 08, 2019 11:26 am

Olá amigos,

Consegui manipular o Download, agora tudo certo.
Preciso de um Help no modo Headless, se eu ativo ele meu download não sai.
Porque no modo oculto ocorre isso ? preciso de uma luz

Sub Betha()

Dim driver As New Selenium.ChromeDriver
Set driver = New ChromeDriver
'driver.AddArgument ("--headless")

driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.directory_upgrade", True
driver.SetPreference "download.default_directory", "C:\Users\User\Desktop\Teste\"
driver.SetPreference "safebrowsing.enabled", False
driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.setdownloadbehaviour", "allow"
driver.SetPreference "safebrowsing.disable_download_protection", True


driver.Get "https://e-gov.betha.com.br/e-nota/entidade.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.FindElementById("login:iUsuarios").SendKeys Range("D6")
driver.FindElementById("login:senha").SendKeys Range("D7")
driver.FindElementById("login:btAcessar").Click

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... nfse.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend

driver.FindElementById("mainForm:periodoIni").SendKeys Range("D10")
driver.FindElementById("mainForm:periodoFim").SendKeys Range("D11")
driver.FindElementById("mainForm:btExecutar").Click
While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.SwitchToAlert.Accept

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend



driver.FindElementByPartialLinkText("ver").Click



On Error GoTo Err
Dim Auxiliar As Long
Dim URL As String, CaminhoLocal As String
URL = "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"
CaminhoLocal = "C:\Users\User\Desktop\Teste\"

MsgBox "Download efetuado com sucesso!"
Exit Sub
Err:
MsgBox "Erro no download do arquivo"




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.


Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

Re: driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Qui Out 10, 2019 2:19 pm

Olá Pessoal,

Não progredi em nenhum momento com esse cara chamado "driver.AddArgument ("--headless")" kkkkkkkkk
Infelizmente com ele ativo não consigo fazer download algum, gostaria de entender se é algo com meu navegador ou realmente é complicado?


Desde já agradeço qualquer ajuda.



Avatar do usuário
webmaster
Administrador
Mensagens: 2630
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: driver.AddArgument ("--headless")

Mensagem por webmaster » Sex Out 11, 2019 12:48 pm

Julio,

Não estava acompanhando de perto. Quer dizer que, quando você remove a opção headless, funciona normalmente?


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

Re: driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Seg Out 14, 2019 7:51 am

Bom dia,

Sim, Quando eu retiro ele o download ocorre normalmente.

Eu testei esse argumento para puxar uma tabela e com ele ativo, funcionou normalmente a tabela veio tranquilamente, agradeço desde já porque só consegui puxar os dados através de seus videos e são todos òtimos, mas para efetuar download é onde ocorre o problema, somente download mesmo não executa com argumento ativo.

Hoje está assim... Será que tenho que colocar alguma travinha lá em baixo de alguns segundos para que o download seja concluído?
Fico até pensando que pode ser o navegador ou algum complemento que falta, procurei na internet e vi muita variedade para outras linguagens, tentei arrumar para ver se conseguia mas não tive sucesso...

Desde já agradeço sua atenção.

Sub Betha()

Dim driver As New Selenium.ChromeDriver
Set driver = New ChromeDriver
'driver.AddArgument ("--headless")

driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.directory_upgrade", True
driver.SetPreference "download.default_directory", "C:\Users\User\Desktop\Teste\"
driver.SetPreference "safebrowsing.enabled", False
driver.SetPreference "download.prompt_for_download", False
driver.SetPreference "download.setdownloadbehaviour", "allow"
driver.SetPreference "safebrowsing.disable_download_protection", True


driver.Get "https://e-gov.betha.com.br/e-nota/entidade.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.FindElementById("login:iUsuarios").SendKeys Range("D6")
driver.FindElementById("login:senha").SendKeys Range("D7")
driver.FindElementById("login:btAcessar").Click

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... nfse.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend

driver.FindElementById("mainForm:periodoIni").SendKeys Range("D10")
driver.FindElementById("mainForm:periodoFim").SendKeys Range("D11")
driver.FindElementById("mainForm:btExecutar").Click
While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend
driver.SwitchToAlert.Accept

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend


driver.Get "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"

While Busy
Application.Wait TimeSerial(Hour(Now), Minute(Now), Second(Now) + 1)
DoEvents:
Wend



driver.FindElementByPartialLinkText("ver").Click



On Error GoTo Err
Dim Auxiliar As Long
Dim URL As String, CaminhoLocal As String
URL = "https://e-gov.betha.com.br/e-nota/contr ... cess.faces"
CaminhoLocal = "C:\Users\User\Desktop\Teste\"

MsgBox "Download efetuado com sucesso!"
Exit Sub
Err:
MsgBox "Erro no download do arquivo"




End Sub



Avatar do usuário
webmaster
Administrador
Mensagens: 2630
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: driver.AddArgument ("--headless")

Mensagem por webmaster » Seg Out 14, 2019 4:34 pm

Julio,

Olhando o código, faz sentido. O headless falha por causa do SendKeys. O SendKeys é uma interação ativa com o que está na tela. Se não estiver, ele está clicando/digitando no "nada".

Se quiser que seu código funcione no modo headless, você vai ter que abrir mão do SendKeys.

Att


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Julio Mangilli
Colaborador
Colaborador
Mensagens: 90
Registrado em: Sex Out 05, 2018 2:42 pm

Re: driver.AddArgument ("--headless")

Mensagem por Julio Mangilli » Seg Out 14, 2019 6:02 pm

Entendi, agora me vi em um caminho complexo.
Qual outro método que posso utilizar no lugar do sendkeys para puxar dados das Range?



E desde já muito obrigado por encontrar o erro.



Avatar do usuário
webmaster
Administrador
Mensagens: 2630
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: driver.AddArgument ("--headless")

Mensagem por webmaster » Seg Out 14, 2019 6:04 pm

Julio,

Falei besteira. Vou analisar o código com calma antes de falar qualquer outra coisa. Aguenta aí


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

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