【问题标题】:Block output generated by Selenium Python that contains cookiebanner.js informationSelenium Python 生成的包含 cookiebanner.js 信息的块输出
【发布时间】:2021-02-15 19:03:55
【问题描述】:

在 selenium for python 上运行 headless chrome 时,每次加载页面时都会显示这两个输出

[0212/153923.202:INFO:CONSOLE(15)] "Cookie banner version 0.11.4-pl4 loaded", source: https://consent.gameforge.com/cookiebanner.js (15)
[0212/153923.205:INFO:CONSOLE(15)] "Initial consent: [object Object]", source: https://consent.gameforge.com/cookiebanner.js (15)

由于 python 脚本加载了许多页面,终端充满了几十个这样的输出,因此很难阅读其他打印文本。有没有办法防止这些输出显示在终端中?例如,通过过滤掉包含字符串 'cookiebanner.js'?

的 selenium 输出

这是重现输出的 sn-p 代码

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options = chrome_options, executable_path = ChromeDriverManager().install())
driver.get('https://lobby.ogame.gameforge.com/')

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/a/20748376/12326283
  • @gmdev 谢谢它的工作,但我猜它也会阻止其他输出?我读到了Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3cookiebanner 的消息也被log-level=1 屏蔽了,是用1 还是3 过滤最少量的消息更好?
  • 我不想谈论一些我相当缺乏经验的事情,所以很遗憾,我无法告诉你使用哪个更好来阻止某些消息类型。是否将其设置为 0 过滤掉消息或只是 13

标签: python selenium selenium-webdriver selenium-chromedriver google-chrome-headless


【解决方案1】:

使用 浏览上下文禁用以下cookiebanner.js 信息日志消息时:

[0215/033952.539:INFO:CONSOLE(15)] "Cookie banner version 0.11.4-pl4 loaded", source: https://consent.gameforge.com/cookiebanner.js (15)
[0215/033952.539:INFO:CONSOLE(15)] "Initial consent: [object Object]", source: https://consent.gameforge.com/cookiebanner.js (15)
[0215/033954.744:INFO:CONSOLE(1)] "Cookie Consent [object Object]", source: https://s3-static.geo.gfsrv.net/browsergamelobby/ogame/3.7.0/js/main.dba2812d.js (1)
[0215/033956.201:INFO:CONSOLE(24)] "Dispatching GFLocaleChange with [object Object]", source: https://gameforge.com/js/connect.js (24)
    

您可以添加 experimental_option excludeSwitches", ["enable-logging"] 如下:

options = webdriver.ChromeOptions()
options.headless = True
options.add_experimental_option("excludeSwitches", ["enable-logging"])

driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get('https://lobby.ogame.gameforge.com/')

参考文献

您可以在以下位置找到一些相关的详细讨论:

【讨论】:

  • 谢谢!我猜这个选项也会阻止其他输出,不是吗?你知道这个选项和chrome_options.add_argument("--log-level=1") 在被阻止的消息数量方面有什么区别吗?
  • @soundwave Atm 我想避免对add_argument("--log-level=1") 发表任何评论。虽然这个论点在较早的时候有效,但最近 python 客户端发生了变化。在评论任何内容之前,我需要重新查看客户端代码。
  • 我会等待其他答案,也许有办法只阻止包含特定关键字的输出 (cookiebanner)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 2021-11-18
相关资源
最近更新 更多