Как имитировать ввод текста в input password

96
01 марта 2021, 15:50

Есть сайт на angular, сайт не мой. Хочу немного оптимизировать работу с ним для себя. Нужно в поле input type="password" или #password вставить свой пароль.

Просто вставить свой пароль в это поле не проблема:

$("input[name='password']").val('test');

Пароль вставляется, но при нажатии на кнопку отправки формы - сайт отвечает что пароль я не ввел. И так он отвечает до тех пор покуда реально не введешь текст клавиатурой.

Вот их input:

<input type="password" name="password" id="password" autocomplete="off" autocapitalize="off" class="rginput ng-pristine ng-empty ng-invalid ng-invalid-required ng-valid-maxlength ng-touched error" ng-class="{'error': field$invalid('password')}" ng-model="password" ng-keyup="onPasswordKeyUp()" required="" placeholder="Password" maxlength="20">

Я подозреваю что это из-за ng-keyup="onPasswordKeyUp()"

Как заставить думать сайт что текст введен с клавиатуры?

Буду благодарен за помощь!

Answer 1

Приведенный вами сайт использует AngularJs 1.6.

Данный способ будет работать только для данного сайта и только для AngularJs.

Необходимо написать следующий код в консоли:

var rootScope = angular.element(document.querySelector('[ng-app="ram"]')).injector().get('$rootScope'); 
rootScope.$$childHead.password = rootScope.$$childHead.username ='123'; 
rootScope.$apply();

После этого логин и пароль в форме примут значение '123'.

READ ALSO
В чём разница между querySelector и getElementById?

В чём разница между querySelector и getElementById?

Вопрос, возможно, слишком общий или не по теме, но мне интересноЯ видел, что кто-то использует querySelector для поиска элемента по id, а не по имени...

106
Discord JS: Не могу изменить имя бота

Discord JS: Не могу изменить имя бота

Хочу сделать, чтобы бот менял свой никПодскажите как правильно это сделать

127
JS, await with new

JS, await with new

Всем приветПомогите пожалуйста подружить асинхронность c оператором new

92