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

时间:2017-08-08 19:50:54

标签: javascript python selenium selenium-webdriver webdriver

我在使用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驱动程序和PhantomJs。

有什么建议吗?

6 个答案:

答案 0 :(得分:11)

您只需使用CTRL + HOME键即可。它将滚动到页面顶部。

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

答案 1 :(得分:4)

您可以考虑首先在HTML DOM中找到该元素,然后我们可以scroll将该元素element = driver.find_element_by_xpath("element_xpath") self.driver.execute_script("return arguments[0].scrollIntoView(true);", element) 添加到Viewport中,如下所示:

.\{-}

答案 2 :(得分:0)

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

它将起作用!

答案 3 :(得分:0)

请尝试以下操作:

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

答案 4 :(得分:0)

从硒导入网络驱动程序

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

这肯定会对您有所帮助:)

答案 5 :(得分:0)

有4种向上或向下滚动的方式

1)按像素滚动

driver.execute_script("window.scrollBy(0,0)","")

2)向下滚动直到找不到该元素

element=driver.find_element(By.XPATH,"xpath of element")
driver.execute_script("arguments[0].scrollIntoView();",element)

3)滚动到页面末尾

driver.execute_script("window.scrollBy(0,document.body.scrollHeight)")
  1. 使用动作链

    elementpos = driver.find_element(By.XPATH,“元素的xpath”)
    actions = ActionChains(驱动程序) actions.move_to_element(elementpos).perform()