У меня есть страница со списком названий компаний. Этот список изначально ограничен 200 результатами, но есть ссылка, чтобы удвоить этот предел. С каждым кликом время загрузки увеличивается до нескольких минут.
Я использую следующий код.
/**
* @param {object} page - a puppeteer page object
* @param {number} by - how many times I need to click on the link
*/
async function multiply(page, by = 5) {
for (let i = 0; i < by; i++) {
await Promise.all([
// Manual clicking of the link
page.$eval('p a', el => el.click()),
// set a timeout of 8 minutes
page.waitForNavigation(480000)
]).catch(e => console.log(e));
}
}
Я ожидаю тайм-аут 8 минут, но я получаю следующую ошибку:
Error: Navigation Timeout Exceeded: 30000ms exceeded
Я также пытался дождаться перехода , прежде чем нажмет на ссылку. Затем я попытался вручную подождать определенный тайм-аут с помощью page.waitFor(i ** 2 * 10000)
- но безуспешно. Ожидание селектора в HTML тоже не сработало.
Я не использую page.click('p a')
, потому что это подтверждается как ошибка здесь .
Возможно, вы захотите взглянуть на еще один уже решенный вопрос к моему проекту, который немного подробнее описывает мой вариант использования.
Если вы хотите посмотреть поближе, вы можете клонировать полное репо, нажав bitbucket.org / ytNewskews .