采用selenium操作浏览器执行自动化操作的场景时,在使用 pyinstaller 打包成exe文件后,会有chromedriver.exe 或 geckodriver.exe 的console命令行窗口。
我们打包成exe文件一般是要分发到客户电脑上,出现这个窗体不太友好,我们需要把它隐藏掉:
先安装pywin32 安装命令:pip install pywin32
找到python安装目录,比如:
D:\Python\Python37\Lib\site-packages\selenium\webdriver\common\service.py
==》位置约: 72行
修改这个文件,先在顶部导入依赖包:from win32process import CREATE_NO_WINDOW
然后找到def start(self) 函数,里面的 subprocess.Popen增加一个参数:creationflags=CREATE_NO_WINDOW
最终改成:
```
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)
```
也可以直接使用creationflags=0x08000000这样的值。
重新打包 pyinstaller -F -w main.py 就可以了。如果还有命令行窗体出现看下面 关闭cmd控制台中的日志打印
转载自:
https://blog.csdn.net/xinxianren007/article/details/108031372
https://stackoverflow.com/questions/33983860/hide-chromedriver-console-in-python
http://www.piaoyi.org/python/python-dev-tips.html
标签:exe,python,self,selenium,chromedriver,控制台,creationflags From: https://www.cnblogs.com/yihulaojiu/p/17099555.html