如何在Python中调整Chrome窗口大小且无需使用selenium?
不使用Selenium调整Chrome窗口大小的实现方案
方案1:启动Chrome时直接通过参数指定窗口尺寸(无额外依赖)
webbrowser模块本身没有提供窗口控制能力,你可以直接调用系统进程启动Chrome,通过原生启动参数固定窗口大小,启动后无需额外调整,实现成本最低。
不同系统的Chrome路径需替换为你本地的实际安装路径,示例代码如下:
import subprocess # 替换为实际要打开的网址 target_url = "https://www.example.com" # 替换为你本地Chrome的安装路径 # Windows示例路径: chrome_path = "C:/Program Files/Google/Chrome/Application/chrome.exe" # macOS示例路径: # chrome_path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" # Linux示例路径: # chrome_path = "/usr/bin/google-chrome" # --window-size=宽,高 直接指定窗口尺寸,--new-window强制打开独立新窗口 subprocess.Popen([chrome_path, "--new-window", "--window-size=800,600", target_url])
方案2:通过系统窗口API调整已打开的Chrome窗口
如果已经通过webbrowser打开了Chrome窗口,需要后续动态调整尺寸,可以通过对应系统的窗口管理库实现:
Windows系统实现
首先安装依赖:pip install pywin32
示例代码:
import win32gui import win32con import webbrowser import time # 打开目标页面 webbrowser.open("https://www.example.com") # 等待窗口加载完成,可根据实际网络情况调整等待时长 time.sleep(2) chrome_handles = [] # 遍历所有窗口找到Chrome进程的窗口 def find_chrome_window(hwnd, handle_list): if win32gui.IsWindowVisible(hwnd) and "Google Chrome" in win32gui.GetWindowText(hwnd): handle_list.append(hwnd) win32gui.EnumWindows(find_chrome_window, chrome_handles) if chrome_handles: # 参数说明:窗口句柄、窗口层级、左上角x坐标、左上角y坐标、窗口宽度、窗口高度、显示标志 win32gui.SetWindowPos(chrome_handles[0], win32con.HWND_TOP, 100, 100, 800, 600, win32con.SWP_SHOWWINDOW)
其他系统实现逻辑
- macOS可通过
pyobjc框架的AppKit模块遍历窗口,调用setFrame:display:animate:方法调整尺寸 - Linux可通过
python-xlib库调用X11接口遍历调整窗口
注意事项
- 如果同时打开了多个Chrome窗口,可通过匹配窗口标题中的网页名称精准定位要调整的窗口,避免操作错窗口
- Chrome默认会复用已有进程打开新标签页,加
--new-window参数可以强制打开独立窗口,避免窗口查找失败
内容的提问来源于stack exchange,提问作者Roni
相关产品推荐
相关产品推荐

