Python中如何用Selenium+Chrome控制打开浏览器窗口的数量?

python 软件用的是 selenium+谷歌浏览器-想控制打开浏览器窗口的数量,想改成单窗口,单进程,希望能压缩到 512m 虚拟机能够运行的程度并能打包正常运行,会做接单的联系我,不知道怎么修改,Python中如何用Selenium+Chrome控制打开浏览器窗口的数量?

9 回复

哎哎哎我我我我…不要小看我国人口基数,直接留 QQ 会爆掉的


用Selenium的ChromeOptions可以精确控制浏览器窗口数量。核心是复用已有的Chrome实例,而不是每次都开新窗口。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 方法1:复用浏览器实例(推荐)
def open_new_tab_in_existing_browser():
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    
    # 连接到已打开的Chrome实例
    driver = webdriver.Chrome(options=chrome_options)
    
    # 打开新标签页
    driver.execute_script("window.open('about:blank', '_blank');")
    
    # 切换到新标签页
    driver.switch_to.window(driver.window_handles[-1])
    driver.get("https://www.example.com")
    
    return driver

# 方法2:直接控制窗口数量
def control_window_count(max_windows=3):
    driver = webdriver.Chrome()
    driver.get("https://www.example.com")
    
    # 获取当前窗口数
    current_windows = len(driver.window_handles)
    
    # 如果窗口数少于最大值,打开新窗口
    if current_windows < max_windows:
        driver.execute_script("window.open('');")
        driver.switch_to.window(driver.window_handles[-1])
        driver.get("https://www.example2.com")
    
    # 关闭多余窗口
    while len(driver.window_handles) > max_windows:
        driver.switch_to.window(driver.window_handles[-1])
        driver.close()
        driver.switch_to.window(driver.window_handles[0])
    
    return driver

# 使用示例
if __name__ == "__main__":
    # 先手动打开Chrome(带远程调试):
    # chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\ChromeProfile"
    
    # 然后运行
    driver = open_new_tab_in_existing_browser()
    
    # 或者直接控制窗口数量
    driver2 = control_window_count(max_windows=2)

关键点:

  1. debuggerAddress连接已有Chrome实例,避免开新窗口
  2. window_handles列表管理所有窗口句柄
  3. execute_script("window.open('')")开新标签页
  4. switch_to.window()在窗口间切换
  5. close()关闭当前窗口

一句话建议: 复用浏览器实例比控制窗口数更高效。

d2FuZ2NoZW54aWFvY29vbEAxMjYuY29tCg==

我还真希望爆掉 技术太少了

这活给个报价呗

建议 lz 百度一下,关键词 selenium,python

自己学到知识还省钱

如果想省内存的话直接用那些无 gui 浏览器啊~~还能放 linux 上, 很稳

用 chrome headless 可以节约内存,selenium 控制只保持一个 session 就好了。 微信同名

回到顶部