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

Python Selenium使用find_elements_by_xpath点击按钮无预期结果如何解决

Selenium搜索功能异常排查及修复方案

存在的问题点

  • find_elements_by_xpath 是复数查找方法,返回的是匹配到的元素列表,无法直接对列表调用click()方法,这是最核心的报错原因。
  • 未导入Keys类就调用keys.RETURN,会触发名称报错,且Keys首字母需要大写。
  • 未加等待逻辑,可能出现页面还未加载完成就执行元素查找的情况,导致找不到元素。
  • Windows本地chromedriver路径的反斜杠未转义,可能出现路径识别错误。
  • 同时写了按回车提交和点击按钮提交的逻辑,重复操作可能引发异常。

修复后的代码

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

# 路径加r转为原始字符串,避免反斜杠转义问题
path = r'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(path)
driver.get("https://hopamviet.vn")

# 显式等待最多10秒,直到搜索框加载完成
search = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.NAME, "song"))
)
search.send_keys("Hello")

# 显式等待按钮可点击后再执行点击操作
submit_button = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '/html/body/nav/div/form/div/span/button'))
)
submit_button.click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:57:03