Ich muss auf Elemente klicken, die im DOM sind, aber sie werden nicht auf der Browserseite angezeigt, es sei denn ich scrolle bis zum Ende der Seite, um es zu sehen.Fehler beheben "Element ist nicht anklickbar" in Selenium webdriver
Gibt es einen besseren Weg für mich, es zu tun?
Das Programm wird mit "Nachricht: unbekannter Fehler: Element ist nicht anklickbar" ohne Zeile scroll_browser(driver)
und es ist in Ordnung, wenn wir vor dem Klicken nach unten scrollen.
import time
from selenium import webdriver
def scroll_browser(driver, destination_height=None):
# Get scroll height
if not destination_height:
destination_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == destination_height:
break
destination_height = new_height
if __name__ == '__main__':
driver = webdriver.Chrome()
driver.get('https://wikimediafoundation.org/wiki/Home')
time.sleep(2)
link = '//a[text()="Terms of Use"]'
time.sleep(2)
#scroll_browser(driver)
driver.find_element_by_xpath(link).click()
time.sleep(2)
driver.close()
Wenn Sie in der Mitte des Browser-Element sein blättern können Sie diese Frage prüfen https://stackoverflow.com/questions/ 20167544/selen-scroll-element-in-center-of-view – jadupl
Mögliches Duplikat von [Scrolling to Element mittels Webdriver?] (Https://stackoverflow.com/questions/41744368/scrolling-to-element-using-webdriver) – Mangohero1
Es gibt ein bekanntes Problem in Chromedriver 2.30, wenn Sie auf ein Element klicken, das sich nicht im aktuellen Ansichtsfenster befindet. Laut der WebDriver-Spezifikation muss der Web-Treiber, wenn sich das Element nicht im aktuellen Ansichtsfenster befindet, in das aktuelle Ansichtsfenster scrollen, bevor Sie darauf klicken. Also sollte Webdriver.exe von jedem Browser das für uns tun, anstatt externen Code von uns selbst hinzuzufügen. Überprüfe also, ob deine verchromte Version 2.30 ist oder nicht. Versuchen Sie, auf 2.32 und höher zu aktualisieren. – yong