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
相关产品推荐
相关产品推荐

