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

使用Selenium将href链接加入列表时报str对象无get_attribute属性错误

问题根源

报错的核心原因是变量名冲突+遍历过程中修改迭代对象:

  • 你最初定义carLinks = []是用于存储最终的链接字符串,但后续直接用carLinks = driver.find_elements_by_css_selector("div.grid-box-container a")把该变量覆盖为Selenium WebElement对象列表
  • 你循环遍历的对象就是carLinks本身,遍历过程中又持续向同一个列表追加字符串类型的链接,当循环迭代到你追加的字符串元素时,尝试调用get_attribute方法自然会触发属性不存在的报错
  • 直接打印不会报错是因为打印操作没有修改迭代的列表,循环只会迭代初始的WebElement对象,不会触发遍历字符串的逻辑

修复方案

只需要把存储WebElement的变量和存储链接的变量分开命名即可,修改后代码如下:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.tred.com/buy?body_style=&distance=50&exterior_color_id=&make=&miles_max=100000&miles_min=0&model=&page_size=24&price_max=100000&price_min=0&query=&requestingPage=buy&sort=desc&sort_field=updated&status=active&year_end=2022&year_start=1998&zip=")

carLinks = []
# 元素列表使用独立变量名,不和存链接的变量重名
car_elements = driver.find_elements_by_css_selector("div.grid-box-container a")
for car_element in car_elements:
    carLinkUrl = car_element.get_attribute("href")
    carLinks.append(carLinkUrl)

print(carLinks)

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:24:02