Tkinter应用中如何隐藏Selenium EdgeDriver弹出的控制台窗口?
解决EdgeDriver弹出控制台窗口的问题
核心原因
PyInstaller的--noconsole参数仅控制主GUI程序的控制台,EdgeDriver本身启动时会独立弹出控制台窗口,需要针对驱动进程单独设置隐藏选项。
具体修改方案
修改你的button3_callback函数代码,通过Selenium的Service类设置驱动进程的创建标志,在Windows系统下隐藏控制台:
- 先导入必要的模块:
from selenium.webdriver.edge.service import Service import subprocess
- 更新驱动初始化代码:
def button3_callback(self): options = webdriver.EdgeOptions() options.add_argument("--disable-exit-on-background") # 设置驱动服务参数,隐藏控制台窗口 service = Service(creationflags=subprocess.CREATE_NO_WINDOW) driver = webdriver.Edge(options=options, service=service) # 后续的网页操作代码...
补充说明
subprocess.CREATE_NO_WINDOW是Windows系统专用的进程创建标志,会让驱动进程在无控制台窗口的状态下运行。- 之前添加的
--log-level=OFF是控制浏览器的日志输出,和驱动控制台窗口无关,所以无法解决问题。 - 重新用PyInstaller打包即可生效,无需调整打包参数(保持原有的
--noconsole等参数即可)。
内容的提问来源于stack exchange,提问作者Tomáš Ulrich
相关产品推荐
相关产品推荐

