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

如何在Selenium中屏蔽ChromeDriver的日志错误信息

解决Windows下Selenium+ChromeDriver控制台日志/错误屏蔽问题

针对你遇到的ChromeDriver和Chrome输出的DevTools连接信息、stun服务器解析错误等控制台日志,以下是几种可行的屏蔽方法:

方法一:添加Chrome启动参数屏蔽自身日志

通过给Options添加多个日志控制参数,直接让Chrome减少输出:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
# 基础配置
options.add_argument("--headless=new")
options.add_argument('--ignore-ssl-errors=yes')
options.add_argument('--ignore-certificate-errors=yes')

# 关键:屏蔽Chrome日志输出
options.add_argument('--log-level=3')  # 仅记录致命错误(级别3对应FATAL)
options.add_argument('--disable-logging')  # 禁用Chrome的日志系统
options.add_argument('--silent')  # 启用静默模式,抑制非必要输出
options.add_argument('--no-default-browser-check')  # 跳过默认浏览器检查警告
options.add_argument('--no-first-run')  # 跳过首次运行初始化提示

# 配置ChromeDriver Service,将驱动日志输出到nul
service = Service(
    ChromeDriverManager().install(),
    log_output='nul',
    service_args=['--log-path=nul']  # 将Chrome的日志路径指向nul
)

driver = webdriver.Chrome(service=service, options=options)

# 你的爬虫代码...

driver.quit()

方法二:全局重定向stderr(结合上下文管理器)

如果上述参数仍有遗漏的日志,可以在driver运行期间临时重定向Python的stderr到空设备,确保所有错误输出被拦截:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import os
import sys

options = Options()
options.add_argument("--headless=new")
options.add_argument('--ignore-ssl-errors=yes')
options.add_argument('--ignore-certificate-errors=yes')
options.add_argument('--log-level=3')
options.add_argument('--disable-logging')

service = Service(ChromeDriverManager().install(), log_output='nul')

# 保存原始stderr,使用上下文管理器确保恢复
original_stderr = sys.stderr
try:
    sys.stderr = open(os.devnull, 'w')
    driver = webdriver.Chrome(service=service, options=options)
    
    # 执行爬虫逻辑...
    
finally:
    driver.quit()
    sys.stderr.close()
    sys.stderr = original_stderr

说明

  • --log-level=3是Chrome的参数,日志级别从0到3,3只显示最严重的致命错误;
  • log_output='nul'和--log-path=nul分别控制ChromeDriver和Chrome自身的日志输出路径,nul是Windows的空设备;
  • 上下文管理器的方式能确保即使爬虫代码抛出异常,也能恢复原始stderr,避免影响后续代码的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:05:29