Проблема в том, что функция filter
не работает с Promises. Таким образом, return posts.filter(...)
немедленно вернется, и после этого браузер закроется. Поэтому, когда вы пытаетесь запустить функцию $
на странице, страница больше не существует, и вы получаете ошибку Target closed
.
Чтобы заставить его работать с синтаксисом async / await, вы можете вместо этого использовать простой цикл:
async function findPosts(page) {
const USERNAME = 'test123';
const posts = await page.$$('.userContentWrapper');
const postsToReturn = [];
for (let post of posts) {
/* ... if else logic */
postsToReturn.push(post); // instead of return true
}
return postsToReturn;
}