Get elements from page.evaluate in Puppeteer?
let elementsHendles = await page.evaluateHandle(() => document.querySelectorAll('a'));
let elements = await elementsHendles.getProperties();
let elements_arr = Array.from(elements.values());
Use page.evaluateHandle()
An API is : here
The function page.evaluate()
can only return a serializable value, so it is not possible to return an element or NodeList
back from the page environment using this method.
You can use page.$$()
instead to obtain an ElementHandle
array:
const nodes = await page.$$(`${selector} > *`); // selector children
If the length
of the constant nodes
is 0
, then make sure you are waiting for the element specified by the selector to be added to the DOM with page.waitForSelector()
:
await page.waitForSelector(selector);