Chrome更新后Selenium Python API无头模式失效问题求助
问题描述
- 本周更新Google Chrome后,Windows系统中使用Selenium Python API的无头模式会弹出空白窗口
- 此前在Debian虚拟机上运行的相同代码,如今也无法正常工作
- 已移除所有隐私相关FQDN DNS拦截,涉及域名:ad.doubleclick.net、analytics.yahoo.com、google-analytics.com、googleadservices.com、plausible.io、stats.g.doubleclick.net
- 涉事代码片段:
chrome_options = Options() chrome_options.add_argument("--headless=new") #previously used --headless chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--disable-automation") chrome_options.add_argument("--disable-extensions") chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"]) driver = webdriver.Chrome(options=chrome_options)
排查与修复建议
同步ChromeDriver版本
Chrome更新后必须使用对应版本的ChromeDriver,版本不匹配是无头模式失效的核心诱因。下载与当前Chrome主版本完全一致的驱动文件,替换现有驱动。调整无头模式参数
尝试将--headless=new改回旧版--headless测试,新版无头模式可能存在兼容性bug;或改用--headless=chrome参数,部分场景下该参数适配性更稳定。简化参数定位冲突
暂时移除非核心启动参数,仅保留基础选项测试:chrome_options = Options() chrome_options.add_argument("--headless=new") chrome_options.add_argument('--no-sandbox') chrome_options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(options=chrome_options)确认基础运行正常后,再逐个加回原有参数,定位引发问题的选项。
添加固定窗口尺寸
无头模式默认窗口尺寸可能导致页面渲染异常,添加参数强制固定窗口大小:chrome_options.add_argument("--window-size=1920,1080")检查Debian系统权限与依赖
Debian环境下确保运行代码的用户拥有Chrome及ChromeDriver的访问权限,可临时用sudo测试;同时确认系统依赖库完整(如libnss3、libgconf-2-4等)。
内容的提问来源于stack exchange,提问作者user9099944
相关产品推荐
相关产品推荐

