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

如何修改Selenium中send_keys的输入速度?求实现方案

修改Selenium send_keys输入速度的实用方案

嘿,这个问题我之前折腾过好一阵子!Selenium自带的send_keys()默认是一次性把所有内容快速“怼”进输入框,要是想模拟真人打字的自然速度,咱们得手动控制输入节奏,给你几个靠谱的方案:

1. 逐个字符输入+自定义延时(最常用)

这是最直接也最灵活的方法——把要输入的文本拆成单个字符,循环逐个输入,每次输入后加一段延时。你可以完全自定义每个字符的间隔时间,想快想慢都随你调:

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

driver = webdriver.Chrome()
driver.get("https://your-target-page.com")

# 定位输入框
input_element = driver.find_element(By.ID, "target-input")
# 要输入的文本
text_to_type = "Hello, this is simulated human typing!"
# 每个字符的输入间隔(秒),可根据需求调整
typing_delay = 0.1

# 逐个字符输入
for char in text_to_type:
    input_element.send_keys(char)
    time.sleep(typing_delay)

如果想更贴近真人打字的随机性(比如偶尔快偶尔慢),可以用随机延时代替固定值:

import random

# 随机间隔0.05到0.2秒
for char in text_to_type:
    input_element.send_keys(char)
    time.sleep(random.uniform(0.05, 0.2))

2. 用ActionChains队列控制输入节奏

如果你习惯用Selenium的ActionChains来管理动作序列,也可以把每个字符的输入动作加入队列,再配合pause()方法添加延时,最后一次性执行:

from selenium.webdriver.common.action_chains import ActionChains

action = ActionChains(driver)
for char in text_to_type:
    action.send_keys(char).pause(typing_delay)
# 执行所有排队的动作
action.perform()

这个方法的好处是可以把输入动作和其他操作(比如点击、移动鼠标)整合到同一个动作队列里,适合更复杂的交互场景。

注意事项

  • Selenium本身没有提供直接修改send_keys()速度的内置参数,所以上述手动控制的方法是目前最可行的方案。
  • 随机延时的方式能更好地模拟真人行为,降低被网站反爬机制识别的概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:30:58