我想做的事:
我想使用Selenium ChromeDriver打开Chrome浏览器,而不将Chrome消息输出到控制台。
我所做的:
from selenium import webdriver
driver = webdriver.Chrome(r'C:\Users\u1\Documents\scripts\chromedriver.exe')
输出:
C:\Users\u1\Documents\scripts>python test.py
DevTools listening on ws://127.0.0.1:50605/devtools/browser/11c9063a-44ce-4b39-9566-9e6c6270025c
我想隐藏输出消息“DevTools正在侦听...”
我试图解决这个问题:
使用上下文库
from selenium import webdriver
import contextlib
with contextlib.redirect_stdout(None):
driver = webdriver.Chrome(r'C:\Users\u1\Documents\scripts\chromedriver.exe')
使用devnull
from selenium import webdriver
import subprocess
devnull = subprocess.DEVNULL
subprocess.Popen(open_browser(), stdout=devnull, stderr=devnull)
def open_browser():
driver = webdriver.Chrome(r'C:\Users\u1\Documents\scripts\chromedriver.exe')
使用对数水平=3
chrome_options = Options()
chrome_options.add_argument("--log-level=3")
driver = webdriver.Chrome(r'C:\Users\u1\Documents\scripts\chromedriver.exe', chrome_options=chrome_options)
但是消息还是显示出来了。我该如何在Python中隐藏输出消息“DevTools listening on ...”?
5条答案
按热度按时间sc4hvdpw1#
将此选项添加到您的驱动程序中,您的问题将得到解决:
oalqel3c2#
在使用Selenium和Python监听ws://www.example.com的DevTools中存在类似问题127.0.0.1:57671/devtools/browser/8a586f7c-5f2c-4d10-8174-7a7bf50e49b5。
答案是:
基于Chanticleer在Python中隐藏Chrome驱动程序控制台
按如下所示查找并编辑此文件:位于Python文件夹中的Lib\site-packages\selenium\webdriver\common\services.py。
通过以下方式添加创建标志来编辑Start()函数:创建标志=创建无窗口
非常适合我(python3.7, selenium 3.141.0)
请给予我花了几个小时寻找答案。
dy1byipe3#
这些都是chrome消息,所以您需要设置Chrome-Log Level的选项来隐藏这些消息,将日志级别设置为
--log-level=3
应该足够了(仅限致命日志消息)。同样出于好奇,我能问问为什么吗?
zqdjd7g94#
传递
--show-capture=no
就完成了这项工作czq61nw15#
有一种方法可以通过修改 selenium 库来解决这个问题。
您可以直接搜索下一条路线,修改该子进程的线路,这将关闭控制台中出现的消息。
你去主文件夹在路线
/venv/selenium/webdriver/common/service.py
你修改下一行,请你写这个.有了这段代码,你就能得到解答。