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

如何正确配置Chrome Webdriver以无头模式运行

问题原因

代码未生效无头模式的核心原因是参数传递位置错误:Service类的service_args参数仅用于配置ChromeDriver自身服务的运行参数,不会透传给Chrome浏览器进程,因此传入的--headless、--disable-gpu参数实际没有作用到浏览器上,才会启动带GUI的浏览器窗口。
另外Selenium 4.8及以上版本已经内置Selenium Manager组件,会自动匹配本地Chrome版本下载对应驱动,不需要手动指定chromedriver的本地存储路径。

正确实现代码

无头模式等浏览器启动参数需要通过Chrome Options对象传入,新版Chrome推荐使用--headless=new参数替代已逐步废弃的旧版--headless参数,和有头模式的运行行为一致性更高,参考代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

# Selenium 4.8+版本可省略手动指定驱动路径的代码,不需要配置PATH和Service实例
# PATH = "C:\Program Files (x86)\chromedriver.exe"
# s = Service(executable_path=PATH)

chrome_options = Options()
# 启用新版无头模式
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--disable-gpu")
# 可选配置:指定无头模式窗口分辨率、禁用沙箱等,按需开启
# chrome_options.add_argument("--window-size=1920,1080")
# chrome_options.add_argument("--no-sandbox")

# 4.8+版本直接传入options即可初始化驱动
driver = webdriver.Chrome(options=chrome_options)

# 4.8以下版本需要手动指定驱动,使用下面这行初始化
# driver = webdriver.Chrome(service=s, options=chrome_options)
新版WebDriver使用参考
  • 权威文档可查阅Selenium官方站点的WebDriver板块,其中包含各浏览器驱动配置、无头模式、元素定位等全场景用法,内容随版本实时同步更新
  • 版本适配规则:Selenium 4.x全系列中,所有浏览器侧的启动参数(含无头配置、代理、用户数据目录、启动项开关等)都需要通过对应浏览器的Options实例传入,旧版本通过service_args、desired_capabilities传递浏览器参数的写法已被废弃
  • 无头模式注意事项:Chrome 112之后的版本官方推荐使用--headless=new启动参数,旧版--headless运行环境和真实用户使用的浏览器存在行为差异,后续会逐步停止支持。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:09:18