系统学习 By.CLASS_NAME 的核心语法、实操示例与最佳实践
By.CLASS_NAME 是 Selenium 中通过元素 class 属性进行定位的方式。class 原本是 CSS 样式挂钩点,用于给一组元素批量应用相同样式,因此 不要求唯一,最适合用来批量定位同类元素(如所有带 .btn-primary 的按钮、所有商品卡片)。需要特别注意:By.CLASS_NAME 只能传单个 class 名称(不能有空格),如果元素有多个 class(如 class="btn btn-primary"),只能传其中一个;多 class 组合筛选应改用 By.CSS_SELECTOR。此外,class 常被前端构建工具(Webpack/Vite)压缩改名,稳定性不如 By.ID。
driver.find_element(By.CLASS_NAME, "card-item")(匹配第一个class属性为card-item的元素)driver.find_element(By.CLASS_NAME, "primary-btn")(匹配第一个class属性为primary-btn的元素)driver.find_elements(By.CLASS_NAME, "card-item")(获取所有class属性为card-item的元素)driver.find_elements(By.CLASS_NAME, "badge")(获取所有class属性为badge的元素)
以下元素带有 demo- 前缀 class,与下方 demo-box 的 card-item / input-text / action-btn 完全隔离。