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

Python Selenium Webdriver如何获取div元素的data-id属性值

Python Selenium 获取div元素data-id属性值实现方案

Selenium 中获取标签上的自定义属性值,统一使用元素对象的get_attribute()方法,传入属性名即可返回对应属性值,针对你给出的DOM结构,具体实现如下:

基础实现代码

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动,以Chrome为例
driver = webdriver.Chrome()
# 替换为你实际要访问的页面地址
driver.get("目标页面地址")

# 定位携带data-id属性的目标div元素
target_element = driver.find_element(By.CSS_SELECTOR, "div._13oc-S > div[data-id]")
# 提取data-id属性值
data_id = target_element.get_attribute("data-id")

# 输出验证,对应你给出的示例会返回 MOBG6WQWRGRRDBH6
print(data_id)

动态页面适配方案

如果页面内容是异步加载的,直接定位容易出现元素不存在的报错,需要加显式等待,等元素渲染完成后再取值:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 设置最长等待时间10秒
wait = WebDriverWait(driver, 10)
# 等待目标元素加载到DOM树后再定位
target_element = wait.until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "div._13oc-S > div[data-id]"))
)
data_id = target_element.get_attribute("data-id")

常见踩坑说明

  • 不要用.text方法获取属性值:.text只能提取元素标签对之间的文本内容,无法读取标签内的属性值
  • 定位时如果页面存在多个带data-id属性的div,可以根据提供的DOM层级写更精准的CSS选择器,避免匹配到其他无关元素
  • 如果需要批量获取多个同类元素的data-id,把find_element换成find_elements,遍历返回的元素列表逐个调用get_attribute("data-id")即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:48:54