网页自动化模拟操作时,模拟真实按键触发事件【终级方案】

Element UI + Vue 深度绑定的输入框 ,普通的事件触发全是假的 ,框架只认 **「原生真实键盘输入事件」!

普通 方法都只是模拟表面,没有模拟 真人敲键盘的底层事件 **,所以必须用硬核方案!


🔥 终极解决方案(针对 input 专属代码)

模拟真人鼠标点击 + 键盘输入的完整代码,框架 100% 识别:

javascript 复制代码
// 1. 严格用你指定的选择器(第二个 input.d-text)
const input = document.querySelectorAll("input.d-text")[1];

// 2. 你要赋值的内容(自己改)
const value = "这里填你要输入的内容";

// 3. 模拟真人完整操作(核心!Vue/ElementUI 唯一认的方式)
function setInputValue(el, val) {
    // 模拟鼠标聚焦(你手动点的那一下)
    el.focus();
    
    // 赋值
    el.value = val;

    // ✅ 关键:触发【原生键盘事件】(框架双向绑定的核心)
    const event = new Event('input', {
        bubbles: true,
        cancelable: true
    });
    // 强制触发原生输入事件(最底层)
    el.dispatchEvent(event);
    
    // 额外触发 Vue/React 必须的合成事件
    el.dispatchEvent(new Event('change', { bubbles: true }));
    el.dispatchEvent(new Event('blur', { bubbles: true }));
}

// 执行赋值
setInputValue(input, value);

🚀 还不行?用【无敌兜底版】(模拟真实键盘敲击)

如果上面还不行,说明网页强制监听键盘按键 ,直接模拟每一个字符的键盘输入,这是所有网页都无法拦截的终极方法:

javascript 复制代码
// 你的固定选择器
const input = document.querySelectorAll("input.d-text")[1];
// 要赋值的内容
const text = "你的内容";

// 模拟真实键盘输入(无敌版)
input.focus();
input.value = '';
let idx = 0;
const type = () => {
    if(idx < text.length){
        input.value += text[idx++];
        input.dispatchEvent(new Event('input',{bubbles:true}));
        setTimeout(type,10);
    } else {
        input.blur();
    }
}
type();

🎯 为什么之前全部失败?

  1. 用的是 Vue + Element UI 输入框,双向绑定机制极严格
  2. 它不监听 value 变化,只监听 原生键盘输入事件
  3. 普通的 dispatchEvent(new Event("input")) 是伪造事件,框架直接忽略
  4. 必须模拟 真实的 focus + 原生 input 事件 + 冒泡 才会生效

如果这个代码还不行,你砍我!这是前端处理这类问题的最终标准答案。

更多源码见 https://wangpanmao.com

相关推荐
key_3_feng4 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
程序员大阳4 小时前
副队长JavaScript教程(65)-详解JSON:轻量级数据交换格式
javascript·json·序列化·反序列化·stringify·parse
福建佰胜张工4 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
LaughingZhu5 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
西瓜拿铁好喝5 小时前
AI 办公和 RPA 不是一回事:自动化与智能化的分工
人工智能·自动化·rpa
Lank_M5 小时前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus5 小时前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写5 小时前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚5 小时前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端
用户11977079480735 小时前
GitHub 电商开源项目分享:用 sharp 批量出饰品主图,试了裁剪、细节图和色彩配置文件三个坑
前端·node.js