Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2021, 10:17
Новичок на форуме
Отправить личное сообщение для realmen80 Посмотреть профиль Найти все сообщения от realmen80
 
Регистрация: 26.02.2021
Сообщений: 4

Имитировать нажатие на кнопки на странице через скрипт tampermonkey
Если на странице https://edr-info.com/ru/customer-search в самом выбрать вариант "Искать физических лиц-предпринимателей" и внизу нажать "Поиск", то появляется список предпринимателей.

Адрес скрыт под кнопкой, вот так:


Нужно с помощью JS через tampermonkey пробежаться по кнопкам на странице и понажимать на них, чтобы адреса на странице были все видны.

Через поиск нашел похожий код, подправил, добавил его в tampermonkey, но он что-то не срабатывает...

Вот код скрипта с помощью которого пробовал прокликать адреса на странице:
// ==UserScript==
// @name         Tert script
// @namespace    [url]http://tampermonkey.net/[/url]
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        [url]https://edr-info.com/ru/customer-search[/url]
// @grant        none
// ==/UserScript==
(function() {
    'use strict';
document.querySelector (
    "d-flex align-items-center text-uppercase i[type='far fa-eye text-info pointer'] i"
).click();
})();


Вот кусок кода с кнопкой с классами:
<div class="d-flex align-items-center text-uppercase"><i class="fas fa-map-marker-alt pref-icon"></i> <span><!----> <i class="far fa-eye text-info pointer">
    Посмотреть</i></span></div>


Подскажите, пожалуйста, какой код скрипта сможет решить задачу. Заранее благодарен за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 26.02.2021, 10:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

realmen80,
document.querySelectorAll('i.far.fa-eye.text-info.pointer').forEach(i => i.click());
Ответить с цитированием
  #3 (permalink)  
Старый 26.02.2021, 11:05
Новичок на форуме
Отправить личное сообщение для realmen80 Посмотреть профиль Найти все сообщения от realmen80
 
Регистрация: 26.02.2021
Сообщений: 4

рони, спасибо за ответ.

Но что-то тоже не срабатывает у меня.

Вот показывает что скрипт выполняется, но не прокликаны кнопки:


Вот такой сейчас код скрипта:
// ==UserScript==
// @name         Tert script
// @namespace    [url]http://tampermonkey.net/[/url]
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        [url]https://edr-info.com/ru/customer-search[/url]
// @grant        none
// ==/UserScript==
(function() {
    'use strict';
document.querySelectorAll('i.far.fa-eye.text-info.pointer').forEach(i => i.click());
})();
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2021, 11:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от realmen80
Но что-то тоже не срабатывает у меня.
нельзя клинуть, то чего нет на странице. скрипт надо запускать, после загрузки блоков с информацией, или долбить постоянно, код ниже
(function() {
    'use strict';
const f = () => {
document.querySelectorAll('i.far.fa-eye.text-info.pointer').forEach(i => i.click());
window.setTimeout(f, 1000)
};
f();
})();
Ответить с цитированием
  #5 (permalink)  
Старый 26.02.2021, 12:20
Новичок на форуме
Отправить личное сообщение для realmen80 Посмотреть профиль Найти все сообщения от realmen80
 
Регистрация: 26.02.2021
Сообщений: 4

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

Не пойму, почему этот же код не срабатывает в автоматическом режиме через tampermonkey?

Если я правильно понимаю, то строка window.setTimeout(f, 1000) указывает задержку во времени через которую должен выполниться скрипт, это нужно для того, чтобы сначала загрузились блоки с информацией путем нажатия на кнопку "Поиск", а уже после этого чтобы отработал скрипт.

Я установил больше задержку window.setTimeout(f, 7000) , но автоматически скрипт не отрабатывает через tampermonkey. Когда запускаю вручную - все отлично работает.
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2021, 13:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Код:
// ==UserScript==
// @name        https://edr-info.com/ru/customer-search
// @namespace   https://edr-info.com/ru/customer-search
// @include     https://edr-info.com/ru/customer-search*
// @version     1
// @grant       none
// ==/UserScript==
window.addEventListener('DOMContentLoaded', function() {
    'use strict';
    const f = () => {
        document.querySelectorAll('i.far.fa-eye.text-info.pointer').forEach(i => i.click());
        window.setTimeout(f, 1000)
    };
    f();
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить цвет кнопки, отменяя предыдущее нажатие Domovenok Элементы интерфейса 2 19.12.2018 15:45
Кнопки вверх/вниз (помогите поправить скрипт) Capoeirista Элементы интерфейса 0 28.12.2015 14:52
Некорректно срабатывает скрипт на странице с pop-up Heidel jQuery 2 13.11.2012 17:44
скрипт работает в IE через раз jsVAN Internet Explorer 2 10.03.2011 03:27
заменяю один текст другим через прозрачность. кнопки конфликтуют. plishas Events/DOM/Window 7 12.01.2011 21:34