首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >木偶人不等待超时

木偶人不等待超时
EN

Stack Overflow用户
提问于 2018-06-29 03:12:56
回答 1查看 4.7K关注 0票数 1

我有一个包含公司名称列表的页面。这个列表最初被限制为200个结果,但是有一个链接可以将这个限制加倍。每点击一次,加载时间就会增加几分钟。

我正在使用下面的代码。

代码语言:javascript
复制
/**
 * @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分钟,但得到以下错误:

代码语言:javascript
复制
Error: Navigation Timeout Exceeded: 30000ms exceeded

在点击链接之前,我也尝试过等待导航。然后我尝试用page.waitFor(i ** 2 * 10000)手动等待一个定义的超时时间--但是没有成功。等待选择器出现在html中也不起作用。

我没有使用page.click('p a'),因为它被确认为错误here

您可能想看看我的项目的另一个already-solved question,它更详细地描述了我的用例。

如果您想仔细查看,可以通过单击bitbucket.org/ytNewskews来克隆完整的存储库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 03:33:44

page.waitForNavigation(options)需要一个具有如下属性的对象:

代码语言:javascript
复制
   // set a timeout of 8 minutes
   page.waitForNavigation({timeout: 480000})

默认值为30000ms。可以使用page.setDefaultNavigationTimeout(超时)方法更改默认值。

来自:Puppeteer API

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51089850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档