Неправильная последовательность выполения в массиве с перебором
Доброго времени суток!
Имеется данный скрипт (спасибо voraa) let zaprosi = ["Запрос1", "Запрос2", "Запрос3"] const delay = (t) =>new Promise (res => setTimeout (res, t)); const findAndClick = async (channelName, td) => { while (true) { const blocks = Array.from(document.querySelectorAll('div#channel-info')); let elem = blocks.find((item) => item.innerText.trim().toLowerCase() == channelName.toLowerCase()) if (elem) { elem.parentNode.parentNode.querySelector('a#thumbnail').click(); return; } else { window.scrollBy(0, 5500); await delay (td); } } } ;(async function () { for (const zap of zaprosi) { document.querySelector('input#search').value = zap; document.querySelector('button#search-icon-legacy').click(); await findAndClick('НАЗВАНИЕ КАНАЛА', 3000) } })() Его суть: открыт сайт ЮТУБ. Взял 1ую переменную из "zaprosi", вставил в поисковую строку, нажал на поиск. Далее пошел поиск по странице на наличие определенного канала, если он не был найден - скролл страницы, до тех пор, пока не найдет. Далее клик по нужному видосу с нужного канала. Далее взял 2ую переменную из "zaprosi" и всё пошло по кругу. Потом третью... Проблема вот в чем: скролл и поиск запускаются раньше времени, и всё ступорится. Прошу помощи! |
Часовой пояс GMT +3, время: 14:31. |