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

Python结合Selenium与Tkinter开发时如何避免弹出多个终端窗口

问题原因

你遇到的弹窗是Windows系统下ChromeDriver进程默认创建的控制台窗口,pyinstaller的-w参数仅能隐藏主程序的控制台,无法控制Selenium启动的子进程窗口属性。

解决方案

按以下步骤修改即可完全消除弹窗:

  1. 调整mp.freeze_support()的调用位置
    该方法必须放在主程序入口的最开头,放在类初始化内会导致多进程子进程异常弹窗。
  2. 配置ChromeDriver Service的窗口隐藏属性
    利用Windows系统的CREATE_NO_WINDOW(值为0x08000000)进程创建标志,禁止ChromeDriver弹出控制台。
修改后完整代码
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from tkinter import *
import multiprocessing as mp

# Windows系统进程创建标志:不创建控制台窗口
CREATE_NO_WINDOW = 0x08000000

class Scrub:
    def __init__(self, master):
        self.master = master
        self.submit_btn = Button(
            self.master, text='Submit', command=self.submit)
        self.submit_btn.pack()

    def submit(self):
        self.t1 = mp.Process(target=execute)
        self.t1.daemon = True
        self.t1.start()


def execute():
    try:
        urls = ['https://www.google.com/', 'https://www.youtube.com/',
                'https://www.instagram.com/', 'https://www.facebook.com/', 'https://www.cnn.com/']
        for url in urls:
            scrape_page(url)
    except NameError:
        print('There was an error...')


def scrape_page(url):
    opts = Options()
    opts.add_argument("headless")
    chrome_driver = os.getcwd() + "\chromedriver.exe"
    # 配置Service参数,隐藏控制台窗口
    service = Service(executable_path=chrome_driver, creationflags=CREATE_NO_WINDOW)
    driver = webdriver.Chrome(options=opts, service=service)
    driver.get(url)
    driver.quit()


if __name__ == '__main__':
    mp.freeze_support()
    root = Tk()
    gui = Scrub(root)
    root.mainloop()
兼容说明
  • 打包仍然使用原有命令即可:pyinstaller -w -F --onefile TMO_Scrub.pyw
  • 如果你使用的是Selenium 3.x版本,不支持Service的creationflags参数,可以直接在webdriver初始化时添加参数:driver = webdriver.Chrome(options=opts, executable_path=chrome_driver, service_creationflags=CREATE_NO_WINDOW)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:09:02