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

Selenium中set_window_size()方法无论指定尺寸如何始终返回相同窗口大小的问题

解决Firefox+Selenium窗口大小设置不生效的问题

我之前在Ubuntu环境下也碰到过一模一样的问题,试了好几种方法才搞定,给你分享几个可行的解决方案:

1. 初始化时就指定窗口大小(最推荐)

不要等浏览器启动后再调整大小,直接在启动Firefox的时候就通过配置参数指定,这样能避开很多窗口管理器的限制。代码示例:

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

options = Options()
# 两种写法都可以
options.add_argument("--window-size=480,360")
# 或者分开写
# options.add_argument("--width=480")
# options.add_argument("--height=360")

driver = webdriver.Firefox(options=options)
driver.get("https://google.com")
time.sleep(5)
print(driver.get_window_size())

2. 检查窗口管理器和系统缩放的影响

  • Ubuntu的GNOME窗口管理器可能会强制窗口的最小尺寸,你可以先手动打开Firefox,把窗口拉到480x360的大小,关闭浏览器后再运行脚本,让Firefox记住这个尺寸。
  • 另外,系统的显示缩放比例(比如125%)会导致Selenium获取的尺寸和实际设置的不一致,建议暂时把缩放调到100%再测试。

3. 结合窗口位置调整大小

有时候窗口被固定在某个位置,导致大小无法修改,可以先把窗口移到左上角,再设置大小:

driver=webdriver.Firefox()
driver.get("https://google.com")
time.sleep(5)
driver.set_window_position(0, 0)  # 移到屏幕左上角
driver.set_window_size(480,360)
time.sleep(5)
print(driver.get_window_size())

4. 排除扩展或配置文件干扰

有些Firefox扩展(比如窗口管理类、广告拦截插件)可能会篡改窗口大小,你可以试试用隐身模式或者新的配置文件运行:

options = Options()
# 隐身模式
options.add_argument("--incognito")
# 或者指定全新的配置文件路径(先手动创建一个空的Firefox配置文件)
# options.add_argument("-profile")
# options.add_argument("/home/your-user/new-firefox-profile")

driver = webdriver.Firefox(options=options)

我当时用第一种方法就解决了问题,你可以优先试试这个方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 13:07:35