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

Selenium操作GitHub搜索栏遇Element Not Interactable问题求助

解决Selenium操作GitHub搜索栏时的"element not interactable"错误

在使用Selenium编写脚本访问GitHub官网并执行搜索时,出现"element not interactable"错误,尝试过以下两种方法均未解决:

尝试过的方法

方式一

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
url = "http://github.com"
driver.get(url)
searchInput = driver.find_element_by_xpath("//*[@id='query-builder-test']")
time.sleep(1)
searchInput.send_keys("python")
time.sleep(2)
searchInput.send_keys(Keys.ENTER)

方式二

element=driver.execute_script("return document.getElementById('query-builder-test').value='python';")
searchInput = driver.find_element_by_xpath("//*[@id='query-builder-test']")

解决方案

问题出在未等待元素完全可交互以及未正确触发搜索逻辑上,修正后的代码如下:

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
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

# 初始化浏览器选项,可根据需要添加配置
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")  # 最大化窗口避免元素被遮挡

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://github.com")

# 显式等待搜索栏可交互,最长等待10秒,替代固定sleep
search_input = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "query-builder-test"))
)

# 先激活搜索栏再输入关键词,确保元素处于可交互状态
search_input.click()
search_input.send_keys("python")
search_input.send_keys(Keys.ENTER)

# 操作完成后关闭浏览器
# driver.quit()

关键修正点

  1. 用显式等待替代固定sleep:time.sleep是固定等待时间,无法适配网络波动,显式等待会直到元素可点击才继续执行,避免元素未加载完成就操作。
  2. 激活搜索栏:部分页面元素需要先点击激活才能接收输入,添加click()确保元素处于可交互状态。
  3. 触发搜索逻辑:方式二中直接用JS设置value不会触发GitHub搜索的前端事件,必须通过send_keys(Keys.ENTER)提交搜索。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:57:27