讲师中心 微信公众号

工具推荐

视频效率加速
立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

updream

一键生成高质量推广成片

AniShort
AniShort

AI短剧协同制作平台

如何在 Selenium 中实现无头浏览器模式(不打开可视化窗口)

梦静小哥_1224

梦静小哥_1224

发布时间:2026-02-03 12:16:19

|

565人浏览过

|

来源于php中文网

原创

如何在 Selenium 中实现无头浏览器模式(不打开可视化窗口)

本文详解如何正确配置 selenium 的 chrome 和 firefox 浏览器驱动,启用 headless(无头)模式,避免弹出图形化浏览器窗口,适用于服务器环境、ci/cd 自动化及后台爬虫任务。

在使用 Selenium 进行自动化测试或网页抓取时,常需在无图形界面的环境中运行(如 Linux 服务器、Docker 容器或 GitHub Actions),此时必须启用 headless 模式——即浏览器后台运行、不渲染可视化窗口。但仅设置 options.headless = True 或遗漏关键参数,往往导致代码看似“无头”实则仍弹出窗口,根本原因在于:现代 Selenium 版本已弃用直接赋值 headless 属性的方式,而推荐使用 add_argument() 显式传入标准 CLI 参数,且不同浏览器驱动的选项模块与参数略有差异。

✅ 正确配置 Chrome 无头模式(推荐方式)

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

# 创建 ChromeOptions 实例(注意:不是 webdriver.ChromeOptions() 的旧写法)
chrome_opts = Options()
chrome_opts.add_argument('--headless')      # 核心:启用无头模式
chrome_opts.add_argument('--no-sandbox')     # 重要:绕过 sandbox 权限限制(Linux 必加)
chrome_opts.add_argument('--disable-dev-shm-usage')  # 避免共享内存问题(Docker/CI 常见)
chrome_opts.add_argument('--disable-gpu')    # 可选:禁用 GPU 加速(提升稳定性)

# 启动浏览器(确保 chromedriver 在 PATH 中,或指定 executable_path)
browser = webdriver.Chrome(options=chrome_opts)
browser.get("https://www.youtube.com")
print("Title:", browser.title)  # 验证页面成功加载
browser.quit()
⚠️ 注意事项:--no-sandbox 和 --disable-dev-shm-usage 在容器或无特权环境中必不可少,否则可能报错 Failed to move to new namespace 或 DevToolsActivePort file doesn't exist;chrome_opts.headless = True 在新版 Selenium(v4.0+)中已失效,必须使用 add_argument('--headless');若提示 chromedriver 找不到,请安装对应 Chrome 版本的 ChromeDriver,或使用 webdriver-manager 自动管理:pip install webdriver-managerfrom selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager service = Service(ChromeDriverManager().install()) browser = webdriver.Chrome(service=service, options=chrome_opts)

✅ 正确配置 Firefox 无头模式

Firefox 使用独立的 Options 类,路径为 selenium.webdriver.firefox.options.Options:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_opts = Options()
firefox_opts.add_argument('--headless')  # 同样使用字符串参数
firefox_opts.add_argument('--width=1920')  # 可选:设置视口尺寸(避免响应式布局异常)
firefox_opts.add_argument('--height=1080')

browser = webdriver.Firefox(options=firefox_opts)
browser.get("https://www.youtube.com")
print("Title:", browser.title)
browser.quit()

? 提示:Firefox 的 --headless 在较新版本(v56+)中完全稳定;若需更高兼容性,可搭配 geckodriver 并确保其在系统 PATH 中。

Github Codebase Inspection
Github Codebase Inspection

使用 pygount 检查代码库:统计代码行数(LOC)、编程语言及占比。

下载

? 验证是否真正无头运行

最直接的方法是:在无桌面环境(如 Ubuntu Server SSH 终端)中执行脚本,观察是否出现浏览器窗口。也可通过进程检查:

ps aux | grep -i "chrome\|firefox"

若输出中包含 --headless 参数,即表示已正确启用。

✅ 总结

浏览器 正确导入模块 关键参数 必加安全参数
Chrome from selenium.webdriver.chrome.options import Options --headless, --no-sandbox, --disable-dev-shm-usage ✅ --no-sandbox, --disable-dev-shm-usage
Firefox from selenium.webdriver.firefox.options import Options --headless ❌ 通常无需额外参数

无头模式不仅是“隐藏窗口”,更是保障自动化脚本跨环境稳定运行的关键实践。务必摒弃 option.headless = True 等过时写法,统一采用 add_argument() 注入标准 CLI 参数,并根据部署环境补充必要安全选项。

热门AI工具

更多
UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2946

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

6079

2023.11.06

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

4347

2026.03.24

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

8825

2026.01.21

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

958

2026.04.02

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

805

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6619

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7777

2024.04.08

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn