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

使用Selenium实现网站搜索时无结果且报AttributeError错误求助

问题分析与修正方案

核心错误点

  1. 变量赋值错误:你代码里search = driver.find_element(...).click()这一行,click()方法的返回值是None,所以search变量实际是None,后续调用search.send_keys()必然触发AttributeError。
  2. 元素定位错误:你试图给搜索按钮调用send_keys(),但输入文本的目标应该是点击按钮后弹出的搜索输入框,而非按钮本身。

修正后的代码

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

# 点击搜索图标按钮,触发输入框显示
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/nav/form/button"))).click()

# 等待搜索输入框加载并可交互,定位输入框元素
search_input = WebDriverWait(driver, 20).until(
    EC.visibility_of_element_located((By.XPATH, "/html/body/nav/form/input"))
)

# 输入搜索词并回车
search_input.send_keys("Anthony Albanese")
search_input.send_keys(Keys.ENTER)

补充说明

  • 尽量避免使用绝对XPATH(/html/body/...),可以换成更稳定的相对定位,比如根据元素的name、placeholder或class属性,这样页面结构小改动时代码不会失效。
  • 不要依赖time.sleep(),用WebDriverWait的显式等待更可靠,它会在元素满足条件时立即执行,无需固定等待时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:15:46