Python的selenium库的headless模式下隐藏控制台信息【20210325】

发表于 2021-03-09 16:21:03
阅读 218

介绍

介绍

之前福哥给大家讲过关于Python的selenium库的使用技巧,通过selenium库可以调用浏览器打开网页并且进行自动化操作的方法。

selenium库有个headless模式,就是headless模式下不会弹出浏览器窗口,可以让自动化过程更像一个命令行程序在运行。不过这个headless模式下在终端会打印巨多的控制台信息,这些信息无法通过代码关闭,简直就是刷屏神器一样的存在,怎么办?

9ef95ba3ebc9d8f4.jpg

解决

可以通过修改selenium安装库里进行一些修改关闭这些控制台信息。

打开selenium库目录

python软件库目录在python安装目录的Lib文件夹下面,selenium软件库在Lib/site-packages文件夹下面。

D:\TFHome\Python27\Lib\site-packages\selenium

打开service.py程序

service.py程序在selenium文件夹下面

D:\TFHome\Python27\Lib\site-packages\selenium\webdriver\common\service.py

导入CREATE_NO_WINDOW库

在service.py程序最前面导入CREATE_NO_WINDOW库

from win32process import CREATE_NO_WINDOW

ea05b0c545f2c9c5.jpg

部分环境里面有可能没有win32process这个库,可以通过下面的命令安装

pip install pypiwin32

修改start方法

修改start方法的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)

6a436705246e62ec.jpg

总结

经过前面的改造后,再使用selenium的headless模式编写程序的时候就不会再有控制台信息刷屏了~~