How can I scroll a web page using selenium webdriver in python?
How can I scroll a web page using selenium webdriver in python?
You can use
driver.execute_script(window.scrollTo(0, Y))
where Y is the height (on a fullhd monitor its 1080). (Thanks to @lukeis)
You can also use
driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)
to scroll to the bottom of the page.
If you want to scroll to a page with infinite loading, like social network ones, facebook etc. (thanks to @Cuong Tran)
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = driver.execute_script(return document.body.scrollHeight)
while True:
# Scroll down to bottom
driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script(return document.body.scrollHeight)
if new_height == last_height:
break
last_height = new_height
another method (thanks to Juanse) is, select an object and
label.sendKeys(Keys.PAGE_DOWN);
If you want to scroll down to bottom of infinite page (like linkedin.com), you can use this code:
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = driver.execute_script(return document.body.scrollHeight)
while True:
# Scroll down to bottom
driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script(return document.body.scrollHeight)
if new_height == last_height:
break
last_height = new_height
Reference: https://stackoverflow.com/a/28928684/1316860
How can I scroll a web page using selenium webdriver in python?
You can use send_keys
to simulate an END
(or PAGE_DOWN
) key press (which normally scroll the page):
from selenium.webdriver.common.keys import Keys
html = driver.find_element_by_tag_name(html)
html.send_keys(Keys.END)