USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection

最近在帮新同事搭建python+selenium自动化测试环境,发现遇到如下报错:
[6452:9780:0415/100836.539:ERROR:device_event_log_impl.cc(214)] [10:08:36.526] USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)

网上查看得知此问题是由Chrome试图读取当前挂起的USB设备的属性而触发的。据说下个chrome版本将会解决此问题。目前暂时没有找到有效方法,只能忽略此报错,实现方法如下:
options=webdriver.ChromeOptions()

options=webdriver.ChromeOptions()

# 忽略无用的日志
options.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
driver=webdriver.Chrome(chrome_options=options)
driver.get(r'https://192.168.1.1') 

参考1:https://stackoverflow.com/questions/65080685/usb-usb-device-handle-win-cc1020-failed-to-read-descriptor-from-node-connectio
参考2:https://blog.csdn.net/liangjw99/article/details/113886367

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Unity中获取USB设备的FileDescriptor可以通过AndroidJavaObject类来实现。具体步骤如下: 1. 首先,需要在Unity项目中创建一个C#脚本,在脚本中使用AndroidJavaObject类来获取USB的FileDescriptor。 2. 在脚本中定义一个AndroidJavaClass对象和一个AndroidJavaObject对象,用于获取USB设备的信息。 3. 在脚本中定义一个方法,用于获取USB设备的FileDescriptor。 4. 在方法中,使用AndroidJavaObject对象调用getSystemService方法获取USB_SERVICE,再使用AndroidJavaObject对象调用openDevice方法打开USB设备,并获取其FileDescriptor。 下面是示例代码: ```csharp using UnityEngine; public class USBManager : MonoBehaviour { private AndroidJavaClass usbManagerClass; private AndroidJavaObject usbManagerObject; private AndroidJavaObject usbDeviceObject; public int GetFileDescriptor() { // 获取USB_SERVICE usbManagerClass = new AndroidJavaClass("android.content.Context"); string usbServiceName = usbManagerClass.GetStatic<string>("USB_SERVICE"); usbManagerObject = this.Call<AndroidJavaObject>("getSystemService", usbServiceName); // 获取USB设备 AndroidJavaClass usbDeviceClass = new AndroidJavaClass("android.hardware.usb.UsbDevice"); int vendorId = 1234; // USB设备的vendor id int productId = 5678; // USB设备的product id AndroidJavaObject usbDeviceListObject = usbManagerObject.Call<AndroidJavaObject>("getDeviceList"); AndroidJavaObject[] usbDeviceArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(usbDeviceListObject.GetRawObject()); foreach (AndroidJavaObject device in usbDeviceArray) { int devVendorId = device.Call<int>("getVendorId"); int devProductId = device.Call<int>("getProductId"); if (devVendorId == vendorId && devProductId == productId) { usbDeviceObject = device; break; } } // 打开USB设备并获取FileDescriptor AndroidJavaObject usbDeviceConnectionObject = usbManagerObject.Call<AndroidJavaObject>("openDevice", usbDeviceObject); return usbDeviceConnectionObject.Call<int>("getFileDescriptor"); } } ``` 注意:上述代码只适用于Android平台,如果需要在iOS或其他平台上实现类似功能,需要使用相应的API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值