You need to enable JavaScript to run this app. 如何在Selenium中遍历WebElement内部的未知类型标签
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中遍历WebElement内部的未知类型标签

Selenium遍历指定WebElement下所有未知类型子元素的实现方案
  • 不需要预先指定具体标签名,通过选择器的通配规则即可实现全量匹配,完全适配未知标签组合的场景,无需逐一枚举可能出现的标签类型。
  • 若需要匹配目标div下所有层级的内部元素(包含嵌套在其他标签内部的子元素,比如p标签内的a标签),在已获取的外层div WebElement上调用CSS选择器匹配即可:
    from selenium.webdriver.common.by import By
    
    # 假设parent_div是你已经拿到的包裹目标结构的div对应的WebElement
    all_inner_elements = parent_div.find_elements(By.CSS_SELECTOR, "*")
    
  • 若仅需要获取div下的第一级直接子元素,不抓取深层嵌套的内部标签,可使用XPath的通配规则实现范围控制:
    # 匹配当前div节点下所有直接子元素,不会向下深入匹配嵌套在内部的元素
    direct_child_elements = parent_div.find_elements(By.XPATH, "./*")
    
  • 拿到元素列表后,可逐一遍历提取需要的信息,无需提前判断元素类型:
    for element in all_inner_elements:
        current_tag = element.tag_name  # 动态获取当前元素的标签名,如h3、p、h4
        current_text = element.text  # 获取元素的可见文本内容
        # 可根据实际需要提取元素的其他属性
    

注意事项:

  • 所有元素查找操作都必须绑定在已经获取的外层div WebElement上执行,不要直接在全局driver对象上调用匹配方法,否则查找范围会覆盖整个页面,容易匹配到div外的无关元素。
  • 新版Selenium已废弃旧版的find_elements_by_标签名系列方法,统一使用find_elements配合By类的写法,同时支持CSS选择器、XPath的全部通配能力,灵活度远高于旧版需要指定固定标签名的查找方法。

内容的提问来源于stack exchange,提问作者Alexander Vedmed'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 19:54:07