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

Selenium Python如何调整send_keys逐字符输入速度 解决Sleep不生效问题

减慢Selenium Python中send_keys输入速度的解决方案

send_keys默认会一次性传入所有字符,直接在整体调用后加sleep不会作用到输入过程,必须拆分单个字符逐个输入,每输入一个就加等待间隔,具体实现方案如下:

1. 基础逐字符减速方案

直接把待输入的字符串拆分为单个字符,循环输入加固定等待即可,示例代码:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("你的目标网址")
input_elem = driver.find_element(By.CSS_SELECTOR, ".selfTurn input")

def slow_send_keys(element, text, delay=0.2):
    # 逐字符输入,每个字符间隔delay秒
    for char in text:
        element.send_keys(char)
        sleep(delay)
    # 可选:输入完成后按回车
    sleep(0.2)
    element.send_keys("\n")

# 调用示例
slow_send_keys(input_elem, "需要输入的内容")

2. 模拟真人的随机间隔方案

如果需要规避人机检测,可以设置随机间隔,让输入节奏更自然:

from time import sleep
import random
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
input_elem = driver.find_element(By.CSS_SELECTOR, ".selfTurn input")

def random_slow_send_keys(element, text, min_delay=0.1, max_delay=0.3):
    for char in text:
        element.send_keys(char)
        # 每次间隔在min_delay到max_delay之间随机取值
        sleep(random.uniform(min_delay, max_delay))
    sleep(0.2)
    element.send_keys("\n")

无效果常见原因排查

  • 间隔数值设置过小:如果间隔小于0.05秒,人眼几乎感知不到输入过程,会和直接输入无差异,建议最小间隔设置不低于0.1秒
  • 等待位置错误:不要在调用完完整的send_keys(整个字符串)后再加sleep,要把sleep放到单字符输入的循环内部
  • 元素定位错误:确认每次输入时目标输入框处于激活可编辑状态,避免字符堆积后一次性触发输入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:27:02