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

180+用例的Selenium测试套件因ChromeDriver进程残留致CPU占用过高求助

解决Selenium Chrome测试套件CPU占用100%及进程残留问题

问题核心

你的180+用例测试套件出现Chrome进程残留、CPU满载、执行失败,根源在于ChromeDriver与Chrome版本不匹配,加上部分场景下默认关闭逻辑不彻底;而Firefox的进程管理机制更稳定,因此无此问题。

解决方案

1. 严格对齐ChromeDriver与Chrome版本

当前Chrome版本为124.0.6367.156,但ChromeDriver使用的是124.0.6367.155,小版本不一致会导致进程通信异常,进而引发进程残留。立即下载与Chrome完全匹配版本的ChromeDriver。

2. 强化进程终止逻辑

不要仅依赖driver.close(),必须调用driver.quit(),同时在测试结束后强制清理残留进程:

  • Python示例:
from selenium import webdriver
import os

driver = webdriver.Chrome(options=your_options)
try:
    # 执行测试步骤
finally:
    # 先正常终止驱动
    driver.quit()
    # 强制清理所有Chrome相关进程(Windows环境)
    os.system("taskkill /f /im chrome.exe /im chromedriver.exe")
  • Java示例:
WebDriver driver = new ChromeDriver(your_options);
try {
    // 测试逻辑
} finally {
    driver.quit();
    // 强制杀死进程
    Runtime.getRuntime().exec("taskkill /F /IM chrome.exe /IM chromedriver.exe");
}

3. 配置ChromeOptions优化进程行为

添加启动参数减少不必要的子进程,降低残留概率:

options = webdriver.ChromeOptions()
# 禁用后台任务
options.add_argument("--no-background-tasks")
# 禁用扩展和插件
options.add_argument("--disable-extensions")
options.add_argument("--disable-plugins")
# 无头模式(无需界面时启用,大幅减少资源占用)
options.add_argument("--headless=new")
# 禁用GPU加速
options.add_argument("--disable-gpu")
# 限制进程数量(可选,谨慎使用,可能影响复杂页面测试)
options.add_argument("--single-process")

4. 全局套件级清理

在测试套件的全局清理阶段(如teardownSuite),统一执行一次Chrome进程清理,避免单个用例清理失败导致进程累积。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:02:30