Я пытаюсь написать небольшой скрипт, который автоматически вводит имя пользователя на этой странице входа . Согласно Inspector (из Firefox), поле ввода идентифицируется как селектор CSS input.input.input-text.input-default
. Итак, я написал скрипт ниже.
(function() {
"use strict";
window.setTimeout(() => {
const username = document.querySelector('input.input.input-text.input-default');
username.setAttribute('value', 'test');
}, 100); //waits a little until the input form becomes available
})();
На самом деле удается ввести имя пользователя test
, но когда я ввожу пароль и нажимаю кнопку отправки, появляется сообщение об ошибке
требуется имя пользователя
печатается, даже если поле не пустое.
После этого, если я щелкну поле имени пользователя, добавлю любой символ, удалим символ и затем снова нажмите кнопка отправки (см. рисунок ниже), теперь значение поля правильно интерпретируется и выводится сообщение об ошибке
Ошибка аутентификации
, что вполне нормально, поскольку мы используем неверное test
в качестве имени пользователя.
Я думаю, что это происходит из-за событий, связанных с полем ввода. По словам инспектора, события focus
, invalid
, keydown
, mousedown
и onChange
связаны с полем. Однако, даже если я выполню
username.dispatchEvent(new Event('onChange'));
или около того, значение все равно будет интерпретировано как пустое.
Два вопроса:
Как я могу заставить скрипт работать в этом случае?
Если вам удастся заставить скрипт работать, не могли бы вы рассказать, как вы анализировали структуру кода сайта? Сейчас я пользуюсь Инспектором, но этого недостаточно.