Scrolling to top of the page in Python using Selen

2019-01-12 07:09发布

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?

3条回答
狗以群分
2楼-- · 2019-01-12 07:15

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)
查看更多
干净又极端
3楼-- · 2019-01-12 07:17

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

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
查看更多
淡お忘
4楼-- · 2019-01-12 07:27
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 !!

查看更多
登录 后发表回答