Selenium调用ChromeDriver报usb_device_handle_win.cc:1048错误如何解决?
报错原因
这个USB相关报错属于Chrome/ChromeDriver的底层日志输出,不属于Selenium代码逻辑错误,触发原因如下:
- Chrome默认开启了WebUSB相关的设备扫描能力,在Windows环境下运行时,如果当前系统接入的USB设备存在驱动异常、接触不良、不兼容WebUSB协议的情况,Chrome扫描设备时无法读取设备描述符就会抛出该报错。
- 该报错默认仅为警告级别日志,绝大多数场景下不会影响Selenium脚本的正常执行,仅属于冗余日志输出。
解决方案
根据实际情况选择以下任意一种方案即可:
- 方案一:配置Chrome启动参数屏蔽冗余日志(最常用)
通过ChromeOptions添加禁用USB扫描、屏蔽非必要日志的参数,修改后的代码如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 禁用USB设备扫描功能 chrome_options.add_argument("--disable-usb-device-discovery") # 屏蔽Chrome的日志输出 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 仅输出严重级别的错误日志 chrome_options.add_argument("--log-level=3") PATH = "C:\Program Files (x86)\chromedriver.exe" driver = webdriver.Chrome(PATH, options=chrome_options) driver.get("https://www.hotstar.com/in") driver.find_element_by_id("searchField").send_keys("Movies")
- 方案二:排查本地USB设备异常
如果不想修改Chrome配置,可以排查本地连接的USB外设:拔掉暂时不用的U盘、外接摄像头、无线外设接收器等设备,重新运行脚本验证;也可以尝试更新主板USB驱动、外设官方驱动,解决底层设备运行异常的问题。 - 方案三:校验Chrome与ChromeDriver版本匹配度
该报错偶尔也会在Chrome主程序与ChromeDriver大版本不匹配时触发,打开Chrome的「关于Google Chrome」页面查看当前版本号,下载对应大版本的ChromeDriver替换本地文件即可。
如果脚本本身的功能执行正常,仅多出该条报错,也可以选择直接忽略,不会影响正常业务逻辑。
内容的提问来源于stack exchange,提问作者Jainam Kumar Jain
相关产品推荐
相关产品推荐

