unicorn-rpa
Version:
🦄 Unicorn RPA - 强大的跨域iframe自动化控制工具
29 lines (27 loc) • 940 B
JavaScript
const { delay } = require('../utils');
/**
* 模拟人工输入函数,逐字输入并触发input/change事件
* @param {HTMLElement} element 输入框元素
* @param {string} text 输入内容
* @param {number} speed 每个字符输入间隔,单位ms
*/
async function simulateHumanTyping(element, text, speed = 100) {
if (!element || !text) {
throw new Error('输入元素或文本无效');
}
element.value = '';
element.focus();
for (let i = 0; i < text.length; i++) {
const char = text[i];
element.value += char;
element.dispatchEvent(new Event('input', { bubbles: true }));
const randomDelay = speed + Math.random() * 50 - 25;
await delay(randomDelay);
if (Math.random() < 0.1) {
await delay(200 + Math.random() * 300);
}
}
element.dispatchEvent(new Event('change', { bubbles: true }));
element.blur();
}
module.exports = simulateHumanTyping;