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

Python Selenium实现Chrome标签页监控 限制最多3个标签自动加载后续任务

Chrome标签页数量监控自动化实现方案

现有代码问题

  • 原for循环逻辑在标签数达到3时会直接跳过后续待处理数据,不会监听标签关闭事件触发后续打开操作
  • 依赖pyautogui全局快捷键操作,容易受前台窗口变化影响导致逻辑失效
  • 未定义test变量,zip遍历单列表属于冗余写法

修正后实现代码

from collections import deque
import pandas as pd
import pyautogui as pg
import time

# 原有方法调整
def base_dados_processos(self):
    try:
        df = pd.read_excel('TABLE.xlsx')
        # 把待处理数据存入队列
        self.proc_queue = deque(df['COLUM'].tolist())
    except Exception:
        pg.alert(text='error', title='ERROR', button='OK')
        self.chrome.quit()

def loop_pesquisa(self):
    # 队列不为空就持续处理
    while self.proc_queue:
        num_current_tabs = len(self.chrome.window_handles)
        # 标签数小于3时打开下一个
        if num_current_tabs < 3:
            # 取出队列头部的待处理数据
            current_proc = self.proc_queue.popleft()
            # 新建标签页,用selenium原生方法更稳定
            self.chrome.switch_to.new_window('tab')
            time.sleep(1)
            self.chrome.get('https://stackoverflow.com/')
            pg.write(str(current_proc))
            pg.press('enter')
            time.sleep(3)
            pg.press('tab', presses=26)
            pg.press('enter')
            time.sleep(1)
            pg.press('enter')
        else:
            # 标签数已满,等待1秒后重新检测
            time.sleep(1)

逻辑说明

  • 用队列存储所有待处理的Excel数据,保证先进先出的处理顺序
  • 外层用while循环持续检测队列剩余数据和当前标签数量,标签关闭后数量降到3以下时会自动取出下一条数据打开新标签
  • 替换原快捷键操作为selenium原生的新建标签页方法,不受前台窗口切换影响,稳定性更高
  • 如果需要实现处理完自动关闭标签,可在标签页处理逻辑末尾加self.chrome.close(),再切换回第一个标签页即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:09:02