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

如何在网页加载超过X秒时强制执行driver.refresh()

页面未在指定时间内加载完成时强制刷新的实现方案

原代码仅在超时错误发生后被动处理刷新,要实现主动设定加载超时阈值并强制刷新,可以通过给WebDriver设置页面加载超时时间,配合异常捕获来实现,具体步骤如下:

核心修改点

  1. 给driver设置页面加载超时时间(X秒),超过该时间未完成加载则抛出超时异常
  2. 捕获超时异常后执行页面刷新操作
  3. 注意URL必须带上https://或http://协议头,否则驱动无法正确发起请求

修改后的完整代码示例

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from bs4 import BeautifulSoup as bs

# 初始化浏览器驱动(这里以Chrome为例,根据你的浏览器调整)
driver = webdriver.Chrome()

# 设定页面加载超时时间,X替换为你需要的秒数,比如10秒
X = 10
driver.set_page_load_timeout(X)

try:
    # 访问目标页面,必须带协议头
    driver.get('https://www.google.com')
    # 获取页面源码并解析
    content = driver.page_source
    soup = bs(content, 'html.parser')
    # 这里可以添加你的后续业务逻辑
except TimeoutException:
    # 超时后执行刷新
    print(f"页面未在{X}秒内加载完成,正在刷新页面...")
    driver.refresh()
except AttributeError:
    # 捕获原代码中的属性错误
    print("页面元素解析出现属性错误")

补充说明

  • 如果需要多次尝试刷新,可以在TimeoutException的处理块中添加循环逻辑,比如限制最多刷新3次
  • 不同浏览器驱动的超时异常类型统一为TimeoutException,需要从selenium.common.exceptions中导入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:56:30