Подтвердить что ты не робот

Как смоделировать ключи, введенные во входном веб-элементе в Chrome 56 с помощью чистого JavaScript?

Я разрабатываю некоторую программную автоматизацию на веб-странице и пытаюсь ввести нажатие клавиши во входной элемент веб-браузера в Chrome 56 (в частности, 56.0.2924.87) и не может заставить его работать.

Я сделал домашнее задание и попытался сделать много онлайн-примеров, в том числе найденных здесь: Javascript - имитировать ключевые события на Chrome 53, но не повезло.

Это моя самая недавняя (в настоящее время неработающая) попытка, основанная на решении, предоставленном в вопросе выше:

<!DOCTYPE html>

<head>
  <meta charset="utf-8" />
  <title>Keyboard Events</title>
</head>

<body>
  <input id="id_input" onkeydown="console.log(event);">
  <button onclick="
    var e = new Event('keydown');
    e.keyCode = 65;
    document.getElementById('id_input').dispatchEvent(e);
    ">click me</button>
</body>

</html>
4b9b3361

Ответ 1

С точки зрения реализации этой функции изнутри расширения Chrome, похоже, что это возможно с обходными решениями. Эти ссылки могут помочь.

Keydown, который не работает с расширением Chrome
Как инициализировать событие клавиатуры с данным char/keycode в расширении Chrome?

Однако на веб-странице это невозможно. По крайней мере, не с Chrome 56. Существует атрибут isTrusted только для чтения объекта Event.

Событие "доверено" при вызове реального пользователя на клавиатуре и "не доверено" при вызове script.

Как указано здесь, ненадежные события не вызывают действие по умолчанию. Это присутствует с Chrome 53.