Javascript.RU

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

поочередный клик по элементам на странице
вобщем пишу скрипт для 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);
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2017, 19:32
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

денис77447327,
Это очень сложная хакерская задача. Нужны месяцы для реализации... А может быть и годы!
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2017, 20:22
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Что конкретно не получается? все решаемо.
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2017, 22:34
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

получается то что он кликает по последней 20й кнопке "откликнуться" и все.. дальше ошибки в консоли Uncaught TypeError: Cannot read property 'click' of undefined
Изображения:
Тип файла: jpg Безымянный.jpg (23.6 Кб, 4 просмотров)
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2017, 23:42
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

document.querySelector(".el").dispatchEvent(new Event("click"));

добавьте ко всем кнопкам
Ответить с цитированием
  #6 (permalink)  
Старый 07.09.2017, 00:20
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

Cannot read property 'dispatchEvent' of null пишет document.querySelector("bloko-button bloko-button_small HH-VacancyResponsePopup-Link").dispatchEvent(new Event("click")); отдельно эту комбинацию даже когда запускаю
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2017, 08:06
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

денис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"));
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2017, 11:54
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

тогда почему код ниже не работает? он кликает только первый элемент [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);
})();
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик в canvas по разным элементам Negotiant Общие вопросы Javascript 5 01.08.2017 20:39
Клик по элементу на странице в рамках координат ipatrool Элементы интерфейса 17 10.10.2014 17:40
Динамическое отображение контента на 2ой странице, в зависимости от выбора на 1ой Volchen0ck Events/DOM/Window 2 14.05.2014 16:01
Отловить клик на странице arma Events/DOM/Window 4 02.04.2014 15:03
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47