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

Linux环境下Python Selenium启动浏览器后如何自动切换回终端窗口

可行解决方案

方案1:修复selenium原生最小化代码(无额外依赖,优先级最高)

你原有代码的最小化操作没有调用方法,漏了括号,修正后即可正常最小化浏览器窗口,自动回到之前的终端界面:

from selenium import webdriver
web = webdriver.Chrome()
web.get('https://www.google.com')
print('testing')
# 加()调用最小化方法,原代码漏了括号所以不生效
web.minimize_window()
input('did it work?')

如果你的桌面环境最小化后不会自动切回终端,继续看下面的方案。

方案2:X11环境下用wmctrl直接激活终端窗口

大部分Linux发行版默认X11环境时,通过窗口管理工具wmctrl可以直接切换窗口:

  • 先安装依赖:sudo apt install wmctrl(Debian/Ubuntu系,其他发行版对应替换包管理器命令)
  • 代码中调用命令切回上一个活跃窗口(也就是你启动程序的终端):
import subprocess
from selenium import webdriver

web = webdriver.Chrome()
web.get('https://www.google.com')
print('testing')
# 切换到上一个活跃窗口
subprocess.run(["wmctrl", "-a", ":ACTIVE:"], capture_output=True)
# 如果上一个窗口不对,也可以直接匹配终端窗口名,比如你用gnome-terminal的话:
# subprocess.run(["wmctrl", "-a", "Terminal"], capture_output=True)
input('did it work?')

方案3:Wayland环境下用ydotool模拟快捷键

如果你用的是新版Ubuntu/Fedora等默认Wayland的桌面环境,wmctrl不生效的话用ydotool模拟按键:

  • 先安装依赖:sudo apt install ydotool
  • 代码中调用命令模拟Super+Tab切换:
import subprocess
from selenium import webdriver

web = webdriver.Chrome()
web.get('https://www.google.com')
print('testing')
# 模拟按下松开Super+Tab
subprocess.run(["ydotool", "key", "125:1", "15:1", "15:0", "125:0"], capture_output=True)
input('did it work?')

可选优化方案:无头模式启动浏览器

如果你不需要手动操作浏览器界面,直接启动无头模式完全不会弹出浏览器窗口,无需切换:

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

chrome_options = Options()
chrome_options.add_argument("--headless=new")
web = webdriver.Chrome(options=chrome_options)
web.get('https://www.google.com')
print('testing')
input('did it work?')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:57:03