使用 Selenium 在 Python 中滚动到页面顶部

IT技术 javascript python selenium selenium-webdriver webdriver
2021-02-17 19:11:13

使用 Python 和 Selenium 时,我在滚动到网页顶部时遇到问题。

当页面由于某种原因加载时,您会被带到页面底部(这是由于已修复)。但是,当我尝试滚动到顶部时,它不起作用。

我尝试了以下方法:

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

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

我也尝试定位元素然后滚动到它:

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

当向下滚动到元素时,上面的 scrollIntoView() 代码起作用。但是,向上滚动不起作用。

我已经尝试过运行 Chrome Driver 和 PhantomJs。

有什么建议?

6个回答

您可以简单地使用 CTRL + HOME 键。它将滚动到页面顶部。

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.HOME)
@ErichBSchulz,是的,没错。Keys需要进口。
2021-04-16 19:11:13
大概需要from selenium.webdriver.common.keys import Keys先?
2021-05-01 19:11:13
似乎不起作用
2021-05-02 19:11:13

可以考虑先定位元素HTML DOM,然后我们可以scroll将元素放入Viewport如下:

element = driver.find_element_by_xpath("element_xpath")
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)
这里唯一可靠的答案......
2021-05-09 19:11:13
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);")

它会工作!

请在您的答案中添加更多详细信息
2021-04-23 19:11:13

请试试这个:

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

从selenium导入网络驱动程序

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

这肯定会帮助你:)