Вы можете использовать page.waitForNavigation
, чтобы дождаться завершения любой сетевой активности при нажатии кнопки, подобной этой:
// waits for navigation and clicks promises to resolve
await Promise.all([
page.waitForNavigation(), // this promise resolves after navigation has finished
page.click('.save')
]);
const value = await page.$eval('.myelement', el => { return el.innerHTML });
Вы не должны просто использовать page.waitForNavigation()
, так как это можетпривести к состоянию гонки, когда сетевая активность уже завершена до разрешения обещания page.click
.
Альтернативы
Если это не работает, вы также можете попробовать один из waitUntil
опции для функции, такие как networkidle0
или networkidle2
(например, page.waitForNavigation({ waitUntil: 'networkidle0' })
.
. В качестве альтернативы вы можете использовать page.waitForResponse
вместо этого, если хотите дождаться определенного сетевого ресурсадля завершения загрузки или есть постоянный фоновый трафик (так что ожидание завершения навигации не является вариантом).