Ладно, упарываться, так упарываться. Клики + получение новых элементов для кликов + прокрутка + все повторить, но не смешивать. Кликнуть на ролик, вставить и выполнить код в консоль браузера:
async function clickByElement() {
let element = document.querySelector('.css-1swe2yf-DivActionContainer.esns4rh0 [aria-pressed="false"]');
if (!element) return null;
console.log('Клик!')
element.click();
while (element.getAttribute('aria-pressed') !== 'true') {
await new Promise(resolve => setTimeout(resolve, 100));
}
return true;
}
async function clickAllElements() {
let foundClickable = false;
while (await clickByElement() !== null) {
foundClickable = true;
}
return foundClickable;
}
async function scrollToBottomAndClickAgain() {
const scrollContainer = document.querySelector('.css-1qp5gj2-DivCommentListContainer.ekjxngi3');
if (scrollContainer) {
console.log('Крутим страницу и ждем 10 сек.')
let lastScrollTop = scrollContainer.scrollTop;
scrollContainer.scrollTop = scrollContainer.scrollHeight;
await new Promise(resolve => setTimeout(resolve, 10000));
if (scrollContainer.scrollTop !== lastScrollTop) {
if (await clickAllElements()) {
await scrollToBottomAndClickAgain();
} else {
console.log('Прокрутка выполнена, новые элементы для клика не найдены.');
}
} else {
console.log('Достигли конца прокрутки, больше нечего прокручивать.');
if (await clickAllElements()) {
await scrollToBottomAndClickAgain();
} else {
console.log('Задача окончательно завершена, кликов больше не осталось');
}
}
} else {
console.error('Контейнер для прокрутки не найден');
}
}
async function initiateClicksAndScroll() {
if (await clickAllElements()) {
await scrollToBottomAndClickAgain();
} else {
console.log('Нет элементов для начальных кликов, проверяем прокрутку');
await scrollToBottomAndClickAgain();
}
}
initiateClicksAndScroll().then(() => console.log('Задача выполнена май генерал!'));