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

Selenium Python中send_keys功能失效问题求助

Selenium send_keys突然失效?试试这几个排查方向!

嘿,我之前也碰到过一模一样的情况!好好的代码突然就卡send_keys了,大概率是版本不匹配或者页面加载时机的问题,给你几个实用的排查点:

先看你的原始代码和报错信息:

原始代码:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.google.com")
elem = driver.find_element_by_name("q")
elem.send_keys("Hello WebDriver!")
elem.submit()
print(driver.title)

相关堆栈信息(部分):

C:\Users\Rui\PycharmProjects\geo\venv\Scripts\python.exe C:/Users/Rui/PycharmProjects/geo/send_keys.py
debug value ('Hello WebDriver!',)
Trac...


最可能的原因:Chrome与ChromeDriver版本不匹配

Chrome会自动后台更新,而你的ChromeDriver版本没跟上的话,就会出现各种奇怪的交互失效问题,这是最常见的坑!解决步骤:

  1. 打开Chrome,在地址栏输入chrome://version/,记下你的Chrome主版本号(比如118.0.5993.xxx)
  2. 下载对应主版本号的ChromeDriver(比如Chrome是118.x,就找118.x系列的Driver)
  3. 替换掉你项目环境里原来的ChromeDriver文件,重启项目再试

其次,试试显式等待,避免元素未完全加载

有时候页面还没渲染完,你就去定位元素并输入,send_keys可能会"无声失败"。给代码加个显式等待,确保元素可交互:

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

driver = webdriver.Chrome()
driver.get("http://www.google.com")
# 最多等10秒,直到搜索框可点击输入
elem = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.NAME, "q"))
)
elem.send_keys("Hello WebDriver!")
elem.submit()
print(driver.title)

排查插件或缓存干扰

  • 试试用无痕模式启动Chrome,避免缓存或插件影响:
    options = webdriver.ChromeOptions()
    options.add_argument("--incognito")
    driver = webdriver.Chrome(options=options)
    
  • 如果无痕模式有用,那可以试试禁用所有浏览器插件再测试:
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(options=options)
    

最后,试试换个元素定位方式

有时候find_element_by_name可能因为页面动态变化失效,换成ID或者CSS选择器试试,比如Google搜索框的ID是APjFqb:

elem = driver.find_element(By.ID, "APjFqb")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:22:25