You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium Python实现页面从底部滚动至顶部并自动停止?

解决方案:Selenium滚动至页面顶部即停止的通用方法

核心思路

通过监控当前滚动位置判断是否到达页面顶部,一旦滚动位置不再变化或已处于顶部,立即终止循环,彻底摆脱固定循环次数的局限性。

可行代码实现

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
# 此处需先打开目标页面

last_scroll_pos = driver.execute_script("return window.pageYOffset;")
while True:
    # 执行向上滚动操作
    driver.find_element(By.TAG_NAME, 'html').send_keys(Keys.PAGE_UP)
    time.sleep(1)  # 根据页面加载速度调整等待时长
    
    # 获取当前滚动位置
    current_scroll_pos = driver.execute_script("return window.pageYOffset;")
    
    # 终止条件:已到顶部,或无法继续向上滚动
    if current_scroll_pos == 0 or current_scroll_pos == last_scroll_pos:
        break
    
    last_scroll_pos = current_scroll_pos
    print(f"当前滚动位置: {current_scroll_pos}")

print("已滚动至页面最顶部")

问题原因分析

你之前的无限循环没有终止条件,且可能因页面元素焦点丢失,导致send_keys(Keys.PAGE_UP)无法触发滚动。通过JS获取滚动位置的方式直接与浏览器交互,不受元素焦点影响,可靠性更高。

快速跳转方案(无需逐步加载)

如果不需要逐步滚动触发内容加载,可直接通过JS一步跳转到顶部:

driver.execute_script("window.scrollTo(0, 0);")

内容的提问来源于stack exchange,提问作者hkay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:02:55