Кукловод — не может нажимать на элементы случайным образом

#javascript #node.js #puppeteer

#javascript #node.js #кукловод

Вопрос:

У меня есть массив элементов. Я хочу каждый раз нажимать на другой элемент в массиве. Как мне это сделать? Для меня важно подчеркнуть, что style[0] это не должно быть изменено. Я хочу получить доступ к элементу в другом месте element[0] , например: и т.д. Спасибо за помощь.

ВОТ МОЙ КОД:

 await page.evaluate(() => {
  [...document.querySelectorAll(".pioscnbf")]
    .find(element => element.style[0].includes("background-image"))?.click();
});
 

Я ХОЧУ НАЖАТЬ НА ELEMENT[0] ELEMENT[1] … случайным образом…

Пожалуйста, помогите мне, я хочу нажать на этот фон facebook:

введите описание изображения здесь

Ответ №1:

Если случайные элементы иногда могут повторяться, этого может быть достаточно:

 await page.evaluate(() => {
  const elements = [...document.querySelectorAll(".pioscnbf")]
    .filter(element => element.style[0].includes("background-image"));

  if (elements.length) {
    const randomIndex = Math.floor(Math.random() * elements.length);
    elements[randomIndex].click();
  }
});
 

В противном случае вы можете вернуть индекс выбранного элемента, сохранить его в массиве и передать этот массив следующим оцениваемым функциям, чтобы исключить эти элементы.