элементы не могут быть возвращены с использованием page.evaluate
, поскольку они не сериализуемы. Вместо этого используйте page.evaluateHandle
.
Из документов
Единственная разница между page.evaluate и page.evaluateHandle заключается в том, что page.evaluateHandle возвращает на страницу объект (JSHandle)
пример:
Здесь элемент не возвращается.
const element = await page.evaluate(() => document.querySelector('a'));
, тогда как здесь элемент будет экземпляром JSHandle:
const element = await page.evaluateHandle(() => document.querySelector('a'));
Вы можете использовать jsHandle.asElement()
, чтобы получить ElementHandle.