Python中使用Headless Chrome+Selenium无法最大化窗口至全屏求助
解决Headless Chrome无法最大化窗口的问题
在旧版Headless Chrome模式下,--start-maximized参数和driver.maximize_window()方法不会生效,因为无头模式没有绑定实际显示设备,默认采用800x600的固定尺寸。以下是两种可行的解决方案:
方案1:使用新版无头模式(推荐)
Chrome 112及以上版本支持--headless=new模式,该模式行为更贴近正常Chrome,可配合--start-maximized或直接指定窗口尺寸:
from selenium import webdriver options = webdriver.ChromeOptions() # 启用新版无头模式 options.add_argument('--headless=new') options.add_argument('--no-sandbox') options.add_argument("--disable-gpu") # 方式1:指定具体全屏分辨率(如1080P) options.add_argument('--window-size=1920,1080') # 方式2:使用最大化参数(新版无头支持) # options.add_argument('--start-maximized') driver = webdriver.Chrome(DRIVER_PATH, options=options) driver.get(SOME_URL) size = driver.get_window_size() print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
方案2:旧版无头模式下强制指定尺寸
如果你的Chrome版本较低,无法使用新版无头模式,直接通过--window-size显式设置所需尺寸即可:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument("--disable-gpu") # 设置为你需要的分辨率,比如4K options.add_argument('--window-size=3840,2160') driver = webdriver.Chrome(DRIVER_PATH, options=options) driver.get(SOME_URL) size = driver.get_window_size() print("Window size: width = {}px, height = {}px".format(size["width"], size["height"]))
注意事项
- 旧版无头模式(仅
--headless)不支持--start-maximized和driver.maximize_window(),必须显式指定--window-size - 若运行在无桌面的服务器环境,即使使用新版无头模式,也建议直接指定具体尺寸以避免兼容性问题
--no-sandbox参数通常在Linux服务器环境下需要添加,避免权限限制
内容的提问来源于stack exchange,提问作者ameesha gupta
相关产品推荐
相关产品推荐

