node.js - 如何修复使用 Node 和 nightwatch for 循环时潜在的内存泄漏?

标签 node.js nightwatch.js

我正在尝试对网站中的元素数组进行 for 循环,并且 for 循环工作得很好,除了此错误之外,我收到 MaxListenersExceededWarning: 检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误监听器。使用emitter.setMaxListeners()来增加限制。

我尝试添加事件模块并使用事件发射器.setMaxListeners() 方法,但仍然收到此错误。我什至将它放在 for 循环中,以领先于所有其他均匀听众。我已经用 console.logged 了我的最大听众数量,但不明白为什么我仍然收到此消息。

for(let i = 1; i <= 20; i++) {

        //console.log(emmiter)
        browser
            .element('css selector', `mat-nav-list > a:nth-child(${i})`, 
function(result) {
                if(result.value && result.value.ELEMENT) {
                    browser.isVisible(`mat-nav-list > a:nth-child(${i})`, 
function(result) {
                        if(result.value === true) {

emmiter.setMaxListeners(emmiter.getMaxListeners() + 1)
                            console.log(emmiter);
                            browser.click(`mat-nav-list > a:nth-child(${i})`)
                            .pause(2000)
                        }
                    })
                }
            })
            //.pause(2000)

            //.pause(10000)

    }

当我循环多个元素时,我希望它们能够无错误地循环。在这种情况下,我将在没有内存泄漏警告的情况下循环。目前,我在进入此 for 循环时收到警告,并且它似乎发生在我的 if 语句之一中。

最佳答案

它看起来像是最新版本的 Nightwatch 的新控制台输出功能。

我在 1.0.18 上遇到了这个问题。

我最近回滚到 nightwatch 版本 0.9.21,并且没有收到内存泄漏错误。我猜这是这个版本的夜巡中的新功能,但看到这些错误很烦人。

关于node.js - 如何修复使用 Node 和 nightwatch for 循环时潜在的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047041/

相关文章:

javascript - Mongoose 将两个查询合并为同一集合

node.js - Azure 管道中的数据库迁移

xpath - 如何让 Nightwatch 在页面对象文件中默认使用 xpath

node.js - NodeJS/Dokku/Docker : ffmpeg exited with code 127

http - 在nodejs中没有收到数据时如何处理http.get()?

windows - Nightwatch.js:为什么我无法创建新服务:GeckoDriverService?

javascript - 断言在页面对象中不可用? - 无法读取未定义的属性 'ok'。

javascript - Nightwatch.js - 获取元素的标题并稍后进行比较

node.js - 在 express.js 中渲染一些 View 和 404 个其他 View

javascript - Nightwatch 为每次调用使用相同的元素选择器