Página 1 de 1

[Resolvido]Erro elemento não localizado Selenium VBA

Enviado: Qua Fev 07, 2018 5:43 pm
por le_lo28
Boa tarde!

Estou navegando até um elemento em uma página, insiro os dados no campo placa e clico no botão "buscar":
erro1.jpg
erro1.jpg (33.42 KiB) Exibido 6339 vezes
Se a placa existir é exibido o seguinte resultado:
erro2.jpg
erro2.jpg (60.05 KiB) Exibido 6339 vezes
Eu clico no botão comprar e até aqui tudo funciona normal.

Quando a placa não existe a imagem acima não aparece e acontece um erro, porque o não conseguiu localizar o botão comprar.
Para chegar até o botão usei o seguinte código:

Código: Selecionar todos

Set hFrame = Driver.FindElementByXPath("/html/body/div[3]/div/div[2]/div[2]/ul/li[1]/article/div[3]/div/a[4]", 3)

If Not hFrame Is Nothing Then

hFrame.Click
Else
MsgBox "não disponível"
End If
Só que esse IF não funciona e exibe o seguinte erro:
erro.jpg
erro.jpg (22.91 KiB) Exibido 6339 vezes
Agradeço qualquer ajuda.

Obrigado

Re: Erro elemento não localizado Selenium VBA

Enviado: Sex Fev 09, 2018 12:08 am
por Mikel Silveira Fraga
Leo, bom dia. Tudo bem?

Cara, use o método IsElementPresent, a qual pode ser utilizada para verificar se um elemento existe ou não em uma página.

Adaptando ao seu código, ficaria algo assim:

Código: Selecionar todos

Dim oCheck As By ' Objeto será usado no método.
Const sBtnPath As String = "/html/body/div[3]/div/div[2]/div[2]/ul/li[1]/article/div[3]/div/a[4]"

If Driver.IsElementPresent(oCheck.xPath(sBtnPath) Then
  Set hFrame = Driver.FindElementByXPath(sBtnPath, 3)
  hFrame.Click
Else
  MsgBox "não disponível"
End If
Dessa forma, antes de você instanciar o objeto hFrame, já será validado se o elemento esta presente ou não na página.

Teste e nos retorne o resultado.

Re: Erro elemento não localizado Selenium VBA

Enviado: Sex Fev 09, 2018 9:39 am
por le_lo28
Mikel, obrigado pela resposta!

Estou usando a rotina no Access e apresentou o seguinte erro na linha:

Código: Selecionar todos

If Driver.IsElementPresent(oCheck.xPath(sBtnPath)) Then
Observe que acrescentei um parêntese no final
Sem título.jpg
Sem título.jpg (17.69 KiB) Exibido 6302 vezes
Mais uma vez obrigado!

Abraços,

Re: Erro elemento não localizado Selenium VBA

Enviado: Sex Fev 09, 2018 10:16 am
por Mikel Silveira Fraga
Leo, bom dia.

Esse erro apresentado não é um erro do método, mas sim um erro de sintaxe da estrutura do bloco de código. Provavelmente um bloco If foi aberto e não foi fechado com End If.

Da uma verificada se todos os With, If, While ou For abertos, foram fechados.

Continuamos no aguardo.

Re: Erro elemento não localizado Selenium VBA

Enviado: Sex Fev 09, 2018 10:50 am
por le_lo28
Mikel, descobri o que é, faltou referenciar o objeto oCheck ou setar veja:

Código: Selecionar todos

Dim oCheck As New By
Deu certo!!!

Agora como eu faço para voltar a clicar no botão buscar caso ele não encontre o elemento? A placa vai aparecer, mas pode demorar um bom tempo até subir no site, mas preciso ficar verificando até encontrá-la.

Então nesse IF no Else eu chamo novamente o hBuscar.Click para clicar novamente no botão? Tem que fazer uma espécie de loop?

Muito obrigado pela ajuda.

Abraços,

Marcelo

Re: Erro elemento não localizado Selenium VBA

Enviado: Sex Fev 09, 2018 11:23 pm
por Mikel Silveira Fraga
Opa, tudo bem?

Primeiro, deixa eu pedir desculpas. Como você assina como Le_Lo, achei que se chamava Leo, mas agora vi que tem assinado como Marcelo. Desculpa pela confusão.

Bem Marcelo, seria isso mesmo. Provavelmente você tem uma lista de placas a serem consultadas. Nesse caso, será necessário a realização de um loop entre as placas.

Assim que a pesquisa de uma placa for concluída, passa para a próxima e todo o processo de pesquisa se reinicia.

Qualquer coisa, seria bom deixar um modelo da planilha. Facilitaria a análise do seu caso e a conclusão de uma solução.

No mais, excelente final de semana e aproveite o feriadão.

Re: Erro elemento não localizado Selenium VBA

Enviado: Qui Fev 15, 2018 8:27 am
por le_lo28
Mikel, sem problema com relação ao nome :D

Agradeço a ajuda!

Valeu!

Abraços,

Marcelo

Re: [Resolvido]Erro elemento não localizado Selenium VBA

Enviado: Ter Jul 24, 2018 8:21 am
por webline
Olá inicialmente eu estava buscando ajuda através deste tópico https://www.tomasvasquez.com.br/forum/v ... =25&t=6409

Porém fui orientado a verificar este. Porém não estou conseguindo resolver o meu problema.

Na realidade, eu preciso esperar que um elemento presente na página termine de carregar, pois esse tempo para carregar varia, então utilizar driver.wait 10000 por exemplo não resolve porque as vezes o tempo de carregamento pode ser muito superior. Na verdade é um botão criar que ale aparece na página mas fica indisponível para clicar, esse só habilita depois que a página seja carregada por completo. Eu estou utilizando o selenium Basic.

Re: [Resolvido]Erro elemento não localizado Selenium VBA

Enviado: Qui Jan 24, 2019 4:06 pm
por LucenaVBA
Ola Pessoal.

Também estou com um erro de elemento não localizado, porém, quando abro a janela manualmente o elemento esta lá.

Por favor, alguém, por acaso saberia como posso resolver este caso?

Preciso acessar a pagina da web e inserir a informação do CNPJ no campo CNPJ, mas como mencionei acima, o elemento, que seria o campo a ser digitado, não é encontrado.

Segue código abaixo:

Sub CADASTRO_UF_PR()

Application.ScreenUpdating = False

Dim IC As ChromeDriver
Dim nwb As Workbook
Dim busca As WebElement
Dim form As WebElement

Set IC = New ChromeDriver

IC.Get "http://www.fazenda.pr.gov.br/modules/co ... udo=251%22"
Application.Wait Now + TimeValue("00:00:05")

Set busca = IC.FindElementByXPath("//*[@id=""form1""]/table[1]/tbody/tr[2]/td/font/input")
Set form = IC.FindElementById("form1")

If Not busca Is Nothing Then
busca.SendKeys "123" '123 APENAS PARA TESTES
form.Submit
Else
MsgBox "Elemento não encontrado"
End If


End Sub

Deste já agradeço a atenção.

Abs,
Leo