попытка автоматического входа на https://kite3.zerodha.com/ с использованием javascript GreaseMonkey

document.querySelector('div.su-input-group:nth-child(2) > input:nth-child(2)').value = ('abc');
document.querySelector("#password").value = "abc";
document.querySelector("#dob").value = "abc";

document.querySelector(".button-orange").click();

Пока это код, который мне удалось написать, и он не работает на https://kite3.zerodha.com. /. Скрипт завершается ошибкой после строки номер 3. Кстати, тот же код у меня работает на других сайтах.


person Jass    schedule 09.03.2018    source источник
comment
Итак, с какой проблемой вы столкнулись?   -  person Thum Choon Tat    schedule 09.03.2018
comment
когда выполняется третья строка кода. блокировка пароля стирается   -  person Jass    schedule 09.03.2018
comment
Вы уверены, что вам нужен этот селектор для входа на эту страницу? document.querySelector("#dob").value = "abc";   -  person Milan    schedule 14.03.2018


Ответы (1)


Причина, по которой этот код не работает на веб-сайте kite3, заключается в том, что элементы управления, которые необходимо заполнить, анимированы и недоступны для выбора, пока анимация не завершится.
Решением этой проблемы является использование библиотеки js waitForKeyElements. Когда эти элементы становятся доступными, значения можно устанавливать, нажимая кнопки. Для подтверждения концепции используется только один критерий ожидания.
Этот код работает для входа на этот веб-сайт, просто замените имя пользователя и пароль правильными значениями.

// ==UserScript==
// @name         Login to Kite
// @namespace    http://tampermonkey.net/
// @version      0.1
// @match        *kite3.zerodha.com
// @require      https://gist.github.com/raw/2625891/waitForKeyElements.js
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==

waitForKeyElements(":password", login);

function login() {
    document.querySelector("[type=text]").value = 'yourUserId';
    document.querySelector("[type=password]").value = 'yourPassword';
    document.querySelector("button").click();
}
person Milan    schedule 14.03.2018
comment
Вы скопировали/вставили весь скрипт? - person Milan; 19.03.2018
comment
да. я скопировал/вставил целиком. когда скрипт нажимает на кнопку, поле пароля стирается. - person Jass; 20.03.2018