我有一个Python脚本,它可以选择不同的歌曲播放列表,并在YouTube上的浏览器中打开它。但是,每次运行它时,我都会在控制台中收到很多消息。我不希望出现这种情况。我如何防止这种情况?我希望仅防止Selenium消息(如果可能),但所有控制台消息都可以。
我试着补充一个论点:
options = webdriver.ChromeOptions()
options.add_argument("--log-level=OFF")
最初,我有这行代码-我不记得为什么需要它,但删除它似乎没有做什么:options.add_experimental_option('excludeSwitches', ['enable-logging'])
我尝试使用这些参数调用驱动程序:
一米一米一x一米二米一x
这是我在控制台上看到的:
DevTools listening on ws://127.0.0.1:55146/devtools/browser/9ffb59e1-adc0-480e-835e-e36ffe7cb428
DevTools listening on ws://127.0.0.1:55156/devtools/browser/5b6b567e-6ae1-4cdd-8206-915e788e6fe0
[8812:12068:0207/132732.310:ERROR:device_event_log_impl.cc(215)] [13:27:32.309] USB: usb_service_win.cc:415 Could not read device interface GUIDs: The system cannot find the file specified. (0x2)
[8812:12068:0207/132732.310:ERROR:device_event_log_impl.cc(215)] [13:27:32.310] USB: usb_device_handle_win.cc:1046 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
Traceback (most recent call last):
File "c:\Users\EliBa\OneDrive\Documents\Coding Projects\Python\musico.py", line 14, in <module>
driver.fullscreen_window()
File "C:\Users\EliBa\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 596, in fullscreen_window
self.execute(Command.FULLSCREEN_WINDOW)
File "C:\Users\EliBa\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
self.error_handler.check_response(response)
File "C:\Users\EliBa\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=109.0.5414.120)
Stacktrace:
Backtrace:
(No symbol) [0x002B6643]
(No symbol) [0x0024BE21]
(No symbol) [0x0014DA9D]
(No symbol) [0x0012EF6A]
(No symbol) [0x001A3AAB]
(No symbol) [0x001B61B6]
(No symbol) [0x0019FB76]
(No symbol) [0x001749C1]
(No symbol) [0x00175E5D]
GetHandleVerifier [0x0052A142+2497106]
GetHandleVerifier [0x005585D3+2686691]
GetHandleVerifier [0x0055BB9C+2700460]
GetHandleVerifier [0x00363B10+635936]
(No symbol) [0x00254A1F]
(No symbol) [0x0025A418]
(No symbol) [0x0025A505]
(No symbol) [0x0026508B]
BaseThreadInitThunk [0x76CC7D69+25]
RtlInitializeExceptionChain [0x77E2BB9B+107]
RtlClearBits [0x77E2BB1F+191]
(No symbol) [0x00000000]
什么都没用,有什么建议吗?
2条答案
按热度按时间dffbzjpn1#
创建无窗口
CREATE_NO_WINDOW
* process creation flag指示进程作为控制台应用程序在没有控制台窗口的情况下运行。因此,未设置应用程序的控制台句柄。如果应用程序不是控制台应用程序,或者与 * CREATE_NEW_CONSOLE * 或 * DETACHED_PROCESS * 一起使用,则忽略此标志。此用例
要完全抑制Selenium控制台输出,可以使用 *
CREATE_NO_WINDOW
* 进程创建标志,如下所示:控制台快照:
byqmnocz2#
根据您希望保留的日志记录级别,此操作分为两个部分。
设置为日志级别3的选项将只允许某些日志来自驱动程序。但是,如果您有chrome_service.creationflags = CREATE_NO_WINDOW,它将不会从驱动程序发送任何信息到python控制台,所以实际上您只需要chrome_service.creationflags = CREATE_NO_WINDOW,但这可能太多了,如果是这样的话,ID使用options.add_argument(“--log-level=3”),因为这将只允许很少消息通过,且它们通常都是相关的。
下面是我使用每个选项导航到同一个地方的图片&没有进行比较(忽略红色边框的框,它们是无关的):
选项。add_argument(“--对数级别=3”)x1c 0d1x
浏览器_服务.创建标志=创建_否_窗口
任一选项
你可以看到没有选项是如何抛出我的蓝牙适配器和证书的各种错误,但选择任何一个选项,输出是更多的控制。我的建议是使用日志级别3。