Форма входа в Clockify - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать сценарий PowerShell, чтобы открыть Internet Explorer, перейти к https://clockify.me/login, заполнить поля ввода адреса электронной почты и пароля и отправить форму или нажать кнопку входа в систему.

Проблема в том, что при заполнении входов с помощью:

  • document.getElementById("email").value="123"
  • document.getElementById("password").value="123"

у меня получаются следующие результаты:

  • Когда я отправляю форму с document.forms[0].submit(), страницы перезагружаются с URL https://clockify.me/login?email=&password=, и ничего не происходит
  • Когда я нажимаю кнопку, используя javascript или вручную, он считает, чтовходные данные пусты

Итак, есть ли способ обойти это?Либо с использованием исключительно JavaScript или PowerShell (я хочу, чтобы окно IE не было видно)

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Даже если вы изменяете значения объектов input DOM, этого недостаточно для инициирования обнаружения изменений базовых библиотек Angular, в результате чего форма выглядит «пустой».

СледующееПример чистого JS работает на Chrome, но я не проверял его в Internet Explorer:

let email = document.getElementById("email");
let password = document.getElementById("password");
let button = document.getElementsByTagName("button")[0];

email.value = 'someone@example.com';
password.value = 'yourpassword';

// Trigger change detection
email.dispatchEvent(new Event('input'));
password.dispatchEvent(new Event('input'));

button.click();

В случае, если dispatchEvent не работает в IE, вы можете попробовать с createEvent и initEvent.Смотрите dispatchEvent не работает в IE11

...