Heim >Backend-Entwicklung >Python-Tutorial >So überwinden Sie „ElementClickInterceptedException' in Splinter/Selenium beim Klicken auf Links
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 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: 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. 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!<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)</code>
<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()</code>