Selenium WebDriver操作网站搜索框输入后无法触发回车及选中下拉建议项
问题修复方案
核心错误原因
- 未给输入框绑定回车事件,输入关键词后没有触发回车操作的代码
- 建议项的CSS选择器语法错误,使用了不存在的类名与多余的引号,同时选择的序号错误(第一条建议项序号为0不是1)
- 未等待动态渲染的元素加载完成就执行操作,导致点击不生效
方案1:直接触发回车搜索
from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait as wait from selenium.webdriver.support import expected_conditions as EC from selenium import webdriver from selenium.webdriver.common.by import By browser = webdriver.Firefox() browser.get("https://www.tickertape.in/stocks/") browser.maximize_window() # 等待搜索框可交互后再操作 inputElement = wait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'search-stock-input'))) inputElement.click() inputElement.send_keys('Reliance industries') # 发送回车事件触发搜索 inputElement.send_keys(Keys.ENTER)
方案2:选中第一条搜索建议
from selenium.webdriver.support.ui import WebDriverWait as wait from selenium.webdriver.support import expected_conditions as EC from selenium import webdriver from selenium.webdriver.common.by import By browser = webdriver.Firefox() browser.get("https://www.tickertape.in/stocks/") browser.maximize_window() inputElement = wait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'search-stock-input'))) inputElement.click() inputElement.send_keys('Reliance industries') # 等待第一条建议渲染完成后点击 first_suggestion = wait(browser, 10).until(EC.element_to_be_clickable((By.ID, 'react-autowhatever-1-section-0-item-0'))) first_suggestion.click()
额外优化建议
- 清理代码中重复导入的
ActionChains冗余代码 - 显式等待超时时间建议设置为10秒,适配网络波动场景
- 无需使用ActionChains模拟复杂操作,直接操作原生元素即可满足需求
内容的提问来源于stack exchange,提问作者user51988
相关产品推荐
相关产品推荐

