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

使用Python webbrowser库打开多个独立Chrome窗口的问题求助

解决方案

问题根因

Chrome 默认会复用已有进程处理新的启动请求,未指定强制开新窗口参数时,只会在无已运行Chrome进程时创建新窗口,后续请求默认在现有窗口新建标签,最多触发2个独立窗口是Chrome的默认进程复用策略限制。

方案1:仅打开多个独立窗口(共享本地Chrome配置)

在Chrome启动参数中添加 --new-window 强制每次调用都新建独立窗口,示例代码如下:

import webbrowser

# 普通模式独立窗口
chrome_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe --new-window %s"
browser = webbrowser.get(chrome_path)

# 调用多次即可打开多个独立窗口
browser.open("https://www.example.com")
browser.open("https://www.baidu.com")

# 无痕模式独立窗口只需增加--incognito参数
chrome_incognito_path = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe --incognito --new-window %s"
browser_incognito = webbrowser.get(chrome_incognito_path)
browser_incognito.open("https://www.example.com")

方案2:完全隔离的独立Chrome窗口(支持多账号登录、进程完全独立)

如果需要每个窗口完全独立(互不干扰Cookie、配置,可同时登录同一站点的不同账号),需要额外增加 --user-data-dir 参数为每个窗口指定独立的用户数据目录,避免Chrome复用进程,示例代码如下:

import webbrowser
import tempfile
import os

chrome_exe = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"

# 批量打开5个完全独立的Chrome窗口
site_list = [
    "https://www.example.com",
    "https://www.baidu.com",
    "https://www.zhihu.com",
    "https://www.bilibili.com",
    "https://www.github.com"
]

for site in site_list:
    # 生成临时目录作为当前窗口的独立用户数据目录
    temp_dir = tempfile.mkdtemp()
    # 构造启动参数,如需无痕可增加--incognito
    launch_param = f'{chrome_exe} --new-window --user-data-dir="{temp_dir}" %s'
    browser = webbrowser.get(launch_param)
    browser.open(site)

# 若不需要保留窗口数据,程序退出前可删除所有临时目录

注意事项

  • 若路径包含空格,需要用引号包裹路径避免解析错误
  • 使用临时目录的方案如果手动关闭Chrome后,临时目录不会自动删除,可根据需求在代码中补充清理逻辑
  • 所有参数的顺序需要放在网址占位符%s之前,否则会被识别为网址的一部分

内容的提问来源于stack exchange,提问作者Javier Demario iloreta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:08