如何从 Chrome 的 JavaScript 控制台(没有 jQuery)模拟 javascript 按键?

问题描述 投票:0回答:1

我正在尝试使用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循环

javascript dom-events
1个回答
0
投票

您可以通过使用

KeyboardEvent
构造函数和
dispatchEvent
方法来实现。要模拟键码为 50(键“2”)的按键 N 次,您可以创建一个函数并使用 for 循环。以下是有关如何在 Chrome 开发人员控制台中执行此操作的分步指南:

打开 Chrome 开发人员控制台(在 macOS 上为 F12 或 Ctrl+Shift+J / Cmd+Opt+J)。 将以下代码片段复制并粘贴到控制台中,然后按 Enter:

  1. 打开 Chrome 开发者控制台(在 macOS 上为 F12 或 Ctrl+Shift+J / Cmd+Opt+J)。
  2. 将以下代码片段复制并粘贴到控制台中,然后按 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);
  }
}
  1. 现在定义了函数,您可以使用它来模拟键码为 50(键“2”)的按键 N 次。例如,如果你想模拟它 10,000 次,只需这样调用函数:
simulateKeyPress(50, 10000);
© www.soinside.com 2019 - 2024. All rights reserved.