Heim >Backend-Entwicklung >Python-Tutorial >So überwinden Sie „ElementClickInterceptedException' in Splinter/Selenium beim Klicken auf Links

So überwinden Sie „ElementClickInterceptedException' in Splinter/Selenium beim Klicken auf Links

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 05:01:02877Durchsuche

How to Overcome

Element kann nicht angeklickt werden: ElementClickInterceptedException in Splinter/Selenium

Beim Scraping einer Webseite mit Splinter oder Selenium treten beim Versuch, auf bestimmte Elemente zu klicken, Schwierigkeiten auf Es können Links oder Schaltflächen auftreten. Dieses Problem tritt auf, wenn die Webseite geladen wird und eine „loadingWhiteBox“ angezeigt wird, die die anklickbaren Elemente verdeckt.

Obwohl die „loadingWhiteBox“ nach einigen Sekunden verschwindet, bleibt sie im HTML-Code vorhanden. Während das Feld sichtbar bleibt, verhindert es Versuche, auf Elemente zu klicken, was zu der folgenden Fehlermeldung führt:

selenium.common.Exceptions.ElementClickInterceptedException: Message: Element ist an Punkt (318.3000030517578,661.7999877929688) nicht anklickbar, da ein anderes Element

verdeckt es

Um dieses Problem zu beheben und effektiv auf das gewünschte Element zu klicken, sollten Sie die Implementierung einer der folgenden Methoden in Betracht ziehen:

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

Diese Methode verwendet die Funktion „execute_script“, um JavaScript-Code auszuführen, der auf das klickt Element für Sie, wobei das verdeckende Element umgangen wird.

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

Alternativ verwendet diese Methode die ActionChains-Klasse, um den Mauszeiger an die Position des Elements zu bewegen und einen Klick auszuführen, wodurch das behindernde Element effektiv umgangen wird.

Das obige ist der detaillierte Inhalt vonSo überwinden Sie „ElementClickInterceptedException' in Splinter/Selenium beim Klicken auf Links. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn