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

Selenium中searchbox.send_keys()无法自动在YouTube搜索栏输入文本

解决YouTube搜索框无法输入内容的问题

问题原因

  1. 元素定位错误:你定位的//*[@id="search"]是搜索框的外层容器,并非实际接收输入的<input>标签,实际输入框是该容器内的子元素,name属性为search_query。
  2. 未等待元素就绪:页面加载过程中直接操作元素,可能元素还未完成渲染,处于不可交互状态。

修正后的代码

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

driver = webdriver.Firefox()
driver.get('https://youtube.com')

# 显式等待输入框可交互,最多等待10秒
searchbox = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.NAME, "search_query"))
)
searchbox.send_keys("Akram Khan")

# 同样等待搜索按钮可交互后点击
searchButton = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "search-icon-legacy"))
)
searchButton.click()

额外说明

  • 显式等待能确保元素处于可操作状态后再执行动作,避免因页面加载延迟导致的操作失败。
  • 用name="search_query"定位输入框比依赖ID更稳定,YouTube页面结构偶尔会有小调整,但该name属性长期保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:35:51