maximize_window() - 最常用的方法
这是最直接、最常用的方法,它会在当前屏幕上最大化浏览器窗口。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
# 1. 初始化 WebDriver (以 Chrome 为例)
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
# 2. 打开一个网页
driver.get("https://www.google.com")
# 3. 最大化窗口
driver.maximize_window()
# 4. 打印窗口大小以验证
print(f"窗口最大化后的尺寸: {driver.get_window_size()}")
# ... 在此执行你的自动化测试 ...
finally:
# 5. 关闭浏览器
driver.quit()
输出示例:
窗口最大化后的尺寸: {'width': 1536, 'height': 864}
注意:具体尺寸取决于你的显示器分辨率和操作系统设置。
fullscreen_window() - 全屏模式
这个方法会模拟用户按 F11 的效果,让浏览器占据整个屏幕,包括任务栏/菜单栏。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
driver.get("https://www.google.com")
# 使用 fullscreen_window() 进入全屏模式
driver.fullscreen_window()
# 打印窗口大小
print(f"全屏模式下的尺寸: {driver.get_window_size()}")
# ... 执行测试 ...
finally:
driver.quit()
输出示例:

全屏模式下的尺寸: {'width': 1536, 'height': 864}
在这个例子中,maximize_window() 和 fullscreen_window() 的输出可能看起来一样,但它们的视觉效果和底层行为是不同的。
maximize_window() vs. fullscreen_window() 的关键区别
| 特性 | maximize_window() |
fullscreen_window() |
|---|---|---|
| 视觉效果 | 窗口会放大到屏幕的最大可用区域,但通常保留任务栏。 | 完全占据整个屏幕,隐藏任务栏、浏览器菜单栏等(类似 F11 效果)。 |
| 浏览器状态 | 窗口处于“最大化”状态,但不是真正的全屏。 | 浏览器处于“全屏”模式。 |
| 适用场景 | 最常用,适用于绝大多数自动化测试场景,因为它不改变用户熟悉的窗口布局。 | 当你需要测试全屏下的布局或行为时,或者需要最大化垂直/水平空间时使用。 |
| 稳定性 | 在某些操作系统或窗口管理器(如 Linux 的某些桌面环境)上可能表现不一致,无法真正“最大化”。 | 行为非常稳定,效果一致,因为它是一个标准的浏览器命令。 |
推荐: 除非你有特殊需求,否则 maximize_window() 是首选,因为它更符合普通用户的操作习惯。
手动设置窗口大小
如果你不希望窗口“最大化”,而是想设置一个特定的、固定的尺寸(模拟移动设备或平板),你可以使用 set_window_size()。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
driver.get("https://www.google.com")
# 设置窗口大小为 800x600
driver.set_window_size(800, 600)
print(f"手动设置后的窗口尺寸: {driver.get_window_size()}")
# ... 执行测试 ...
finally:
driver.quit()
输出示例:

手动设置后的窗口尺寸: {'width': 800, 'height': 600}
最佳实践和注意事项
-
何时使用最大化? 在测试开始时调用
driver.maximize_window()是一个很好的实践,可以确保你的测试在不同分辨率的屏幕上都能有一致的视觉体验,避免因窗口太小导致元素找不到。 -
maximize_window()在无头模式下的行为 当你使用无头模式时,maximize_window()可能不会按预期工作,因为它依赖于图形界面,一个更可靠的替代方案是结合maximize_window()和set_window_size()来确保窗口大小。from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--headless=new") # 使用新的无头模式 driver = webdriver.Chrome(options=chrome_options) try: driver.get("https://www.google.com") # 在无头模式下,maximize_window() 可能无效,可以结合使用 driver.maximize_window() # 获取最大化后的尺寸 max_size = driver.get_window_size() print(f"尝试最大化后的尺寸: {max_size}") # 如果尺寸不对,可以手动设置一个较大的尺寸作为后备方案 # driver.set_window_size(1920, 1080) finally: driver.quit() -
代码简洁写法 如果你不想使用
webdriver-manager,需要手动下载chromedriver并指定路径,代码会像这样:from selenium import webdriver # 指定 chromedriver 的路径 service = webdriver.chrome.service.Service(executable_path='/path/to/your/chromedriver') driver = webdriver.Chrome(service=service) driver.get("https://www.example.com") driver.maximize_window() # ... driver.quit()强烈推荐使用
webdriver-manager,因为它可以自动管理驱动程序,避免路径问题。
| 方法 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
maximize_window() |
最符合用户习惯,代码简单 | 在某些环境下可能不稳定 | 绝大多数自动化测试场景的首选 |
fullscreen_window() |
效果稳定,真正的全屏 | 视觉效果与用户日常使用不同 | 需要测试全屏布局或需要最大可用空间时 |
set_window_size() |
精确控制,不受环境影响 | 需要手动指定像素值 | 模拟特定设备尺寸或进行响应式测试时 |
对于初学者和大多数项目,直接记住并使用 driver.maximize_window() 就足够了。
