Кликнуть по DOM элементу

ebitok
На сайте с 07.11.2011
Offline
112
744

Есть чужой сайт, где нужно подтверждать заявки, но вручную делать это долго, по этому я написал мини скрипт , который тыкает на все кнопки подряд с классом "bt".

$(".bt").each(function(indx, element){ $(element).click(); });

Вставляю это дело в консоль и все удачно отрабатывает.

Минус в том, что нужно каждые 5 минут тыкать F5 и вставлять этот скрипт заново в консольку браузера.

Но как сделать это цыклично?

Первым делом я подумал про таймер и Document.reload , но если он отрабатывает то скрипт обнуляется.

Есть ли еще какие-нибудь варианты?

Структура сайта очень сложная, писать с нуля парсер и клиент под сайт - сложная задача, нужно сделать все на уровне DOM

ДП
На сайте с 23.11.2009
Offline
203
#1

Как вариант - сделать букмарклет, но страничку всё равно надо будет перезагружать и кликать на букмарклет.

Еще можно скрипт добавить в сниппеты в dev tools - и оттуда вызывать. Но всё равно руками надо.

Ну и можно расширение к хрому/файрфоксу написать - оно может (я так полагаю) автоматически и страничку презагружать и кнопки кликать.

S1
На сайте с 10.03.2012
Offline
77
#2

Greasemonkey плагин для браузера, с примерно таким скриптом


$( document ).ready(function() {
$(".bt").each(function(indx, element){ $(element).click(); });
setTimeout(function(){ location.reload(); }, 5*60*1000);
});
ebitok
На сайте с 07.11.2011
Offline
112
#3

а в Greasemonkey можно как-то использовать псевдо глобальные переменые?

Вот допустим если на JS сделать:

var i =0

i++;

то после reload эта переменная слетит

Просто хочу где-то сохранять сколько раз обновилась страница сайта.

Руслан С
На сайте с 12.12.2015
Offline
9
#4

jQuery.get(window.location) чтобы получить обновленную страницу.

В success передаете jQuery.parseHTML(response.data) в вашу функцию, которая выполняет клики. Это нужно делать в цикле. Первую итерацию вы запускаете вручную, передав $(html).

Вашу функцию же, нужно немного модифицировать. Она должна не кликать по кнопкам, а получать идентификатор этой кнопки и передавать его в функцию, которая зарегистрирована, как обработчик. Например, deleteById.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий