Pyinstaller打包后执行webdriver.Chrome,弹黑框问题解决方案 - 蝈蝈俊

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

本文介绍了解决 Chromedriver 弹出黑框问题的三种解决方案,包括修改 Selenium 源码、控制 subprocess.STARTUPINFO() 和设置 chrome_service.creation_flags = CREATE_NO_WINDOW。在使用时需注意绝对目录避免版本冲突。

🎯

关键要点

  • Chromedriver 默认情况下会在控制台存在时使用当前控制台,否则会新建一个控制台,导致弹出黑框问题。
  • 解决方案一:修改 Selenium 源码,在 service.py 中的 subprocess.Popen 加入 creationflags=134217728。
  • 解决方案二:使用 subprocess.STARTUPINFO() 控制,封装 NoConsoleChromeWebDriver,不修改 Selenium 源码。
  • 在 Selenium 4.0 以上版本中,chrome_service.creation_flags = CREATE_NO_WINDOW 是解决方案。
  • 注意使用绝对目录以避免版本冲突,可能导致 WebDriverException 错误。
  • 可以使用函数获取当前执行目录和相对目录。
➡️

继续阅读