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

如何在运行Python转译的exe文件时隐藏WebDriver控制台窗口?

解决chromedriver.exe控制台窗口弹出问题

以下是针对Windows平台的有效解决方法,适用于Selenium 4及以上版本:

核心方案:通过Service配置隐藏chromedriver进程窗口

在初始化Chrome驱动时,利用Service类的creationflags参数,让chromedriver以无窗口模式启动:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import subprocess
import sys

# 配置Chrome选项(如果不需要显示浏览器窗口,可添加无头模式参数)
chrome_options = webdriver.ChromeOptions()
# 可选:启用无头模式,隐藏浏览器窗口
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--log-level=3")  # 禁用chromedriver日志输出,减少冗余

# 创建Service对象,设置Windows平台专属的无窗口启动参数
service = Service(executable_path="chromedriver.exe")
if sys.platform == "win32":
    # 让chromedriver进程启动时不显示控制台窗口
    service.creationflags = subprocess.CREATE_NO_WINDOW

# 初始化驱动
driver = webdriver.Chrome(service=service, options=chrome_options)

配合webdriver_manager自动管理chromedriver的情况

如果用webdriver_manager自动下载chromedriver,同样可以套用上述Service配置:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import subprocess
import sys

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--disable-gpu")

service = Service(ChromeDriverManager().install())
if sys.platform == "win32":
    service.creationflags = subprocess.CREATE_NO_WINDOW

driver = webdriver.Chrome(service=service, options=chrome_options)

打包exe的注意事项

打包时使用你原本的--windowed参数即可,确保chromedriver能被程序找到:

pyinstaller --windowed --onefile your_parser_script.py

如果是手动携带chromedriver,打包后需将chromedriver.exe放在exe同目录下;用webdriver_manager则无需手动携带,程序会自动下载对应版本的驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:25:20