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

Selenium操控Chrome:禁止窗口自动弹出与鼠标自动跳转问题求助

解决Selenium操控Chrome时窗口自动弹出的问题

以下几种方案可以解决Chrome窗口自动弹出、获取焦点的问题,同时保留任务栏图标,无需使用headless模式:

方案1:使用Chrome启动参数直接禁用焦点获取

通过添加特定的启动参数,让Chrome启动时最小化且不获取焦点,后续操作也不会弹出窗口:

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

chrome_options = Options()
# 启动时自动最小化窗口,任务栏保留图标
chrome_options.add_argument("--start-minimized")
# 禁止Chrome启动或操作时获取窗口焦点
chrome_options.add_argument("--no-focus-on-launch")
# 禁用弹窗拦截(避免某些操作触发弹窗强制激活窗口)
chrome_options.add_argument("--disable-popup-blocking")

driver = webdriver.Chrome(options=chrome_options)

--no-focus-on-launch是Chrome官方支持的参数,能有效阻止窗口在导航、打开新标签时自动激活前置,配合--start-minimized可以让窗口始终在后台最小化状态。

方案2:针对Windows系统强制阻止窗口激活

如果方案1仍有鼠标跳转问题,可以借助Windows API强制取消Chrome窗口的激活状态:

  1. 先安装依赖库:
pip install pywin32
  1. 添加控制窗口焦点的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import win32gui
import win32api
import win32con

def keep_chrome_background():
    # 匹配Chrome主窗口的类名(不同版本可能略有差异,可自行调整)
    hwnd = win32gui.FindWindow("Chrome_WidgetWin_1", None)
    if hwnd:
        # 将当前激活的窗口保持为前台,强制Chrome不抢占焦点
        current_focus = win32gui.GetForegroundWindow()
        if current_focus != hwnd:
            win32api.SendMessage(hwnd, win32con.WM_ACTIVATE, win32con.WA_INACTIVE, 0)

# 初始化Chrome
chrome_options = Options()
chrome_options.add_argument("--start-minimized")
driver = webdriver.Chrome(options=chrome_options)

# 执行操作后调用函数阻止焦点跳转
driver.get("https://example.com")
keep_chrome_background()

# 打开新标签时同样调用
driver.execute_script("window.open('https://google.com');")
keep_chrome_background()

方案3:Linux/Mac系统适配

  • Linux:使用wmctrl工具,在操作后执行命令wmctrl -r "Google Chrome" -b add,hidden将Chrome窗口设为隐藏但保留任务栏图标,或wmctrl -r "Google Chrome" -b remove,focused取消焦点。
  • Mac:通过AppleScript命令tell application "Google Chrome" to set visible of window 1 to true保持窗口可见但不激活,或使用osascript -e 'tell application "System Events" to set frontmost of process "Google Chrome" to false'取消前置。

内容的提问来源于stack exchange,提问作者Quốc Thiệu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:45:40