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

如何用Python Selenium提取指定HTML中的'BURGUNDY'文本并解决报错?

解决Selenium提取"BURGUNDY"的报错问题

嘿,我来帮你搞定这两个Selenium报错,顺利提取到"BURGUNDY"文本~

先说说你遇到的两个错误原因

1. AttributeError: 'list' object has no attribute 'get_attribute'

你大概率是用了find_elements()(注意末尾的s,复数形式),这个方法返回的是元素列表,而get_attribute()是单个WebElement对象的方法,列表当然没有这个属性啦!

  • 如果目标是单个元素,换成find_element()(单数)就行;
  • 如果要处理多个元素,得遍历列表,逐个调用方法。

2. TypeError: 'str' object is not callable

这个是语法写错了:By.XPATH是一个字符串常量,不是函数,不能加括号调用。正确的写法是把定位方式和表达式用逗号分隔,比如find_element(By.XPATH, "你的xpath路径"),而不是By.XPATH("//xxx")。


正确提取"BURGUNDY"的几种方法

根据你提供的HTML结构,这里给你几个可行的实现方案:

方法1:直接用XPATH定位目标div

利用父span的class,定位到包含BURGUNDY的div:

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

driver = webdriver.Chrome()
# 先打开你的目标页面,比如 driver.get("你的页面URL")

# 定位到包含BURGUNDY的div
target_element = driver.find_element(
    By.XPATH, 
    "//span[@class='style_title_section__title__1z8gk']/div[contains(text(), 'BURGUNDY')]"
)
# 提取文本(strip()去掉多余空格)
burgundy_text = target_element.text.strip()
print(burgundy_text)  # 输出 BURGUNDY

方法2:用CSS选择器定位父元素后取子元素

通过父span的class找到它,再取第一个row类的div:

# 定位父span元素
parent_span = driver.find_element(
    By.CSS_SELECTOR, 
    "span.style_title_section__title__1z8gk"
)
# 找到第一个row div
first_row_div = parent_span.find_element(By.CSS_SELECTOR, "div.row:first-of-type")
burgundy_text = first_row_div.text.strip()
print(burgundy_text)

方法3:处理动态加载的情况(加显式等待)

如果页面是动态加载的,直接定位可能找不到元素,这时候用显式等待确保元素可见:

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

# 等待10秒,直到目标元素可见
target_element = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located(
        (By.XPATH, "//span[@class='style_title_section__title__1z8gk']/div[1]")
    )
)
burgundy_text = target_element.text.strip()
print(burgundy_text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 22:22:55