web-dev-qa-db-fra.com

Défilement vers le haut de la page en Python avec Selenium

Je ne parviens pas à faire défiler l'écran vers le haut de la page Web lorsque j'utilise Python et Selenium. 

Lorsque la page se charge pour une raison quelconque, vous êtes amené au bas de la page (cela doit être corrigé). Cependant, lorsque j'essaie de faire défiler vers le haut, cela ne fonctionne pas. 

J'ai essayé ce qui suit:

self.driver.execute_script("scroll(0, -250);")

Et

self.driver.execute_script("scroll(0, 0);")

J'ai aussi essayé de localiser l'élément puis de le faire défiler:

self.driver.execute_script("arguments[0].scrollIntoView()", element)

Le code scrollIntoView () ci-dessus fonctionne lors du défilement vers l'élément. Cependant, cela ne fonctionne pas en faisant défiler.

J'ai essayé ce pilote en cours d'exécution Chrome et PhantomJs. 

Aucune suggestion?

6
cmplfore

Vous pouvez envisager de localiser l’élément dans le HTML DOM d’abord, puis nous pouvons scroll l’élément dans le Viewport comme suit:

element = driver.find_element_by_xpath("element_xpath")
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)
3
DebanjanB

Vous pouvez simplement utiliser les touches CTRL + HOME. Il fera défiler vers le haut de la page.

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
11
SunilT

S'il vous plaît essayez ceci: 

driver.execute_script("document.querySelector('div[role=dialog] ul').parentNode.scrollTop=1e100")
0
hamed baziyad
from Selenium import webdriver
from Selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("__")

#to scroll try use the following command
driver.execute_script("scrollBy(0,250);")

Ça va marcher !!

0
Vyr