使用Selenium按类定位元素时出现NoSuchElementException错误求助
Selenium元素定位失败及USB报错原因解析
1. 核心问题:NoSuchElementException(元素找不到)
你用By.CLASS_NAME传递了两个类名 "start is-armed",这是错误用法:
By.CLASS_NAME仅支持单个类名,无法同时传入多个用空格分隔的类名。Selenium会把整个字符串当成一个完整类名去查找,而页面中不存在类名为start is-armed的元素,因此抛出NoSuchElementException。
修复方案:
若要定位同时包含start和is-armed两个类的元素,改用By.CSS_SELECTOR:
startButton = driver.find_element(By.CSS_SELECTOR, ".start.is-armed")
或使用By.XPATH:
startButton = driver.find_element(By.XPATH, "//*[@class='start is-armed']")
2. USB相关报错:无关警告,可忽略
日志中的USB错误(Could not read device interface GUIDs、Failed to read descriptor from node connection)是ChromeDriver在Windows系统下的日志输出,与你的Selenium代码逻辑无关。这是系统USB设备驱动或连接的小问题,不会影响元素定位或脚本运行,无需处理。
内容的提问来源于stack exchange,提问作者Eli Bauer
相关产品推荐
相关产品推荐

