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

Playwright中如何实现模拟人类的延迟输入效果?

Playwright中如何实现模拟人类的延迟输入效果?

刚好之前做自动化脚本的时候也纠结过这个问题,给你两个实用的解决思路,看你需求选:

  • 用官方推荐的Locator API实现固定延迟输入
    虽然page.type()确实被标记为弃用了,但Playwright把这个功能迁移到了Locator接口上,而且完整保留了delay参数。你只需要先定位到目标输入元素,再调用locator.type()就行,比如:

    // 先定位到输入框
    const inputBox = page.locator('#your-input-selector');
    // 每个字符间隔100ms输入,贴近普通人的打字速度
    await inputBox.type('你要输入的文本内容', { delay: 100 });
    

    这里的delay参数是每个字符输入后的等待毫秒数,数值可以根据需要调整,100-200ms的区间就很符合日常打字的节奏。

  • 自定义函数实现随机延迟的逼真输入
    如果想要更贴近真实人类的输入习惯(比如打字速度忽快忽慢,不是完全均匀的延迟),那自己写个自定义函数就非常合适。比如可以给每个字符设置一个50-200ms之间的随机延迟:

    async function humanLikeType(locator, text) {
      for (const char of text) {
        // 生成50到200ms之间的随机延迟
        const randomDelay = Math.floor(Math.random() * 150) + 50;
        await locator.type(char, { delay: randomDelay });
      }
    }
    
    // 调用示例
    const inputBox = page.locator('#your-input-selector');
    await humanLikeType(inputBox, '模拟人类随机速度输入的文本');
    

    这种方式比固定延迟更真实,毕竟没人打字是完全匀速的~

你之前考虑的“逐个字符输入加随机延迟”的思路完全可行,而且能做得更逼真,但其实官方已经有现成的替代方案了,不用从头造轮子;如果追求极致的拟人性,自定义函数就是更好的选择。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:44:33