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
相关产品推荐
相关产品推荐

