【方法一】親測有效
問題:如何關(guān)閉selenium開發(fā)中的chromedriver.exe 或 geckodriver.exe 的console命令行窗
采用selenium操作瀏覽器執(zhí)行自動化操作的場景時功舀,在使用 pyinstaller 打包成exe文件后,會有chromedriver.exe 或 geckodriver.exe 的console命令行窗口撒轮。
我們打包成exe文件一般是要分發(fā)到客戶電腦上杜窄,出現(xiàn)這個窗體不太友好迎罗,我們需要把它隱藏掉:
先安裝pywin32? ? 安裝命令:pip install pywin32
找到python安裝目錄,比如:
D:\Python\Python37\Lib\site-packages\selenium\webdriver\common\service.py
==》位置約: 72行
修改這個文件,先在頂部導(dǎo)入依賴包:from win32process import CREATE_NO_WINDOW
然后找到def start(self) 函數(shù)篮撑,里面的 subprocess.Popen增加一個參數(shù):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 就可以了匆瓜。如果還有命令行窗體出現(xiàn)看下面?關(guān)閉cmd控制臺中的日志打印
轉(zhuǎn)載自:
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
關(guān)閉cmd控制臺中的日志打印
要關(guān)閉這個打印需要在創(chuàng)建驅(qū)動對象之前設(shè)置以下參數(shù):
```
c_service = Service(r'chromedriver.exe')#驅(qū)動路徑? 我為了方便直接放在代碼根目錄下
options = webdriver.ChromeOptions()#加啟動設(shè)置
options.add_experimental_option('excludeSwitches', ['enable-logging'])#禁止打印日志
wd = webdriver.Chrome(options=options)
```
下面是關(guān)閉其他功能的一些參數(shù)設(shè)置
```
# 加啟動配置
chrome_options = webdriver.ChromeOptions()
# 打開chrome瀏覽器
# 此步驟很重要赢笨,設(shè)置為開發(fā)者模式,防止被各大網(wǎng)站識別出來使用了Selenium
#chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])#禁止打印日志
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])#跟上面只能選一個
chrome_options.add_argument('--headless') # 無頭模式
chrome_options.add_argument('--disable-gpu')? # 上面代碼就是為了將Chrome不彈出界面
chrome_options.add_argument('--start-maximized')#最大化
chrome_options.add_argument('--incognito')#無痕隱身模式
chrome_options.add_argument("disable-cache")#禁用緩存
chrome_options.add_argument('disable-infobars')
chrome_options.add_argument('log-level=3')#INFO = 0 WARNING = 1 LOG_ERROR = 2 LOG_FATAL = 3 default is 0
browser = webdriver.Chrome(chrome_options=chrome_options)
```
轉(zhuǎn)載自:
http://www.reibang.com/p/e80e95165726