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

Selenium4按类名查找元素未正常工作的解决方法

问题说明

driver.find_elements(By.CLASS_NAME, 'mt-CardBasic-titleLink') 返回WebElement实例列表是Selenium的正常设计逻辑,Selenium全版本的元素查找方法返回值都是WebElement对象/对象列表,从来不会直接返回HTML源码,不存在代码疏漏,是对返回值的认知偏差导致无法提取属性。

正确提取href属性的实现

你写的元素定位逻辑本身没有问题,只需要在拿到WebElement列表后,遍历每个元素实例调用内置方法提取需要的内容即可,参考代码如下:

from selenium.webdriver.common.by import By

# 原有定位逻辑保持不变
card_link_elements = driver.find_elements(By.CLASS_NAME, 'mt-CardBasic-titleLink')

href_result = []
for element in card_link_elements:
    # 提取href属性值
    link_href = element.get_attribute('href')
    href_result.append(link_href)
    
    # 如果需要获取元素对应的完整HTML源码,调用以下方法即可
    # element_html = element.get_attribute('outerHTML')
    # 如果需要获取a标签的文本内容,直接取element.text即可

print(href_result)
注意事项
  • 直接打印WebElement列表只会输出对象的内存标识,不会展示元素的属性、HTML结构等实际内容,必须针对单个元素调用对应方法取值
  • 如果提取href时返回None,先校验定位到的元素标签类型:执行print(element.tag_name)确认当前元素是<a>标签,类名匹配的非a标签元素不存在href属性
  • 如果页面存在动态加载逻辑,建议搭配显式等待等元素完全渲染后再执行查找,避免拿到未加载完成的无效元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 07:06:34