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
相关产品推荐
相关产品推荐

