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

Python webbrowser的open_new是否已废弃?如何控制Chrome新开窗口/标签

webbrowser模块相关问题解答

open_new方法废弃状态说明

Python标准库的webbrowser.open_new()方法未被废弃,所有官方维护中的Python版本均保留该方法的正常支持,你遇到的问题和方法废弃无关。

强制新建标签而非新窗口的原因

该行为是Chrome浏览器在macOS平台的默认规则,和webbrowser模块无关。
你当前使用的open -a调用逻辑中,只要Chrome已经处于运行状态,系统默认会将新URL投递到已有Chrome进程,在当前活跃窗口新建标签打开,webbrowser仅负责透传命令,未修改相关启动逻辑。

可控打开方式的解决方案

方案1:添加Chrome启动参数(推荐)

在原有调用命令中新增--new-window参数,强制要求Chrome打开独立新窗口:

import webbrowser

# --args 表示后续参数将传递给Chrome本身
CHROME_PATH = 'open -a /Applications/Google\ Chrome.app --args --new-window %s'
browser = webbrowser.get(CHROME_PATH)
browser.open("http://www.yahoo.com")

方案2:直接调用Chrome二进制文件

如果需要更稳定的控制效果,可以直接指向Chrome的可执行文件路径调用:

import webbrowser

CHROME_PATH = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --new-window %s'
browser = webbrowser.get(CHROME_PATH)
browser.open("http://www.yahoo.com")

方案3:使用subprocess手动执行命令

跳过webbrowser的封装,直接通过系统命令调用,灵活度最高:

import subprocess

url = "http://www.yahoo.com"
subprocess.run(["open", "-a", "Google Chrome", "--args", "--new-window", url], check=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:45:01