поочередный клик по элементам на странице
вобщем пишу скрипт для hh.ru нужно чтобы он на странице поиска вакансий нажимал кнопку откликнуться и в появившемся окне нажимал "отправить отклик" и так 20 раз. после этого нажимает на ссылку перехода на следующую страницу с новым списком вакансий. и если "сруливает куда" то то нажимал кнопку вернуться на предыдущую страницу.
var q = document.getElementsByClassName("bloko-button bloko-button_small HH-VacancyResponsePopup-Link")//кнопка откликнуться var w = document.getElementsByClassName("bloko-button bloko-button_secondary HH-VacancyResponsePopup-Submit HH-SubmitDisabler-Submit") \\ кнопка отправить отклик var e = document.getElementsByClassName("b-pager__next-text m-active-arrow HH-Pager-Controls-Next HH-Pager-Control") \\ кнопка перехода на следующую страницу q.length; var url = window.location.href; if (url.indexOf("hh.ru/search/vacancy?") == -1) setTimeout(function() { history.back(); }, 2000); var i for (i = 0; i < 20; i++) { setTimeout(function() { q[i].click() }, 2000); setTimeout(function() { w[0].click() }, 6000);} setTimeout(function() { e[0].click() }, 9000); |
денис77447327,
Это очень сложная хакерская задача. Нужны месяцы для реализации... А может быть и годы! |
Что конкретно не получается? все решаемо.
|
Вложений: 1
получается то что он кликает по последней 20й кнопке "откликнуться" и все.. дальше ошибки в консоли Uncaught TypeError: Cannot read property 'click' of undefined
|
document.querySelector(".el").dispatchEvent(new Event("click")); добавьте ко всем кнопкам |
Cannot read property 'dispatchEvent' of null пишет document.querySelector("bloko-button bloko-button_small HH-VacancyResponsePopup-Link").dispatchEvent(new Event("click")); отдельно эту комбинацию даже когда запускаю
|
денис77447327, вроде как метод «getElementsByClassName» принимает только 1 класс в кач-ве аргумента, а в случае с «querySelector» у вас селектор кривой задан.
Тут про оба метода написано: https://learn.javascript.ru/searchin...erySelectorAll Код ниже найдет на странице первый попавшийся на странице элемент, который содержит 3 класса сразу ("bloko-button", "bloko-button_small" и "HH-VacancyResponsePopup-Link") и воспроизведен на нем событие клик: document.querySelector(".bloko-button.bloko-button_small.HH-VacancyResponsePopup-Link").dispatchEvent(new Event("click")); |
тогда почему код ниже не работает? он кликает только первый элемент [1] после закрытия всплывающего окна на второй элемент [2] клик не происходит
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://hh.ru/* // @grant none // ==/UserScript== (function() { "use strict"; var q = document.getElementsByClassName("bloko-button bloko-button_small HH-VacancyResponsePopup-Link"); var w = document.getElementsByClassName("bloko-button bloko-button_secondary HH-VacancyResponsePopup-Submit HH-SubmitDisabler-Submit"); var e = document.getElementsByClassName("b-pager__next-text m-active-arrow HH-Pager-Controls-Next HH-Pager-Control"); var url = window.location.href; if (url.indexOf("hh.ru/search/vacancy?") == -1) setTimeout(function() { history.back(); }, 2000); setTimeout(function() { q[1].click(); }, 3000); setTimeout(function() { q[2].click(); }, 3000); })(); |
Часовой пояс GMT +3, время: 19:09. |