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

Selenium向弹出搜索栏输入内容遇ElementNotInteractable错误求助

解决Selenium操作印度经济时报搜索栏的ElementNotInteractable错误

你的问题核心在于等待条件的选择和元素交互时机的把控,以下是具体解决方案:

问题根源

presence_of_element_located仅确认元素存在于DOM中,但不保证元素处于可见、可交互状态。弹出的搜索栏可能已加载到DOM,但尚未完成渲染或处于不可操作状态,导致send_keys触发错误。

修正方案

1. 替换等待条件

将presence_of_element_located替换为element_to_be_clickable或visibility_of_element_located,确保元素满足可见且可交互的要求。

2. 强化交互逻辑

点击搜索按钮后,先聚焦搜索框再执行输入操作,避免因焦点未激活导致的输入失败。

修改后的代码

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

website = webdriver.Chrome()
website.get("https://economictimes.indiatimes.com/hdfc-bank-ltd/stocks/companyid-9195.cms")

# 等待搜索按钮可点击并触发点击
search_button = WebDriverWait(website, 20).until(
    EC.element_to_be_clickable((By.ID, "searchBar"))
)
search_button.click()

# 等待搜索输入框可见且可交互
search_bar = WebDriverWait(website, 20).until(
    EC.element_to_be_clickable((By.ID, "topSearch"))
)

# 先聚焦输入框,再执行输入
search_bar.click()
search_bar.send_keys("Asian Paints")

额外排查方向

  • 如果仍报错,检查页面是否存在多个id="topSearch"的元素,可使用更精确的定位规则(如XPath://input[@id='topSearch' and @placeholder='Search ET'])锁定目标元素
  • 确认页面无遮挡元素(如弹窗、广告),若有需先处理遮挡后再操作搜索框

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:05:11