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

Python Selenium获取元素父元素时报AttributeError错误如何解决?

报错原因

你调用了Selenium的find_elements_by_xxx(末尾带s的复数形式)方法获取目标元素,返回结果是匹配到的WebElement对象列表,列表类型本身没有find_element_by_xpath方法,只有单个WebElement实例才能调用该方法查找父元素。

解决方案
  • 方案1:遍历返回的元素列表,对每个单独元素执行查找父元素的操作,适合单条XPath规则匹配到多个元素的场景,示例修改代码如下:
# 原错误代码逻辑示例
# elems = driver.find_elements_by_xpath("你的目标元素XPath规则")
# parent_elem = elems.find_element_by_xpath('..')

# 修改后代码逻辑
elems = driver.find_elements_by_xpath("你的目标元素XPath规则")
for elem in elems:
    # 对单个元素查找父节点
    parent_elem = elem.find_element_by_xpath('..')
    # 原有的元素信息提取、写入output1.csv的逻辑放在循环内执行
  • 方案2:如果你确认单条XPath规则只会匹配到1个元素,可以直接把find_elements_by_xpath改为单数形式find_element_by_xpath,直接得到单个WebElement对象,无需遍历:
elem = driver.find_element_by_xpath("你的目标元素XPath规则")
parent_elem = elem.find_element_by_xpath('..')
  • 版本兼容提示:Selenium 4.3及以上版本已经移除了find_element_by_xpath这类旧API,建议替换为统一的新API写法,避免后续版本报错:
from selenium.webdriver.common.by import By

# 单元素查找新写法
elem = driver.find_element(By.XPATH, "你的目标元素XPath规则")
# 父元素查找新写法
parent_elem = elem.find_element(By.XPATH, '..')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:15:05