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

Selenium vba verificar se a pagina foi carregada e tela de espera durante a busca

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.
grsn
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Qua Mar 18, 2020 7:01 am

Selenium vba verificar se a pagina foi carregada e tela de espera durante a busca

Mensagem por grsn »

Bom dia!
Estou usando o selenium vba para buscar informações de um site. A ajuda seria para fazer uma verificação se o site foi acessado ou se há conexão, caso contrário exiba uma mensagem, segue o código utilizado:
Sub ColetaDados()
Dim driver As WebDriver
Set driver = New ChromeDriver
Dim valor As WebElement
driver.AddArgument ("--headless")
With driver
.Get "https://nome do site/"
.FindElementById("name").SendKeys "6858"
.FindElementByName("senha").SendKeys "123"
.FindElementById("botaoEntrar").Click
.FindElementByLinkText("Gestão").Click
.FindElementByLinkText("Cadastros").Click
.FindElementByLinkText("Informações / Classes").Click
.FindElementByCss("#decorAsidePopup > li > .decor-menu-sub > li:nth-child(2) > .decor-menu-item > .caret").Click
.FindElementByLinkText("Informações/ Classes").Click
.FindElementByLinkText("Ficha").Click
.FindElementById("TipoConsultaFicha").Click
.FindElementByXPath("//option[. = 'RA']").Click
.FindElementById("txtRa").Click
.FindElementById("txtRa").SendKeys "113054"
.FindElementById("txtDigRa").SendKeys "X"
.FindElementById("btnPesquisar").Click
.FindElementByCss("a > .icone-tabela-visualizar").Click
Application.Wait Now + TimeValue("00:00:02")
frm.cadNome.Text = .FindElementById("NomeAluno").Value
' Range("A4").Value = .FindElementById("Sexo").Value
frm.cadCor.Text = .FindElementById("DescricaoRacaCor").Value
frm.cadNascimento.Text = .FindElementById("DtNascimento").Value
frm.cadNomeMae.Text = .FindElementById("NomeMae").Value
frm.cadNomePai.Text = .FindElementById("NomePai").Value
frm.cadCidade.Text = .FindElementById("CidadeNascimento").Value
frm.cadEstado.Text = .FindElementById("UFNascimento").Value
frm.cadCEP.Text = .FindElementById("EnderecoCEP").Value
driver.Quit
frm.mpCadastro.Value = 0

End With

End Sub

E como a busca demora um pouco queria por uma tela avisando aguarde carregamento por exemplo ate trazer todas as informações, estava tentando usar uma imagem animada .gif, mas a imagem fica congelada durante a busca, alguém saberia se tem como corrigir isso, ou não é possivel executar o navegador mesmo não sendo exibido mais o webBroser que exibi o gif? Código que carrega o gif

Public Sub CarregarGif()

If frm.frameGif.Controls.Count > 0 Then _
frm.frameGif.Controls.Remove "wb"

Dim gif As String
gif = "C:\Users\\Desktop\Sistema\Imagens" & "\anigif2.gif"
Dim Wb As SHDocVw.WebBrowser
Set Wb = frm.frameGif.Controls.Add("Shell.Explorer.2", "wb")
Wb.Top = 10
Wb.Left = 100
Wb.Height = 400
Wb.Width = 500
Wb.Navigate "about:<html>" & _
"<body scroll='no' style='border:0'>" & _
"<img src='" & gif & "'></img>" & _
"</body>" & _
"</html>"
DoEvents
End Sub

Desde já agradeço!


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: Selenium vba verificar se a pagina foi carregada e tela de espera durante a busca

Mensagem por Raygsson »

As vezes que precisei atualizar um Formulário/Barra de progresso enquanto rodava algum outro scripts tive que usar o comando DoEvents pra não congelar a tela.

Se precisa de velocidade já pensou em fazer a rotina por HTTP? É bem mais rápido que o Selenium.


grsn
Acabou de chegar
Acabou de chegar
Mensagens: 9
Registrado em: Qua Mar 18, 2020 7:01 am

Re: Selenium vba verificar se a pagina foi carregada e tela de espera durante a busca

Mensagem por grsn »

Obrigado! Mas não funcionou o DoEvents, deixei sem o gif, só com uma mensagem mesmo!
Alguém saberia como fazer no código postado acima, com o selenium, uma verificação se um elemento esta presente, no caso na busca no site quando a certidão é nova, é exibida uma caixa com o número , caso contrário são exibidas outras três caixas.
Atenciosamente
Anexos
inspeção.JPG
inspeção.JPG (18.06 KiB) Exibido 2730 vezes
erro q mostra.JPG
erro q mostra.JPG (24.38 KiB) Exibido 2730 vezes


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