Scrolling to top of the page in Python using Selenium

30,973

Solution 1

You can consider to locate the element in the HTML DOM first, then we can scroll the element into the Viewport as follows:

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

Solution 2

You can simply use CTRL + HOME keys. It will scroll to the top of the page.

from selenium.webdriver.common.keys import Keys
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)

Solution 3

Please try this:

driver.execute_script("document.querySelector('div[role=dialog] ul').parentNode.scrollTop=1e100")

Solution 4

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);")

It will work !!

Solution 5

from selenium import webdriver

t=10
while t:

#if you want to scroll to the end of the page,use this

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
    sleep(3)


#if you want to scroll down upto some level use this, here i used "1000" you may vary 
#it according to your use

driver.execute_script("scrollBy(0,+1000);")
    sleep(3)


#if you want to scroll some level up, use this,again i used here "-500" you may vary 
#according to your use 

driver.execute_script("scrollBy(0,-500);")
sleep(3)
t=t-1       # it`s a part of the loop

This will surely help you :)

Share:
30,973
cmplfore
Author by

cmplfore

Updated on July 09, 2022

Comments

  • cmplfore
    cmplfore almost 2 years

    I'm having issues with scrolling to the top of the web page when using Python and Selenium.

    When the page loads for some reason you are taken to the bottom of the page (this is due to be fixed). However, when I'm trying to scroll to the top it does not work.

    I tried the following:

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

    And

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

    I have also tried locating the element then scrolling to it:

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

    The above scrollIntoView() code works when scrolling down to the element. However, it does not work scrolling up.

    I have tried this running Chrome Driver and PhantomJs.

    Any suggestions?

  • ErichBSchulz
    ErichBSchulz over 5 years
    probably need to from selenium.webdriver.common.keys import Keys first?
  • SunilThorat
    SunilThorat over 5 years
    @ErichBSchulz, yes, that's correct. Keys needs to be imported.
  • Hamza Anis
    Hamza Anis over 5 years
    Please add more details to your answer