У меня есть простой сценарий Puppeteer:
await page.goto(MY_URL, {waitUntil: 'load'});
const html = await page.evaluate(() => document.body.innerHTML);
Затем я проверяю, содержит ли html некоторые ключевые строки, и эта часть всегда проходит (я упоминал в случае, если это может каким-либо образом повлиять на дальнейший процесс).После этого я жду, пока в объект window
будет включена функция.
await page.waitForFunction(() => 'myFunction' in window);
Эта функция написана внизу скрипта, прикрепленного в <head>
тегом <script>
страницы..
В основном waitForFunction
разрешается так, как должно, но иногда это не так.
И когда я передаю {timeout: 0}
, оно будет ждать вечно и никогда не разрешится.Также кажется, что это происходит только в режиме без головы.
Что может быть причиной такого поведения?Как преодолеть или устранить эту проблему?