如何在Python Selenium中使用ChromeDriver来消除启动Google Chrome的响应消息



我有一个问题,我想有一个干净的终端/输出,但当我在python中使用selenium时,当我调用:driver = webdriver.Chrome()

我在输出之间收到以下消息:

[14096:8964:1002/201524.623:ERROR:chrome_browser_main_extra_parts_metrics.cc(228)] crbug.com/1216328: Checking Bluetooth availability started. Please report if there is no report that this ends.
[14096:8964:1002/201524.623:ERROR:chrome_browser_main_extra_parts_metrics.cc(231)] crbug.com/1216328: Checking Bluetooth availability ended. 
[14096:8964:1002/201524.632:ERROR:chrome_browser_main_extra_parts_metrics.cc(234)] crbug.com/1216328: Checking default browser status started. Please report if there is no report that this ends.
[14096:5428:1002/201524.633:ERROR:device_event_log_impl.cc(214)] [20:15:24.633] Bluetooth: bluetooth_adapter_winrt.cc:1073 Getting Default Adapter failed.
[14096:8964:1002/201524.660:ERROR:chrome_browser_main_extra_parts_metrics.cc(238)] crbug.com/1216328: Checking default browser status ended.

我的代码没有任何错误,但我得到了这个临时输出如何删除此输出?我需要删除这个代码吗?

如果您将Selenium与Python一起使用,那么将这些额外的选项添加到Selenium代码中,这将禁用Console-上显示的所有错误

options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(options=options)

这些错误消息。。。

[5124:4344:1128/184821.088:ERROR:chrome_browser_main_extra_parts_metrics.cc(226)] crbug.com/1216328: Checking Bluetooth availability started. Please report if there is no report that this ends.
[5124:4344:1128/184821.145:ERROR:chrome_browser_main_extra_parts_metrics.cc(229)] crbug.com/1216328: Checking Bluetooth availability ended.

是一些参数化测试由于在启动时记录昂贵指标的超时而变得不稳定的原因


根据讨论,由于在启动时记录昂贵的度量超时,参数化测试是不稳定的isherman@chromium.org提到chrome_browser_main_extra_parts_metrics.cc中的任何一个调用都是不稳定:

  • bluetooth_utility::ReportBluetoothAvailability()
  • shell_integration::GetDefaultBrowser()

似乎asvitkine@chromium.org提交了一份提交,提到:

不要在Linux上记录直方图DefaultBrowser.State。要查询的代码默认浏览器状态有时会在浏览器上挂起Chrome启动测试机器人,导致片状。在Linux上禁用相关代码直到找到解决方案。此外,修改一些仪器消息更简洁,更清楚地说明错误何时出现这个问题可能会发生。一旦着陆,我们应该能够看到任何其他测试都会受到此影响,或者是否可以关闭该bug并且可以删除诊断日志。

一旦片状测试得到解决,此修复程序应在即将发布的版本中解决该问题。


临时解决方案

如果您想抑制错误日志,可以通过ChromeOptions()的实例添加实验选项'excludeSwitches', ['enable-logging'],如下所示:

  • Python解决方案:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    options = Options()
    options.add_experimental_option('excludeSwitches', ['enable-logging'])
    
  • Java解决方案:

    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOptions("excludeSwitches", ['enable-logging']);
    

您可以使用剧作家:

pip install --upgrade pip
pip install playwright
playwright install
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto("http://playwright.dev")
print(await page.title())
await browser.close()
asyncio.run(main())

这是剧作家的文件