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

如何阻止Headless Chrome弹出同步XMLHttpRequest弃用提示?

解决Selenium无头Chrome中同步XHR弃用提示的问题

我来帮你搞定这个烦人的控制台提示!要阻止同步XMLHttpRequest的弃用警告在Selenium无头Chrome的控制台里弹出,有两种实用的方法,你可以根据需求选择:

方法一:全局屏蔽警告级别的日志(简单粗暴)

这种方式通过Chrome命令行参数直接将日志级别设为ERROR,这样所有警告和信息级别的日志都会被屏蔽,包括你不想看到的同步XHR提示。

具体代码实现:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 启用新版无头模式(推荐,行为更接近正常Chrome)
chrome_options.add_argument("--headless=new")
# 设置日志级别为3,对应ERROR级别,屏蔽警告、信息、调试日志
chrome_options.add_argument("--log-level=3")

# 初始化驱动
driver = webdriver.Chrome(options=chrome_options)

# 后续的爬取操作...

方法二:精准拦截特定警告(灵活不影响其他日志)

如果你不想错过其他有用的警告信息,只想屏蔽这个同步XHR的弃用提示,可以通过Chrome DevTools协议(CDP)来监听并过滤特定的控制台消息。

代码示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless=new")
driver = webdriver.Chrome(options=chrome_options)

# 启用控制台监听
driver.execute_cdp_cmd('Console.enable', {})

# 定义过滤函数,只拦截目标警告
def filter_sync_xhr_warning(message):
    target_msg = "Synchronous XMLHttpRequest on the main thread is deprecated"
    if target_msg in message['message']:
        # 过滤掉该警告,不做任何处理
        return
    # 其他消息可以正常输出(如果需要的话)
    print(message['message'])

# 添加监听器,处理控制台消息
driver.add_listener(filter_sync_xhr_warning, 'Console.messageAdded')

# 后续爬取操作...

小提示

  • 新版无头模式(--headless=new)是Chrome 96+推出的,相比旧版--headless更接近正常浏览器的行为,推荐优先使用。
  • 如果用的是旧版无头模式,只需要把--headless=new换成--headless即可,其他配置不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:04:55