0

0

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

心靈之曲

心靈之曲

发布时间:2026-02-03 09:28:11

|

416人浏览过

|

来源于php中文网

原创

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

本文详解如何在 selenium 中正确配置 chrome 和 firefox 的无头(headless)模式,避免浏览器窗口弹出,适用于自动化测试、爬虫和服务器环境部署。

在使用 Selenium 进行自动化操作时,若仅需获取网页内容或执行后台任务(如数据提取、表单提交、截图生成等),通常无需显示浏览器界面。此时应启用无头模式(Headless Mode)——即浏览器在后台运行,不渲染可视化窗口。但许多开发者会遇到“明明设置了 headless=True 或 --headless,浏览器仍弹窗”的问题,这往往源于配置方式过时或驱动选项使用不当。

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

自 Selenium 4 起,option.headless = True 已被弃用,应统一使用 add_argument() 添加标准 Chromium 启动参数:

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

# 创建 Chrome 选项实例
chrome_opts = Options()
chrome_opts.add_argument("--headless")      # 必选:启用无头模式
chrome_opts.add_argument("--no-sandbox")    # Linux 环境必需(如 Docker、CI/CD)
chrome_opts.add_argument("--disable-dev-shm-usage")  # 避免共享内存问题
chrome_opts.add_argument("--disable-gpu")  # 可选:禁用 GPU 加速(提升稳定性)

# 初始化 WebDriver(确保 chromedriver 在 PATH 中,或指定 executable_path)
driver = webdriver.Chrome(options=chrome_opts)

# 访问目标页面
driver.get("https://www.youtube.com")
print("Title:", driver.title)  # 示例:验证是否成功加载

driver.quit()  # 记得关闭驱动,释放资源
⚠️ 注意:--headless=new 是 Chrome 109+ 推荐的新无头模式(更兼容现代 Web API),可替换为 chrome_opts.add_argument("--headless=new"),兼容性与稳定性更优。

✅ 正确配置 Firefox 无头模式

Firefox 的无头配置与 Chrome 不同,需导入独立的 Options 类,并使用 set_headless() 方法或 add_argument():

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

firefox_opts = Options()
firefox_opts.add_argument("--headless")  # 或使用 firefox_opts.set_headless(True)

driver = webdriver.Firefox(options=firefox_opts)
driver.get("https://www.youtube.com")
print("Page loaded in headless Firefox:", driver.current_url)
driver.quit()

? 常见失败原因与解决方案

  • ❌ 错误写法:option.headless = True(Selenium 4+ 已废弃,仅对旧版有效)
  • ❌ 混淆驱动类:未从 selenium.webdriver.chrome.options 或 selenium.webdriver.firefox.options 导入对应 Options
  • ❌ 缺少必要参数:Linux 服务器需 --no-sandbox 和 --disable-dev-shm-usage,否则启动失败
  • ❌ 版本不匹配:ChromeDriver / geckodriver 版本需与浏览器主版本一致(建议使用 webdriver-manager 自动管理)

✅ 最佳实践建议

  • 使用 webdriver-manager 自动下载并管理驱动(避免手动配置路径):

    Glarity
    Glarity

    Glarity是一款免费开源的AI浏览器扩展,提供YouTube视频总结、网页摘要、写作工具等功能,支持免费的镜像翻译,电子邮件写作辅助,AI问答等功能。

    下载
    pip install webdriver-manager
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.service import Service
    
    opts = Options()
    opts.add_argument("--headless=new")
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service, options=opts)
  • 无头模式下部分功能受限(如 alert 弹窗、某些视频播放器),可通过 driver.execute_script() 注入调试脚本辅助排查。

  • 生产环境建议添加显式等待(WebDriverWait)和异常处理,提升健壮性。

通过以上配置,即可彻底实现 Selenium 浏览器的静默运行,兼顾效率、稳定与可维护性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

869

2023.08.11

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

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

756

2023.11.06

alert怎么实现换行
alert怎么实现换行

alert通过使用br标签来实现换行。更多关于alert相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

494

2023.11.07

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1436

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

709

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

296

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

783

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

577

2023.07.06

AO3官网入口与中文阅读设置 AO3网页版使用与访问
AO3官网入口与中文阅读设置 AO3网页版使用与访问

本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。

89

2026.02.02

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.4万人学习

Git 教程
Git 教程

共21课时 | 3.3万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号