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

如何修复Selenium网页爬虫中'WebElement'对象无'append'属性的报错

报错核心原因
  • 变量名冲突:你预先声明的存储列表(如MailList、FacebookList等)和for循环的迭代变量重名,循环执行时列表变量会被覆盖为单个WebElement对象,而WebElement本身没有append方法,因此触发报错。
  • 元素查找方法使用错误:
    1. 除mails使用find_elements_by_css_selector返回元素列表外,其余如FacebookAdres、kulupadi等均使用find_element_*系列方法,返回的是单个WebElement对象,不可迭代,直接用于for循环遍历本身就会抛出异常。
    2. find_element_by_class_name不支持传入多个类名,你传入的btn bg-blue btn-social这类多类名参数会导致元素查找失败,需要改为CSS选择器写法。
修复后的代码
import time
# 前面的浏览器初始化、点击按钮、滚动逻辑保留即可,以下是修复后的元素提取部分
mails = browser.find_elements_by_css_selector("#bilgiler > a.btn.bg-orange.btn-social")
MailList=[] 
# 迭代变量改名为mail,避免和列表重名
for mail in mails: 
    MailList.append(mail.text) 

# 多类名查找改为css选择器,单个元素无需循环,直接取值加入列表
FacebookAdres = browser.find_element_by_css_selector(".btn.bg-blue.btn-social") 
FacebookList=[] 
FacebookList.append(FacebookAdres.text)    

TwitterAdres = browser.find_element_by_css_selector(".btn.btn-social.bg-aqua") 
TwitterList=[] 
TwitterList.append(TwitterAdres.text) 

InstagramAdres = browser.find_element_by_css_selector(".btn.btn-social.bg-light-blue") 
InstagramList=[]
InstagramList.append(InstagramAdres.text) 

kulupadi = browser.find_element_by_xpath("/html/body/div[2]/div[2]/section/div/div[2]/div/div[1]/div/div[1]/table/tbody/tr[1]/td[1]")
kulupList=[]
kulupList.append(kulupadi.text)     

AkademikDanisman = browser.find_element_by_xpath("/html/body/div[2]/div[2]/section/div/div[2]/div/div[1]/div/div[1]/table/tbody/tr[2]/td[1]/b")
DanismanList=[] 
DanismanList.append(AkademikDanisman.text)      

KulupBaskani = browser.find_element_by_xpath("/html/body/div[2]/div[2]/section/div/div[2]/div/div[1]/div/div[1]/table/tbody/tr[3]/td[1]/b")
BaskanList=[] 
BaskanList.append(KulupBaskani.text)  

ToplamUye = browser.find_element_by_xpath("/html/body/div[2]/div[2]/section/div/div[2]/div/div[1]/div/div[1]/table/tbody/tr[4]/td[1]/b")
UyeList=[] 
UyeList.append(ToplamUye.text)  

ToplamEtkinlik = browser.find_element_by_xpath("/html/body/div[2]/div[2]/section/div/div[2]/div/div[1]/div/div[1]/table/tbody/tr[5]/td[1]/b")
EtkinlikList=[] 
EtkinlikList.append(ToplamEtkinlik.text)  

time.sleep(5)
browser.quit()
补充说明

如果实际场景中某类元素可能存在多个,把对应的find_element_by_*改为find_elements_by_*,再参照邮件提取的逻辑用不同名的迭代变量循环取值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:06