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

Python+Selenium运行时GCM错误排查与屏蔽方法咨询

问题解答:Selenium Chrome弹出GCM Channel错误的原因及屏蔽方法

原因确认

没错,这个报错完全是因为国内网络无法访问谷歌服务导致的。GCM(Google Cloud Messaging)是谷歌的推送服务,Chrome浏览器在启动时会自动尝试连接该服务同步通知,但由于网络限制,连接请求失败,就会抛出这个错误。好在它只是浏览器后台服务的失败,不会影响你的Selenium自动化操作逻辑,所以程序能正常运行。

屏蔽错误的方法

这里提供两种最直接的解决方案,从根源或日志层面消除这个烦人的报错:

1. 启动Chrome时禁用GCM服务

通过ChromeOptions添加参数,直接关闭GCM相关功能,从源头阻止它发起连接请求:

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

chrome_options = Options()
# 核心参数:禁用GCM服务
chrome_options.add_argument("--disable-gcm")
# 可选:添加其他参数减少谷歌相关后台请求,避免其他类似报错
chrome_options.add_argument("--disable-background-networking")
chrome_options.add_argument("--disable-notifications")

driver = webdriver.Chrome(options=chrome_options)

添加--disable-gcm后,Chrome就不会再尝试连接GCM服务,自然也就不会弹出这个错误了。

2. 将Chrome日志定向到文件(而非终端)

如果不想修改浏览器功能,也可以把Chrome的日志输出到文件,不让它在终端显示:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 指定日志文件路径,终端不再显示Chrome的后台错误
service = Service(log_path="./chrome_driver.log")
driver = webdriver.Chrome(service=service)

这样所有Chrome的后台日志都会写入指定文件,终端只会显示你自己程序的输出,也就看不到那个GCM错误了。

额外提示

如果之后还遇到其他类似的谷歌服务相关报错,都可以尝试通过ChromeOptions添加--disable-google-services这类参数,或者调整日志级别(比如--log-level=3只显示致命错误),进一步减少无关日志干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:05:03