添加ChromeOptions参数后仍无法消除TensorFlow Lite XNNPACK delegate及GPU相关日志问题
添加ChromeOptions参数后仍无法消除TensorFlow Lite XNNPACK delegate及GPU相关日志问题
看起来你遇到的这些输出其实大部分是Chrome浏览器底层的日志,并非Selenium脚本的执行错误——先帮你理清这一点:
Created TensorFlow Lite XNNPACK delegate for CPU是Chrome启用XNNPACK加速的正常信息(属于Info级别日志,不是错误)- 那条GPU相关的
ERROR:command_buffer_proxy_impl.cc(331)是Chrome的GPU渲染警告,大概率不影响你的脚本实际功能,但如果想要彻底屏蔽这些输出,只靠ChromeOptions的参数是不够的,还需要配置ChromeDriver的日志输出。
下面是针对性的解决步骤:
1. 调整ChromeOptions参数,启用新版Headless模式
旧版的--headless模式容易触发GPU相关的兼容问题,换成新版的--headless=new会更稳定,同时精简不必要的参数:
import time import os from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service chrome_options = Options() # 启用新版Headless模式,更接近正常Chrome行为 chrome_options.add_argument('--headless=new') # 禁用GPU加速,避免渲染相关警告 chrome_options.add_argument('--disable-gpu') # 解决资源限制问题 chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--no-sandbox') # 把Chrome自身的日志级别设为仅输出严重错误 chrome_options.add_argument('--log-level=3') # 禁用Chrome的日志记录组件 chrome_options.add_argument('--disable-logging') chrome_options.add_argument('--disable-software-rasterizer')
2. 配置ChromeDriver日志,彻底屏蔽底层输出
ChromeOptions只能控制Chrome浏览器的日志,ChromeDriver本身的输出需要通过Service类来配置,把日志定向到空设备(Windows用nul,Linux/macOS用/dev/null):
# 配置ChromeDriver服务,屏蔽所有日志 service = Service( # 把日志定向到空设备,丢弃所有输出 log_path='nul' if os.name == 'nt' else '/dev/null', # 关闭ChromeDriver本身的日志输出 service_args=['--log-level=OFF'] ) # 初始化Driver时传入配置好的Service和Options driver = webdriver.Chrome(service=service, options=chrome_options)
3. 完整的修正后脚本
把上面的配置和你的业务逻辑结合,完整脚本如下:
import time import os from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service chrome_options = Options() chrome_options.add_argument('--headless=new') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--log-level=3') chrome_options.add_argument('--disable-logging') chrome_options.add_argument('--disable-software-rasterizer') service = Service( log_path='nul' if os.name == 'nt' else '/dev/null', service_args=['--log-level=OFF'] ) driver = webdriver.Chrome(service=service, options=chrome_options) # 原有业务逻辑 driver.get("https://stepik.org/lesson/25969/step/12") time.sleep(5) textarea = driver.find_element(By.CSS_SELECTOR, ".textarea") textarea.send_keys("get()") time.sleep(5) submit_button = driver.find_element(By.CSS_SELECTOR, ".submit-submission") submit_button.click() time.sleep(5) driver.quit()
额外提示
- 你最初的脚本里缺少
from selenium import webdriver和import time的导入(后来补充了,但要确保导入语句完整) - 那些GPU警告如果不影响脚本的提交、点击等核心功能,其实可以不用过度在意——很多时候是系统环境(比如无桌面服务器、GPU驱动兼容问题)导致的,并非脚本错误
备注:内容来源于stack exchange,提问作者Sergey Saz
相关产品推荐
相关产品推荐

