Как получилось, что waitForFunction, waitForSelector, await page.evaluate и т. Д. Все выдают ошибки, ЕСЛИ Я не установил задержку в 10 секунд после прочтения страницы?страница, но без моей 10 секундной задержки (сразу после page.goto) - все они терпят неудачу с ошибками.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto('https://sunnythailand.com')
console.log("Waiting 10 seconds")
await new Promise((resolve)=>setTimeout(()=> resolve() ,10000));
console.log("Here we go....")
console.log("waitForFunction START")
await page.waitForFunction('document.querySelector(".scrapebot_description").textContent.length > 0');
console.log("waitForFunction FOUND scrapebot")
console.log("Waiting for evaluate")
const name = await page.evaluate(() => document.querySelector('.scrapebot_description').textContent)
console.log("Evaluate: " + name)
await browser.close()
})()
Моя теория состоит в том, что наша страница sunnythailand.com отправляет «конец страницы» или что-то еще ДО того, как она закончит рендеринг, а затем все функции waitFor сходят с ума и терпят неудачу со всевозможными странными ошибками.
Итак, я думаю, мой вопрос заключается в следующем: как заставить waitFor фактически ПОДОЖДАТЬ событие или класс и т.д. ...?