You need to enable JavaScript to run this app. Python Selenium滚动谷歌地图评论时新旧高度一致无法退出while循环
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium滚动谷歌地图评论时新旧高度一致无法退出while循环

问题根因
  • 你操作的滚动对象是谷歌地图评论弹窗的内嵌独立滚动容器(类名为review-dialog-list的元素),但你比对的高度是整个页面的滚动高度document.documentElement.scrollHeight。滚动内部容器不会改变整个页面的高度,所以两次获取的高度永远一致,无法触发循环退出条件。
修复代码

修改为直接获取评论容器自身的滚动高度做比对即可:

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

# 先定位评论滚动容器
scroller = driver.find_element(By.CLASS_NAME, 'review-dialog-list')
# 初始获取容器自身的滚动高度作为基准
last_height = driver.execute_script("return arguments[0].scrollHeight", scroller)
print(last_height)

while True:
    # 滚动容器到当前底部
    driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scroller)
    time.sleep(3)
    # 加载完成后重新获取容器的滚动高度
    new_height = driver.execute_script("return arguments[0].scrollHeight", scroller)
    print(new_height)
    # 高度无变化说明已经滚动到最底部,退出循环
    if new_height == last_height:
        break
    # 更新高度基准值,进入下一轮判断
    last_height = new_height
注意事项
  • 如果网络波动大,可适当延长time.sleep的等待时长,确保新评论完全加载完成后再读取高度
  • 上述代码使用了Selenium 4.0+推荐的By.CLASS_NAME定位写法,如果你使用的是旧版本Selenium,可以换回find_element_by_class_name方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 04:45:02