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

解决提前数小时运行代码时Chrome驱动与浏览器断开连接问题

解决Chrome驱动长时间等待后断开连接的问题

直接用time.sleep()等待数小时会触发Chrome驱动的超时机制,导致驱动和浏览器断开连接。核心问题是长时间无交互让会话失效,解决思路是拆分等待时长,分阶段休眠,同时定期维持浏览器活跃。

修复后的代码

import datetime
import time
from selenium import webdriver

# 初始化Chrome驱动(需提前配置好ChromeDriver路径)
driver = webdriver.Chrome()

def wait_until_midnight():
    while True:
        current_now = datetime.datetime.now()
        # 设定目标时间为当天凌晨12点,如果当前时间已过则顺延到次日
        target = current_now.replace(hour=0, minute=0, second=0, microsecond=0)
        if current_now >= target:
            target += datetime.timedelta(days=1)
        
        # 计算剩余等待秒数
        remaining_sec = (target - current_now).total_seconds()
        
        # 剩余时间不足1分钟时,直接等待到目标时间
        if remaining_sec <= 60:
            time.sleep(remaining_sec)
            break
        # 否则每次只休眠5分钟,避免长时间无交互
        else:
            time.sleep(300)
            # 可选:刷新页面维持会话活跃,避免断开
            try:
                driver.refresh()
            except Exception as e:
                print(f"维持连接时出错: {str(e)}")

# 执行等待逻辑
wait_until_midnight()

# 这里写凌晨12点要执行的业务代码
print("已到凌晨12点,开始执行任务!")

关键优化点

  • 拆分休眠时长:避免单次休眠几小时,改用5分钟一次的短休眠,降低会话超时风险
  • 维持会话活跃:每次短休眠后刷新页面(或做其他轻量操作),让Chrome驱动知道会话仍在使用
  • 精准收尾:最后1分钟直接等待到目标时间,保证任务刚好在凌晨12点触发

内容的提问来源于stack exchange,提问作者피리네

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:17:12