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

如何让Selenium WebDriver在后台运行Chrome且不激活窗口?

解决Chrome Selenium后台运行不激活窗口的方案

针对你遇到的问题,这里提供几个可行的方案,既能让Chrome在后台运行,又不会触发网站的DDoS防护,也不会激活窗口影响你使用电脑:

方案1:将Chrome窗口移至屏幕可视区域外

这是最简单的方案,无需额外依赖,通过Chrome启动参数把窗口放到屏幕看不到的位置,操作时就不会弹出到前台。

代码示例:

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

chrome_options = Options()
# 把窗口坐标设为负数,移到屏幕外
chrome_options.add_argument("--window-position=-2000,-2000")
# 可选:设置正常窗口尺寸,避免网站检测异常
chrome_options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=chrome_options)

def check_appointment():
    driver.get("你的目标政务网站URL")
    # 这里替换成你输入验证码、检查预约时段的代码
    print("完成一次预约可用性检查")

# 每5分钟执行一次循环
while True:
    check_appointment()
    time.sleep(300)  # 300秒=5分钟

如果你的屏幕分辨率特别宽,可把-2000改成更大的负数(比如-3000),确保窗口完全在可视区域外。

方案2:使用虚拟显示环境(跨平台)

通过创建虚拟显示让Chrome在独立的虚拟桌面运行,完全不干扰当前系统的桌面环境,适合需要彻底隔离的场景。

步骤1:安装依赖

首先安装Python库:

pip install pyvirtualdisplay

Linux系统还需要安装xvfb服务:

sudo apt-get install xvfb

步骤2:代码示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from pyvirtualdisplay import Display
import time

# 创建虚拟显示,visible=0表示隐藏
display = Display(visible=0, size=(1920, 1080))
display.start()

chrome_options = Options()
# 添加参数避免Linux下的权限问题和资源限制
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

driver = webdriver.Chrome(options=chrome_options)

def check_appointment():
    driver.get("你的目标政务网站URL")
    # 替换成你的验证码输入、预约检查逻辑
    print("完成一次预约可用性检查")

while True:
    check_appointment()
    time.sleep(300)

# 程序退出时记得关闭资源(可选,脚本持续运行时可不加)
# driver.quit()
# display.stop()

方案3:Windows系统专属:强制隐藏Chrome窗口

利用Windows系统API直接隐藏Chrome窗口,即使操作过程中窗口试图激活,也能立刻被隐藏。

步骤1:安装依赖

pip install pywin32

步骤2:代码示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import win32gui
import win32con
import time

def hide_chrome_window():
    # 查找Chrome主窗口的句柄
    hwnd = win32gui.FindWindow("Chrome_WidgetWin_1", None)
    if hwnd:
        # 强制隐藏窗口
        win32gui.ShowWindow(hwnd, win32con.SW_HIDE)

chrome_options = Options()
chrome_options.add_argument("--window-size=1920,1080")

driver = webdriver.Chrome(options=chrome_options)
# 启动Chrome后立刻隐藏窗口
hide_chrome_window()

def check_appointment():
    driver.get("你的目标政务网站URL")
    # 操作后可能窗口会短暂显示,再次隐藏
    hide_chrome_window()
    # 替换成你的验证码输入、预约检查逻辑
    print("完成一次预约可用性检查")

while True:
    check_appointment()
    time.sleep(300)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:40:39