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

Selenium Python中如何使用JavaScript executor发送ENTER/RETURN回车键?

Selenium无提交按钮回车触发搜索解决方案

以下为按优先级排列的可落地解决方案:

方案1:优化原生send_keys调用(优先尝试)

send_keys失效大概率是未激活输入框焦点、或元素未完全加载导致,正确写法如下:

  • 先导入Selenium的按键类:
    from selenium.webdriver.common.keys import Keys
  • 加入显式等待确保元素可交互后再操作:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 最多等待10秒直到搜索输入框可点击
search_input = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CLASS_NAME, "tau-search__input"))
)
# 点击激活输入框焦点
search_input.click()
# 清空原有占位内容(可按需跳过)
search_input.clear()
# 输入搜索词后发送回车
search_input.send_keys("你的搜索关键词")
search_input.send_keys(Keys.ENTER)

方案2:JS赋值后触发回车事件

如果要沿用之前的JS赋值逻辑,可直接通过JS模拟标准回车事件,用arguments传参避免搜索词含特殊字符时报错:

search_word = "你的搜索关键词"
driver.execute_script("""
    const input = document.getElementsByClassName('tau-search__input')[0];
    // 写入搜索值
    input.value = arguments[0];
    // 构造回车事件
    const enterEvent = new KeyboardEvent('keydown', {
        key: 'Enter',
        code: 'Enter',
        which: 13,
        keyCode: 13,
        bubbles: true
    });
    // 给输入框触发回车事件
    input.dispatchEvent(enterEvent);
""", search_word)

方案3:优化ActionChains调用

之前ActionChains失效大概率是没有先聚焦到输入框,正确写法如下:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

search_input = driver.find_element(By.CLASS_NAME, "tau-search__input")
ActionChains(driver)\
    .move_to_element(search_input)\
    .click()\
    .send_keys("你的搜索关键词")\
    .send_keys(Keys.ENTER)\
    .perform()

补充排查点

如果以上方案均不生效,可先检查输入框是否有readonly等限制输入的属性,先执行移除属性操作后再重复上述步骤即可:
driver.execute_script("arguments[0].removeAttribute('readonly')", search_input)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:24:03