Я сохраняю URL из плейлиста видеоплеера.
Последовательность действий:
- Нажмите на видео
- Найти элемент видео и получить его
src
- Добавить
src
в массив
Все идет хорошо, но иногда есть элемент, от которого я не могу получить src
. Итак, что я хочу сделать, это попытаться получить элемент src
5 раз, а если он не получится в 5 раз, тогда я должен вставить значение счетчика (i
) в массив вместо URL и нажать на следующее видео и получите src
следующего элемента. Пожалуйста, дайте мне знать, как я могу это сделать.
Вот мой текущий код, который нажимает один за другим и получает элемент src
и просто зависает, если не может получить элемент src
:
const links = await page.evaluate((SELECTORS) => {
return new Promise((resolve, reject) => {
const items = document.querySelector(SELECTORS.list).childNodes;
let i = 0;
const urls = [];
const video = document.querySelector(SELECTORS.video);
let counter = 0;
const limit = 10;
var timer = setInterval(() => {
const url = video.getAttribute('src');
if (!urls.includes(url)) {
urls.push(url);
i++;
if (items[i]) {
setTimeout(items[i].click(), 2000);
} else {
clearInterval(timer);
resolve(urls);
}
}
}, 10);
items[0].click();
});
}, SELECTORS);