我正在尝试使用Chrome的开发者控制台模拟N次(例如10000)JavaScript的
keypress
键码= 50(键:键盘中的“2”),不是在单个元素内,而是在页面级别。
我需要在不修改源代码的情况下实现这个结果,以测试多个用户交互下的 Web 应用程序行为。
我在 Stack Overflow 上找到了不同的答案,但大多数都是基于 jQuery 的。
我尝试使用:
var evt = document.createEvent("KeyboardEvent");
>> undefined
evt.initKeyEvent ("keypress", true, true, window,0, 0, 0, 0, 50, 50);
>> undefined is not a function
之后是事件调度但是它不起作用。
我也不知道如何从 Chrome 的控制台插入一个for循环。
您可以通过使用
KeyboardEvent
构造函数和dispatchEvent
方法来实现。要模拟键码为 50(键“2”)的按键 N 次,您可以创建一个函数并使用 for 循环。以下是有关如何在 Chrome 开发人员控制台中执行此操作的分步指南:
打开 Chrome 开发人员控制台(在 macOS 上为 F12 或 Ctrl+Shift+J / Cmd+Opt+J)。 将以下代码片段复制并粘贴到控制台中,然后按 Enter:
function simulateKeyPress(keyCode, numTimes) {
for (let i = 0; i < numTimes; i++) {
const keyPressEvent = new KeyboardEvent("keypress", {
bubbles: true,
cancelable: true,
keyCode: keyCode,
which: keyCode,
});
document.dispatchEvent(keyPressEvent);
}
}
simulateKeyPress(50, 10000);