第一种用了WAIT.until,页面加载的等待时间相对灵活
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
def scroll_until_loaded(driver):
WAIT = WebDriverWait(driver,10)
check_height = driver.execute_script("return document.body.scrollHeight;")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
try:
WAIT.until(lambda h: driver.execute_script("return document.body.scrollHeight;") > check_height)
check_height = driver.execute_script("return document.body.scrollHeight;")
except TimeoutException:
break
参考https://blog.csdn.net/supramolecular/article/details/82143984?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
另外有写法固定了每次滚动操作后等待页面加载的时间
all_window_height = []# 创建一个列表,用于记录每一次拖动滚动条后页面的最大高度
all_window_height.append(driver.execute_script("return document.body.scrollHeight;"))#当前页面的最大高度加入列表
whileTrue:
driver.execute_script("scroll(0,100000)")# 执行拖动滚动条操作
time.sleep(3)
check_height = driver.execute_script("return document.body.scrollHeight;")
ifcheck_height == all_window_height[-1]:#判断拖动滚动条后的最大高度与上一次的最大高度的大小,相等表明到了最底部
break
else:
all_window_height.append(check_height)#如果不相等,将当前页面最大高度加入列表。
参考https://blog.csdn.net/weixin_40718824/article/details/84196233
https://blog.csdn.net/u011519550/article/details/106130366