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

Selenium在Docker及AWS环境中是否存在页面崩溃时间限制?

Selenium在Docker/AWS环境运行10分钟后崩溃的原因及解决办法

Docker或AWS环境本身并没有强制的10分钟页面崩溃时间限制,但以下几个常见的配置或环境因素会导致你遇到的这种情况:

  • 容器资源限制
    Docker容器默认可能设置了CPU、内存的软/硬限制,当Selenium运行长时间任务时,Chrome或Firefox这类浏览器的内存占用会持续增长,触达容器内存上限后会被系统的OOM Killer直接杀死,表现为页面崩溃。
    解决方式:启动容器时明确分配足够的内存,比如执行docker run -m 4g ...;同时在浏览器启动参数里添加内存限制,比如给Chrome加--memory=3g --memory-swap=3g。

  • 会话超时配置
    如果你用了Selenium Grid,或者AWS托管的Selenium相关服务(比如Device Farm),这类服务通常有默认的会话超时设置,大多在10-15分钟左右,超时后会自动终止会话。
    解决方式:如果是Selenium Grid,修改config.toml里的sessionTimeout参数,比如设为3600(1小时);如果是AWS的服务,直接在控制台调整会话超时时间。

  • 无头模式的资源泄漏
    无头浏览器在长时间运行时容易出现内存泄漏,本地机器资源充足可能不会触发,但Docker/AWS的资源限制更严格,大概10分钟左右就会耗尽资源导致崩溃。
    解决方式:不要长时间复用同一个浏览器会话,定期重启实例;添加浏览器启动参数减少内存占用,比如Chrome的--disable-extensions --disable-gpu --no-sandbox --disable-dev-shm-usage,其中--disable-dev-shm-usage可以规避Docker默认的/dev/shm空间过小的问题。

  • AWS网络超时
    要是在AWS EC2或EKS上运行,负载均衡器(ALB/NLB)默认有10分钟的空闲超时,当Selenium任务长时间没有网络交互(比如页面加载后等待操作),连接会被断开,进而导致会话终止。
    解决方式:在负载均衡器配置里延长空闲超时时间,或者在代码里定期发送心跳操作(比如每隔几分钟刷新一个页面元素),保持连接活跃。

总结下来,优先排查容器资源限制,再检查会话超时配置,最后优化浏览器启动参数和网络设置,基本就能解决10分钟崩溃的问题。

内容的提问来源于stack exchange,提问作者Beşir Kassab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:05:34