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

Chrome --headless=new模式无法应用--window-size选项的问题求助

解决Chrome新无头模式(--headless=new)下--window-size参数失效的问题

Chrome新无头模式(--headless=new)的窗口尺寸处理逻辑和旧模式不同,直接使用--window-size参数会因为默认虚拟视口的计算导致截图尺寸异常。以下是几种可行的解决方法:

1. 命令行添加--force-device-scale-factor=1参数

新无头模式下,默认的设备缩放比例会影响实际渲染尺寸,强制设置缩放比例为1后,--window-size参数就能正常生效。示例启动命令:

chrome --headless=new --window-size=1920,1080 --force-device-scale-factor=1

使用该组合参数后,生成的截图尺寸会符合设置的1920x1080,同时保留新无头模式的文件下载能力。

2. Selenium中显式设置窗口尺寸

如果是通过Selenium控制Chrome,除了命令行参数,初始化浏览器后显式调用窗口尺寸设置API,能覆盖默认虚拟视口的尺寸:

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

options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=options)
driver.set_window_size(1920, 1080)  # 显式设置确保生效

driver.save_screenshot("screenshot.png")
driver.quit()

3. 利用DevTools协议(CDP)设置视口

通过Chrome DevTools协议直接配置设备视口参数,能精准控制渲染和截图尺寸,适合需要更精细控制的场景:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")

driver = webdriver.Chrome(options=options)
# 通过CDP强制设置视口和缩放比例
driver.execute_cdp_cmd("Emulation.setDeviceMetricsOverride", {
    "width": 1920,
    "height": 1080,
    "deviceScaleFactor": 1,
    "mobile": False
})

driver.save_screenshot("screenshot.png")
driver.quit()

以上方法均能解决新无头模式下截图尺寸异常的问题,同时维持新模式支持文件下载的特性,替代无法正常下载的旧无头模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:40:37