web-dev-qa-db-fra.com

Impossible de cliquer sur un élément: ElementClickInterceptedException dans Splinter / Selenium

J'essaie de gratter une page, mais j'ai parfois du mal à cliquer sur un lien/bouton. Lorsque la page Web se charge, le "loadingWhiteBox" apparaîtra en premier puis disparaîtra après quelques secondes (mais il restera dans le code HTML) tant que la boîte apparaîtra sur le site Web, je ne peux pas cliquer sur le lien et obtenez le message d'erreur suivant:

Selenium.common.exceptions.ElementClickInterceptedException: Message: 
Element <span class="taLnk ulBlueLinks"> is not clickable at point 
(318.3000030517578,661.7999877929688) because another element <div 
class="loadingWhiteBox"> obscures it

Y a-t-il un moyen de contourner cela? J'ai déjà essayé de travailler avec la commande suivante:

driver.is_element_present_by_css('div[class*="loadingWhiteBox"]')

Mais l'élément est présent même lorsqu'il n'est pas actif.

9
yellow days

Vous pouvez essayer les 2 méthodes ci-dessous pour cliquer sur l'élément.

element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)

element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()

espérons que cela fonctionnera.

7
Pradeep hebbar

L'erreur apparaît car un autre élément avec la même classe ou avec le même xpath/css apparaît à l'écran.

Essayez de donner quelques méthodes d'attente jusqu'à ce que l'élément apparaisse tel Thread.sleep (), wait ().

2
Gautam Bothra

Vous pouvez attendre que l'élément disparaisse,

    WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("loadingWhiteBox")));
1
hakki atas