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

Selenium循环定时访问网页时出现‘因标签页崩溃导致会话被删除’问题的解决求助

解决Selenium循环中"tab crashed"页面崩溃问题

这问题我之前帮不少开发者排查过,结合你的场景,给你几个针对性的解决方案,按优先级尝试:

1. 复用浏览器实例(最关键的优化)

你现在每次循环都新建Chrome实例然后立刻关闭,这种频繁创建销毁的操作非常消耗系统资源,很容易触发tab崩溃。建议把浏览器实例的创建移到循环外面,循环内只刷新页面:

# 初始化浏览器实例(只执行一次)
chrome_options = Options()
# 保留你的现有参数,再加上后面推荐的资源限制参数
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')  # 重点加这个
score_driver2 = webdriver.Chrome(options=chrome_options)

while True:
    try:
        score_driver2.get("https://dtlive.com.au/afl/dataview.php")
        time.sleep(2)
        # 这里执行你的数据存储逻辑
        time.sleep(30)
    except Exception as e:
        print(f"出现异常: {e}")
        # 如果真的崩溃了,可以尝试重启实例
        score_driver2.quit()
        score_driver2 = webdriver.Chrome(options=chrome_options)

# 程序结束时再退出(如果循环会终止的话)
# score_driver2.quit()

2. 添加更多Chrome资源限制参数

很多时候tab崩溃是因为Chrome占用了过多的共享内存或系统资源,试试添加这些参数:

  • --disable-dev-shm-usage:解决Linux环境下/dev/shm空间不足的问题,这个是很多tab崩溃的核心原因
  • --headless=new:如果不需要可视化界面,用新版无头模式,资源占用比旧版低很多
  • --disable-gpu:禁用GPU加速,减少不必要的资源消耗
  • --single-process:强制单进程运行(适合轻量页面,注意部分复杂页面可能有兼容问题)
  • --window-size=1920x1080:指定窗口大小,避免无头模式下的渲染异常

完整的options配置示例:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--headless=new')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--single-process')
chrome_options.add_argument('--window-size=1920x1080')

3. 检查系统资源与版本兼容性

  • 系统资源:用top或htop监控运行时的CPU、内存占用,如果循环运行一段时间后资源被占满,说明频繁创建实例的消耗超出了系统承载,要么优化逻辑,要么升级硬件。
  • 版本匹配:确保你的Chrome浏览器版本、ChromeDriver版本、Selenium版本三者完全兼容。比如Chrome 118.x必须搭配ChromeDriver 118.x,Selenium建议用4.x的最新稳定版,版本不匹配会导致各种奇怪的崩溃问题。

4. 开启日志定位具体原因

如果上面的方案都没用,可以开启Chrome的日志功能,看看崩溃的具体触发点:

chrome_options.add_argument('--enable-logging')
chrome_options.add_argument('--v=1')  # 日志级别,1是基础信息,更高数值更详细

运行程序后查看控制台输出,里面会有崩溃相关的日志,能帮你定位是页面资源加载问题、JS错误还是系统层面的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:12:36