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

Python中Selenium调用send_keys报错:'list'对象无此属性如何解决?

解决Selenium中AttributeError: 'list' object has no attribute 'send_keys'的问题

问题原因

你调用的browser.find_elements()方法会返回所有匹配指定选择器的元素组成的列表,而send_keys()是单个WebElement对象独有的方法,列表类型没有这个属性,因此触发报错。

解决方案

方案1:使用单数形式的find_element()(推荐)

如果页面中只有一个目标搜索框,直接用find_element()(单数)获取第一个匹配的元素即可,它返回单个WebElement对象,支持send_keys()方法:

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

url = "https://www.youtube.com"

browser = webdriver.Chrome()
browser.get(url)
time.sleep(3)

# 替换find_elements为find_element
search = browser.find_element(By.XPATH, "//*[@id='search']")

search.send_keys("Test")

方案2:从列表中取出单个元素(仅当存在多个匹配元素时使用)

如果页面确实有多个id为search的元素,可通过索引从列表中提取单个元素(例如取第一个元素,索引为0):

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

url = "https://www.youtube.com"

browser = webdriver.Chrome()
browser.get(url)
time.sleep(3)

search_elements = browser.find_elements(By.XPATH, "//*[@id='search']")
# 取第一个元素
search = search_elements[0]

search.send_keys("Test")

额外提示

尽量避免使用time.sleep()这种固定等待,推荐使用Selenium的显式等待WebDriverWait,它会在元素加载完成后再执行操作,稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:08