You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Python如何定位class name含固定部分和动态参数的元素

完全可以仅通过固定的class片段定位到目标元素,Selenium Python中常用的实现方法如下:

方法1:CSS选择器(最推荐)

class属性本身是空格分隔的多类名列表,你可以直接匹配固定类名完成定位:

from selenium.webdriver.common.by import By

# 直接匹配固定类名,写法最简单
element = driver.find_element(By.CSS_SELECTOR, '.dataset-selection-dialog-actions')

如果需要更严格的属性包含匹配,可以用模糊匹配语法:

# class属性值包含指定字符串即匹配
element = driver.find_element(By.CSS_SELECTOR, '[class*="dataset-selection-dialog-actions"]')

方法2:XPath定位

也可以用XPath的包含规则实现匹配:

from selenium.webdriver.common.by import By

# 匹配所有class属性包含固定片段的元素
element = driver.find_element(By.XPATH, '//*[contains(@class, "dataset-selection-dialog-actions")]')

如果确定目标元素的标签类型,可以把*替换为对应标签名(比如div、button),进一步提升定位精准度。

注意事项

  • 不建议使用By.CLASS_NAME方法定位,该方法默认要求传入完整的class属性值,仅传固定类名的兼容性和稳定性不如CSS选择器。
  • 如果页面内存在多个包含该固定类名的元素,可以结合父元素的固定属性、其他可定位特征缩小匹配范围,避免定位到错误元素。

内容的提问来源于stack exchange,提问作者Tomer Korenfeld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:09:01