Página 1 de 1

[Resolvido] Selenium Basic: element click intercepted

Enviado: Seg Jul 22, 2019 6:45 pm
por sergio_lara
Boa noite.
Sou iniciante em VBA e em Selenium, mas estou empolgado com as possibilidades. No meu último projeto ao tentar fazer download de diversos arquivos *.PDF, todos acessíveis através de uma pesquisa (com login) no portal de periódicos CAPES, tive um problema novo. A mensagem de erro é "element click intercepted". Tetei diversos seletores, mas o erro persistiu em todos.

Print do erro em anexo
Erro clique VBA-Selenium.jpg
Erro clique VBA-Selenium.jpg (99.86 KiB) Exibido 9509 vezes
.

Como pra chegar à página é necessário login, anexo também um arquivo com o HTML
Strategic CSR.rar
(419.38 KiB) Baixado 249 vezes
.

O objetivo é clicar em "PDF (194 KB)" pra acessar o arquivo .pdf do artigo.

Nas minhas buscas encontrei alguma referência de solução em java, mas não consegui adaptar para o meu código VBA.

Para simular o processo execute o seguinte código:

Código: Selecionar todos

Private driver As WebDriver

Sub BaixarArtigosScopus()
    Set driver = New ChromeDriver
    driver.Get "https://www-emerald.ez16.periodicos.capes.gov.br/insight/content/doi/10.1108/IJCHM-10-2017-0697/full/html"
    driver.FindElementByXPath("//*[@id=""mainContent""]/div[1]/div/div[2]/header/a").Click
    driver.SwitchToNextWindow (1000)
    If driver.Title <> ("Strategic CSR for airlines: does materiality matter? | Emerald Insight") Then
        MsgBox "Deu certo!"
    Else
        MsgBox "Deu problema!"
    End If
    driver.Quit
End Sub

Re: Selenium Basic: element click intercepted

Enviado: Qua Jul 31, 2019 1:51 pm
por sergio_lara
Problema resolvido!
Percebi que o problema ocorria quando o link que devia ser clicado ficava na parte inferior da janela do navegador. Como eu fazia uma série de downloads, por padrão o google chrome cria uma barra de downloads e essa barra estava se sobrepondo ao link que devia ser clicado. Quando o Selenium tentava clicar no link, clicava na barra de downloads.

Solução:
Para remover a barra de downloads do google chrome eu usei o Always Clear Downloads 2 - https://chrome.google.com/webstore/deta ... gemplbfffn. Uma extensão do Chrome que fecha a barra após 5 segundos depois de finalizado o último download. Apenas precisei garantir que houvesse 5 segundos entre o download e o próximo clique, o que causou uma pequena demora desnecessária, mas resolveu o problema.
Para utilizar a extensão no ChromeDriver eu usei a dica do Tomás https://youtu.be/GxyO9EkoPc8

Depois que se descobre do que se trata, parece que era muito óbvio, mas isso meu deu muito trabalho...
Espero que o tópico seja útil.

Re: [Resolvido] Selenium Basic: element click intercepted

Enviado: Qui Ago 01, 2019 10:46 pm
por webmaster
Útil demais! Valeu pela dica!