Python Selenium运行时报element not interactable错误如何解决
问题根因
你定位到的name="q"元素在页面初始加载时为隐藏状态,未激活展示,不支持直接输入操作,因此抛出element not interactable报错。
解决方案
- 第一步:先定位页面上的搜索触发按钮(放大镜图标元素),点击触发搜索输入框展开
- 第二步:待搜索输入框可见后,再执行输入操作
修改后可用代码示例
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 PATH = "C:\Program Files (x86)\chromedriver.exe" driver = webdriver.Chrome(PATH) driver.get("https://www.annemcgilvray.com") # 等待搜索触发按钮可点击,点击展开搜索框 search_toggle = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.CLASS_NAME, "search-toggle")) ) search_toggle.click() # 等待搜索输入框可见后再输入内容 search = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.NAME, "q")) ) search.send_keys("test")
补充说明
如果仍有报错,可通过浏览器F12开发者工具的元素面板搜索name="q",确认定位到的元素是实际可见的输入框,避免误定位到同名的隐藏元素。
内容的提问来源于stack exchange,提问作者cbree
相关产品推荐
相关产品推荐

