完美解决Pyinstaller打包selenium去除driver黑框问题。

这篇具有很好参考价值的文章主要介绍了完美解决Pyinstaller打包selenium去除driver黑框问题。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

用Pyinstaller打包后,运行exe文件时总是出现driver控制台窗口,如下图

selenium pyinstaller,知识分享,selenium,python,测试工具

希望程序运行时,隐藏driver控制台窗口

下面针对以上问题给出解决方案

首先找到selenium包源码文件service.py中的start函数,文件路径如下:
Lib\site-packages\selenium\webdriver\common\service.py
找到文件中start函数,具体代码如下:

def start(self):
    """
    Starts the Service.

    :Exceptions:
     - WebDriverException : Raised either when it can't start the service
       or when it can't connect to the service
    """
    try:
        cmd = [self.path]
        cmd.extend(self.command_line_args())
        self.process = subprocess.Popen(cmd, env=self.env,
                                        close_fds=system() != 'Windows',
                                        stdout=self.log_file,
                                        stderr=self.log_file,
                                        stdin=PIPE,
                                        creationflags=self.creationflags)
    except TypeError:
        raise

方案①

修改start函数参数creationflags=self.creationflags为creationflags=134217728,具体代码如下:

def start(self):
    """
    Starts the Service.
    
    :Exceptions:
     - WebDriverException : Raised either when it can't start the service
       or when it can't connect to the service
    """
    try:
        cmd = [self.path]
        cmd.extend(self.command_line_args())
        self.process = subprocess.Popen(cmd, env=self.env,
                                        close_fds=platform.system() != 'Windows',
                                        stdout=self.log_file,
                                        stderr=self.log_file,
                                        stdin=PIPE,
                                        creationflags=134217728)
    except TypeError:
        raise

方案②

在services.py开头添加一行代码

from win32process import CREATE_NO_WINDOW

然后修改参数creationflags=self.creationflags为creationflags=CREATE_NO_WINDOW,具体代码如下:文章来源地址https://www.toymoban.com/news/detail-529696.html

def start(self):
    """
    Starts the Service.
    
    :Exceptions:
     - WebDriverException : Raised either when it can't start the service
       or when it can't connect to the service
    """
    try:
        cmd = [self.path]
        cmd.extend(self.command_line_args())
        self.process = subprocess.Popen(cmd, env=self.env,
                                        close_fds=platform.system() != 'Windows',
                                        stdout=self.log_file,
                                        stderr=self.log_file,
                                        stdin=PIPE,
                                        creationflags=CREATE_NO_WINDOW)
    except TypeError:
        raise

实验环境

以上实验环境:
python 3.7
pyinstaller 5.1
重要声明:
python 3.9不适用以上方法
python 3.8(小编未尝试)
python 3.7及以下应该没问题

#用心交流,共获提升,转载请注明出处。

到了这里,关于完美解决Pyinstaller打包selenium去除driver黑框问题。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pyinstaller打包selenium报错找不到webdriver

    遇到的情况: 使用pyinstaller -w -F打包selenium 在大部分机器上运行正常 但是少数机器上运行报错 selenium版本:3.141.0 报错内容: Message: ‘chromedriver.exe’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home 关键代码: 在网上查了许多方法,比如将chromedriver和e

    2024年02月16日
    浏览(103)
  • pyinstaller打包程序后闪退解决方法

    找个问题的一般都是python代码打包成exe出现闪退的,所以只适用于pyinstaller命令打包单文件或者多文件。 time.sleep() 在你需要打包的程序内部导入time库 使用time.sleep()函数,参数定长一点 input() 在你打包的程序末尾加入,只有在有输入操作后才会关闭 导入keyboard库,根据键位判

    2024年02月04日
    浏览(75)
  • oracle.jdbc.driver.OracleDriver is deprecated完美解决

      Orcale9后的版本把 oracle.jdbc.driver.OracleDriver 改为 oracle.jdbc.OracleDriver,常用的Oracle6,Oracle8在使用时经常会爆出这个错误。   第一步.手动引入ojdbc14包,放在如下目录  第二步.在对应的pom文件,加入对应依赖 !--oracle驱动-- dependency     groupIdcom.oracle/groupId     artifactIdojdbc14/ar

    2024年02月09日
    浏览(40)
  • 使用pyinstaller打包python文件遇到的问题和解决方法

    情况1 :当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时 例如: 打包下面这个检查输入的ip是否符合规范的程序ipcheck.py,程序中只Import了自带的库re 下载pyinstaller 使用Pyinstaller打包。先进入该程序所在的文件夹,在文件资源管理器的文

    2024年02月06日
    浏览(57)
  • 解决pyinstaller打包文件过大问题,手把手教学

    1.首先需要在Pycharm创建一个虚拟环境,如图:  2.第二步创建我们自己的虚拟环境,如图,我这里将我的环境命名为myworkspace,然后它会自动创建一个venv文件,这里面就包含了我们的一些依赖包,接下来点击create就行:  3.第三步点击create之后,我们再点击new window,打开我们的虚拟

    2024年02月14日
    浏览(69)
  • 含有openpyxl库pyinstaller 打包exe出错python解决方案

    在代码开头添加以下代码在打包。 如遇到错误, win32ctypes.pywin32.pywintypes.error: (110, ‘EndUpdateResource’, ‘系统无法打开指定的设备或文件。’) ,即可能是openpyxl库引发的

    2024年01月25日
    浏览(53)
  • python pyinstaller打包常见问题(二):No file找不到文件解决办法

    我写了python程序,本地环境能正常运行,我打算打包成exe文件 方便发给朋友,让没有python环境也能正常运行 程序调用了wav文件,一个音效资源文件,程序调用的路径如下: 程序制作完成后,我开始打包 在需要打包的程序的目录上,我进入终端输入以下命令进行打包: 完成打

    2024年02月22日
    浏览(51)
  • Python使用pyinstaller打包成.exe文件执行后闪退的解决办法

    1、程序在PyChram中运行正常,但是用pyinstaller将程序打包成.exe文件执行后闪退; 2、使用cmd在在.exe文件处./执行后,发现提示 No module named ‘ttkbootstrap’ ,没有ttkbootstrap模块; 3、在工程文件的venvLibsite-packages下,确实存在ttkbootstrap包;这个包不知什么原因没打包进.exe文件,

    2024年02月12日
    浏览(64)
  • python pyinstaller打包的exe在win7系统无法运行问题解决方法

    目录 一 .问题起因 二.解决方法 注意: pyinstaller打包之前,请先将bulid文件夹和dist文件夹删除,这两个文件夹是pyinstaller打包后自动生成的,删除重新打包可以避免版本干扰 .         近期做了一个溯源码项目(开发工具使用的是pycharm2023.1.3),由于是在windows环境运行,于是采用了pyin

    2024年02月07日
    浏览(70)
  • PYQT 自带的 Pyrcc 系统的使用,PyInstaller对PYQT程序进行打包,不能打包背景图片,图标等解决办法

    使用 PyInstaller 对程序进行打包,不能打包背景图片。打包后的软件可以正常运行,但涉及到图片相关的资源(如背景图片,头像)全部不显示。 当使用Python PyInstaller对程序进行打包时,如果程序中涉及到背景图片,会出现无法打包背景图片的问题。这是由于PyInstaller默认只会

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包