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

Selenium中各浏览器默认截图窗口尺寸是什么及如何查看

问题描述

使用Django、pytest-django和Selenium编写了以下代码,在Google Chrome、Microsoft Edge和Firefox浏览器中截取Django Admin页面截图时,发现各浏览器生成的截图尺寸不一致,想了解Selenium中各浏览器的默认截图窗口尺寸,以及如何查看该尺寸。

import os
import pytest
from selenium import webdriver

def take_screenshot(driver, name):
    os.makedirs(os.path.join("screenshot", os.path.dirname(name)), exist_ok=True)
    driver.save_screenshot(os.path.join("screenshot", name))

@pytest.fixture(params=["chrome", "edge", "firefox"], scope="class")
def driver_init(request):
    if request.param == "chrome":
        web_driver = webdriver.Chrome()
        request.cls.browser = "chrome"
    if request.param == "edge":
        web_driver = webdriver.Edge()
        request.cls.browser = "edge"
    if request.param == "firefox":
        web_driver = webdriver.Firefox()
        request.cls.browser = "firefox"
    request.cls.driver = web_driver
    yield
    web_driver.close()

@pytest.mark.usefixtures("driver_init")
class Screenshot:
    def screenshot_admin(self, live_server):
        self.driver.get(("%s%s" % (live_server.url, "/admin/")))
        take_screenshot(self.driver, "admin/" + self.browser + ".png")
解答

各浏览器默认截图窗口尺寸

Selenium启动浏览器时的默认窗口尺寸没有统一标准,会受浏览器本身默认设置、操作系统、Selenium版本影响,常见的默认尺寸大致如下:

  • Google Chrome:通常为1024×768像素,部分环境下也可能是800×600像素(取决于系统默认窗口配置)
  • Microsoft Edge:和Chrome基于同内核,默认尺寸与Chrome基本一致,多为1024×768像素或系统默认窗口大小
  • Mozilla Firefox:默认窗口尺寸通常是800×600像素,部分环境下也会是1024×768像素,受系统默认设置影响

如何查看当前窗口/截图尺寸

方法1:通过Selenium API获取窗口尺寸

在测试代码中添加获取窗口尺寸的逻辑,save_screenshot默认截取整个可视窗口内容,因此窗口尺寸就是截图尺寸。修改后的代码示例:

@pytest.mark.usefixtures("driver_init")
class Screenshot:
    def screenshot_admin(self, live_server):
        self.driver.get(("%s%s" % (live_server.url, "/admin/")))
        # 获取当前浏览器窗口尺寸
        window_size = self.driver.get_window_size()
        print(f"{self.browser} 窗口尺寸:宽度{window_size['width']}px,高度{window_size['height']}px")
        take_screenshot(self.driver, "admin/" + self.browser + ".png")

get_window_size()方法返回包含width和height键的字典,对应窗口的宽高像素值。

方法2:读取已生成截图的实际尺寸

如果已经生成截图文件,可以用Python的PIL库读取图片尺寸:

from PIL import Image

def get_screenshot_size(screenshot_path):
    with Image.open(screenshot_path) as img:
        width, height = img.size
        print(f"截图尺寸:宽度{width}px,高度{height}px")

# 调用示例
get_screenshot_size("admin/chrome.png")

如果需要统一各浏览器的截图尺寸,可以在初始化浏览器时设置固定窗口大小,比如在driver_init fixture中添加:

web_driver.set_window_size(1920, 1080)  # 设置为1080P分辨率

内容的提问来源于stack exchange,提问作者Super Kai - Kazuya Ito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:59:10