Кукловод: Тайм-аут или сон или ожидание внутри Page.Evaluate () - PullRequest
0 голосов
/ 14 мая 2019

Мне нужен способ добавить некоторую задержку между щелчками на элементах внутри страницы. Оценить функцию

цикл for ниже работает нормально для одного элемента, когда я пытаюсь использовать другой цикл for внутри него - он сходит с ума

const variants = [...document.querySelectorAll(".item-sku-image a")]; // Turn nodelist into an array
const sizes = [...document.querySelectorAll(".item-sku-size a")]; // Turn nodelist into an array

for (let variant of variants){
  // wait one second
  await new Promise(function(resolve) {setTimeout(resolve, 1000)});
  await variant.click()
  for (let size of sizes){
   // wait one second
   await new Promise(function(resolve) {setTimeout(resolve, 1000)});
   await size.click()
 }
}

1 Ответ

1 голос
/ 14 мая 2019

.forEach не будет работать с обещаниями или async...await так, как вы хотите.

Вместо этого используйте for..of.

const variants = [...document.querySelectorAll(".item-sku-image a")]; // Turn nodelist into an array
for (let variant of variants){
  // wait one second
  await new Promise(function(resolve) {setTimeout(resolve, 1000)});
  await variant.click()
}

Легко читать, понимать и реализовывать.

Вот несколько ссылок:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...