Доброго времени суток.
Смотрю периодически сайт hh.ru
И каждый раз мне приходится ставить галочки для нужных городов.
Я решил облегчить себе задачу с помощью tamper monkey, что бы при заходе на страницу города проставлялись автоматически.
В итоге с помощью JS мне удалось найти блок,нажать кнопку "показать всё", далее показывается список городов, но я у меня не получается понять как его обработать и с ним работать.
Я пытаюсь получить его элементы но ни data.querySelector, ни попытка обращения по индексу его детей(child) у меня не получилась.
data.querySelector у меня не находит класс, а при обращении по индексу детей выводит пустой класс без каких либо данных, хотя когда обращаешься без какого либо индекса, просто data.children, вывод в консоли показывает множество потомков.
spoiler// @match https://hh.ru/search/vacancy
(function() {
'use strict';
var getUpDiv = function() {
var contents = document.querySelectorAll(
".novafilters_search-preference"
);
console.log("Content: ", contents);
return contents[0].children;
}
var ClickItem = function(data){
var metadata = data.querySelector(
'.bloko-link-switch'
);
if(metadata.textContent == "Показать все"){
//console.log(metadata.textContent);
metadata.click();
return metadata ? metadata.children[1] : null;
}
else{
console.log("Надо показать");
return null;
}
}
var getCities = function(data){
console.log(typeof(data));
console.log("Cities ", data);
console.log(data.children);
var coll = data.children;
console.log("Колекция " ,coll.namedItem(0));
for (let newd in coll) {
console.log(coll[newd])
};
/* for (let newd in data) {
console.log(newd);
} */
/* var cities = data.querySelector(
'.novafilters-list novafilters-list_scrolling'
); */
console.log(data.lenght);
for(var z =0 ; z < data.length; z++)
{
console.log(data[z]);
}
/* console.log("Cities 2 " , cities); */
}
var run = function(){
var UpDiv = getUpDiv ();
for (var i=0; i < UpDiv.length; i++) {
if (i == 3){
var UpDiv2 = UpDiv[i];
console.log("Video^ ", UpDiv2);
ClickItem(UpDiv2);
}
}
UpDiv = getUpDiv ();
for ( i=0; i < UpDiv.length; i++) {
if (i == 3){
UpDiv2 = UpDiv[i];
console.log("Video^ ",UpDiv2);
}
}
console.log("za predelom^ ", UpDiv2.children[1]);
var git = UpDiv2.children[1];
console.log("za predelo 2 ",git.children[0]);
getCities(UpDiv2.children[1]);
//console.log("za predelom^ ", video);
}
setTimeout(run, 3000);
// Your code here...
})();
Подскажите пожалуйста как можно решить эту проблему? Или куда мне смотреть?
Спасибо.