поочередный клик по элементам на странице
вобщем пишу скрипт для 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, время: 21:54. |