1. 滚动至底部

将页面滚动到底部,通常用于加载更多内容的页面。或者使底部的下一页可点击

driver.execute_script("document.documentElement.scrollTop=10000")

2. 滚动至顶部

将页面滚动到顶部,通常用于返回页面初始位置。

driver.execute_script("document.documentElement.scrollTop=0")

3. 滚动指定距离

滚动指定的距离,例如滚动 100 像素。

driver.execute_script(f"window.scrollBy(0, 100);")

4. 滚动到目标元素可见

将页面滚动到目标元素的位置,使其可见。

# 目标元素
next_page = driver.find_element(By.XPATH, "//a[@class='btn soupager__btn']")

# 滚动到目标元素可见位置
driver.execute_script("arguments[0].scrollIntoView(true);", next_page)

5. 滚动到页面的特定位置

有时你可能需要将页面滚动到特定的坐标位置。

# 滚动到 (x, y) 位置
driver.execute_script("window.scrollTo(0, 500);")

6. 平滑滚动

使用平滑滚动效果,使滚动更加自然。

# 平滑滚动到页面底部
driver.execute_script("window.scrollTo({ top: 10000, behavior: 'smooth' });")

# 平滑滚动到指定位置
driver.execute_script("window.scrollTo({ top: 500, behavior: 'smooth' });")

# 平滑滚动到目标元素
driver.execute_script("arguments[0].scrollIntoView({ behavior: 'smooth' });", next_page)

7. 获取当前滚动位置

有时你需要知道当前页面的滚动位置。

# 获取当前滚动位置
current_scroll_position = driver.execute_script("return window.pageYOffset;")
print(f"当前滚动位置: {current_scroll_position}")

8. 滚动到页面的某个百分比

有时你可能需要将页面滚动到某个百分比的位置。

# 滚动到页面的 50% 位置
driver.execute_script("window.scrollTo(0, document.body.scrollHeight * 0.5);")

示例

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def scroll_operations():
    driver = webdriver.Chrome()
    driver.get('https://example.com')  # 替换为你需要的 URL

    # 滚动到页面底部
    driver.execute_script("document.documentElement.scrollTop=10000")

    # 滚动到页面顶部
    driver.execute_script("document.documentElement.scrollTop=0")

    # 滚动 100 像素
    driver.execute_script("window.scrollBy(0, 100);")

    # 滚动到目标元素可见
    next_page = driver.find_element(By.XPATH, "//a[@class='btn soupager__btn']")
    driver.execute_script("arguments[0].scrollIntoView(true);", next_page)

    # 平滑滚动到页面底部
    driver.execute_script("window.scrollTo({ top: 10000, behavior: 'smooth' });")

    # 获取当前滚动位置
    current_scroll_position = driver.execute_script("return window.pageYOffset;")
    print(f"当前滚动位置: {current_scroll_position}")

    # 滚动到页面的 50% 位置
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight * 0.5);")

    driver.quit()

# 调用函数
scroll_operations()