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

如何阻止Selenium打开浏览器窗口时获取焦点?

Selenium打开浏览器不获取焦点的解决方案

针对你有40个独立Python单元测试、每个都需启动独立Selenium Firefox驱动且不想浏览器抢占焦点的问题,可按以下方案解决:

方案1:使用无头模式(无可视化窗口)

如果不需要看到浏览器界面,直接启用Firefox的新版无头模式,完全不会弹出窗口,自然不会干扰当前操作:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_argument("--headless=new")  # 新版无头模式,支持绝大多数浏览器特性
driver = webdriver.Firefox(options=firefox_options)

方案2:启动最小化窗口(保留可视化但不抢焦点)

若需要保留浏览器窗口可视化,可设置启动时最小化,窗口会直接进入任务栏,不会抢占当前桌面焦点:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_argument("--start-minimized")
driver = webdriver.Firefox(options=firefox_options)

该参数在Windows、Mac系统同样有效,启动的浏览器窗口会直接最小化到对应系统的任务栏/程序坞,不会干扰当前操作。

方案3:Linux下使用虚拟显示(完全隔离运行环境)

如果Linux系统下需要完整的浏览器可视化环境但不想干扰当前桌面,可借助虚拟显示工具Xvfb:

  1. 先安装依赖:
sudo apt-get install xvfb python3-pyvirtualdisplay
  1. 在测试代码中初始化虚拟显示:
from pyvirtualdisplay import Display
from selenium import webdriver

# 创建不可见的虚拟显示器
display = Display(visible=0, size=(1920, 1080))
display.start()

# 启动Firefox驱动,运行在虚拟环境中
driver = webdriver.Firefox()

# 测试执行完成后,关闭资源
driver.quit()
display.stop()

这种方式下浏览器完全在虚拟桌面运行,不会对当前桌面的焦点、窗口产生任何影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:01:17