我们最近使用ChromeDriver v87.0.4280.20和Chrome v87.0.4280.66(官方版本)(64位)升级了我们的 Windows 10 测试环境,升级后,即使是最小的程序也会生成此错误日志:
[9848:10684:1201/013233.169:ERROR:device_event_log_impl.cc(211)] [01:32:33.170] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
最小代码块:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get('https://www.google.com/')
控制台输出:
DevTools listening on ws://127.0.0.1:64170/devtools/browser/2fb4bb93-79ab-4131-9e4a-3b65c08dbffb
[9848:10684:1201/013233.169:ERROR:device_event_log_impl.cc(211)] [01:32:33.170] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
[9848:10684:1201/013233.172:ERROR:device_event_log_impl.cc(211)] [01:32:33.173] USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
有没有人面临同样的问题?ChromeDriver/chromev 87相对于ChromeDriver/chromev 86有没有什么变化?有什么线索吗?
6条答案
按热度按时间jtjikinw1#
我对日志垃圾邮件表示歉意。如果您在连接WebUSB设备时没有遇到问题,您可以忽略这些警告。这些警告是由Chrome试图读取当前挂起的USB设备的属性而触发的。
gopyfrb32#
但是,可以通过简单的 hack(即通过
add_experimental_option()
添加参数)抑制这些日志消息出现在控制台上,如下所示:代码块:
型
vd2z7a6w3#
经过相当多的讨论,文档和Chromium问题在这里是与日志消息的表面化相关的细节:
详情
这一切都始于 chromium 问题Remove WebUSB's dependency on libusb on Windows的报告:
当硬件被插入并且VID/PID对系统未知时,windows 10正确地加载CDC部分的CDC驱动程序和WebUSB部分的WinUSB驱动程序(版本10)(没有红色标记)。然而,似乎chrome从来没有找到设备,直到我手动在接口上强制旧的WinUSB驱动程序(版本6 -可能也修改了)。
该解决方案以逐步方式实施,如下所示:
1.在新的Windows USB后端开始支持某些传输
1.修复新Windows USB后端中的批量/中断传输
1.[usb]从Windows上的集线器驱动程序读取BOS描述符
1.[usb]在Windows上枚举期间收集所有复合设备路径
1.[usb]删除UsbServiceWin帮助函数中的参数
1.[usb]在新的Windows后端支持复合设备
1.[usb]在Windows枚举USB功能时检测它们
1.[usb]支持多功能复合设备
1.[usb]保持接口请求,直到Windows枚举函数
1.[usb]将方向参数添加到ClearHalt
1.[usb]计数对WINUSB_INTERFACE_HANDLE的引用
1.[usb]在Windows后端实现阻止操作
这些更改确保了新的后端已准备就绪,可以通过Chrome Canary和chrome-dev-channel进行测试,您可以通过以下方式手动访问:
提交的更多变更请求如下:
由于新后端的实验性启动看起来很稳定,最终默认启用了这些配置,以便通过usb向Chrome 87的所有用户推出更改:默认情况下启用新的Windows USB后端。Revision/Commit
这个想法是一旦这个配置成为默认的几个里程碑,* chrome 团队 * 将开始删除Windows特定的代码从旧的后端和删除标志。
前方的路
更新
根据@ReillyGrant的[Committer,谷歌浏览器的WebDriver]评论:
参考文献
您可以在以下内容中找到一些相关的详细讨论:
s71maibg4#
我昨天遇到了这个问题,我已经通过更新所有可用的windows更新修复了它。
https://support.microsoft.com/en-us/windows/what-to-try-if-your-touchscreen-doesn-t-work-f159b366-b3ef-99ad-24a4-31a4c62ab46d
bvhaajcl5#
对我有效的部分解决方案
我也收到了这个错误。它让我的程序停止运行。
1.我拔掉了所有的USB设备,运行程序,没有错误。
1.重新插入设备,运行程序。我仍然收到错误,但是,程序完成没有错误停止程序。
e0bqpujr6#
注意:对于Windows 10上的WebdriverIO,这会为我抑制错误消息: