Как получить все элементы в списке в кукольнике - PullRequest
1 голос
/ 14 июля 2020

У меня есть контейнер страницы со списком папок. Я хочу щелкнуть по ним один за другим. Прилагаю скриншот страницы с исходным кодом. введите описание изображения здесь

Я пробовал следующий код:

   let elements = document.getElementsByClassName('document-container')

   for (let element of elements)
   {
    await  element.click();
   }
    

Но это не работает.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Вы можете использовать page.$$, чтобы собрать все экземпляры элементов .document-container как дескрипторы элементов . Он запускает document.querySelectorAll в контексте страницы.

Затем вы можете повторять клики с помощью elementHandle.click (как вы ' я уже пробовал).

const elHandleArray = await page.$$('.document-container')

for (const el of elHandleArray) {
  await el.click()
}
0 голосов
/ 14 июля 2020

Где вы инициировали текущую страницу с помощью кукловода? Вы должны использовать page.click(elementToClick);.

Здесь вы пытаетесь получить элементы внутри указанного div. Это означает, что вам нужно получить дочерние элементы указанного контейнера div.

Чтобы получить всех дочерних элементов элемента HTML, вы всегда можете использовать свойство .children, которое вернет массив элементов внутри другого элемента. И вернет пустой массив, если у родительского элемента нет дочернего элемента.

В своем коде вы можете попробовать что-то вроде этого:

let container = document.getElementByClassName('document-container');

let elements = container.children;

for(element in elements){
  element.click();
}

Посмотрите, работает ли это.

...