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

Selenium Python获取所有class为wld的div文本报错解决

解决Selenium获取多个元素文本的问题

嘿,这个问题我碰到过不少次!你遇到的AttributeError是因为driver.find_elements()返回的是WebElement对象的列表,而列表本身没有.text属性——只有单个的WebElement才有这个属性。这就是为什么你用driver.find_element()(单数形式)能拿到第一个元素的文本,但用复数形式就报错啦。

直接用Selenium解决的方法

你只需要遍历返回的元素列表,逐个提取每个元素的.text属性就行。这里有两种常用写法:

写法1:列表推导式(简洁高效)

from selenium.webdriver.common.by import By

# 获取所有class为wld的元素
match_results = driver.find_elements(By.CSS_SELECTOR, ".wld")
# 遍历每个元素,提取文本并存入列表
all_wld_texts = [element.text for element in match_results]
# 打印结果
print(all_wld_texts)

写法2:普通循环(适合需要额外处理的场景)

如果需要在提取文本时做一些判断或处理(比如跳过空文本),可以用普通循环:

match_results = driver.find_elements(By.CSS_SELECTOR, ".wld")
all_wld_texts = []
for element in match_results:
    text = element.text
    # 比如跳过空文本
    if text.strip():
        all_wld_texts.append(text)
print(all_wld_texts)

要不要用BeautifulSoup?

完全不需要!Selenium本身已经帮你定位到了所有目标元素,直接遍历提取文本是最直接的方式。除非你已经获取了页面的HTML源码,想要用BeautifulSoup做更复杂的解析,但在这里没必要多此一举。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:17:37