【问题标题】:Getting npm ERR! errno 199 when running Protractor with cucumber framework获取 npm 错误!使用黄瓜框架运行量角器时出现 errno 199
【发布时间】:2018-06-02 06:10:25
【问题描述】:

我是 JavaScript 和 Protractor 的新手,我正在使用 Protractor 和黄瓜 js。 我遇到的问题是以下代码:

Then(/^I verified all pages visible to logged in user$/, () => {

    var expVisibleNavPages = 'Home,Applications,Programs,Reports,Admin Tools,a';

    var NavLinks = element.all(by.css('ul.nav.navbar-nav')).get(0).all(by.css('a'));

    var len =0;

    NavLinks.then(function(result) {
            len = result.length;
            logger.info("TOTAL NAV LINKS ARE ARE:"+len);
        });


    var actVisibleNavPages = "";
    var iCt = 0;


    NavLinks.each(function (element) {

        element.getText().then(function(text){

        actVisibleNavPages += text+",";
        iCt++;

            if (len === iCt)
            {
                logger.info("ACTUAL PAGES:"+actVisibleNavPages);

                logger.info("EXPECTED PAGES:"+expVisibleNavPages);

                return expect(actVisibleNavPages).to.equal(expVisibleNavPages);
            }



        });


    });

我收到以下错误:

[2017-12-19T23:59:36.696] [INFO] 默认 - 导航链接总数为:5 [2017-12-19T23:59:36.818] [INFO] 默认 - 实际页面:主页、应用程序、程序、报告、管理工具、 [2017-12-19T23:59:36.821] [INFO] 默认 - 预期页面:主页、应用程序、程序、报告、管理工具、a [23:59:36] E/launcher - 预期“主页、应用程序、程序、报告、管理工具”等于“主页、应用程序、程序、报告、管理工具、a” [23:59:36] E/launcher - AssertionError: 预期 'Home,Applications,Programs,Reports,Admin Tools,' 等于 'Home,Applications,Programs,Reports,Admin Tools,a' 在 C:/HancockSoftwareAutomation/mdmf_automation_bdd/mdmf_e2e_gui_testing/stepDefinitions/navaigation_bar_steps.js:74:49 在 elementArrayFinder_.then (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\protractor\built\element.js:804:32) 在 ManagedPromise.invokeCallback_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:1376:14) 在 TaskQueue.execute_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3084:14) 在 TaskQueue.executeNext_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3067:27) 在 asyncRun (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:2927:27) 在 C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:668:7 在 在 process._tickCallback (internal/process/next_tick.js:188:7) [23:59:36] E/launcher - 进程退出,错误代码 199 npm 错误!代码生命周期 npm 错误!错误号 199

由于 npm errno 199,量角器进程正在终止并停止执行更多场景。

寻求帮助。

【问题讨论】:

  • 试试这个:> npm run update-webdriver

标签: angularjs node.js protractor cucumberjs


【解决方案1】:

错误日志是不言自明的。您的脚本仅找到 5 个“NavLinks”,包括主页、应用程序、程序、报告、管理工具,而预期值为 6,另一个对象称为“a”。这将导致断言错误。

【讨论】:

  • 感谢您的回复,我故意让它失败断言。问题是如果断言失败,那么量角器不应该退出并继续其他场景,但是在这个 Protactor 进程中,由于 npm 错误 199 而被 gettig 杀死。在其他步骤中,当断言失败时,量角器使该场景失败并继续下一个场景。所以我的问题是如何避免因断言失败而终止 protracror 进程。
  • 错误 199 似乎是未捕获的异常,因此您可以尝试将ignoreUncaughtExceptions = true 属性添加到您的protractor.config。然后当这个断言错误发生时,Protractor 将继续下一个场景。希望它会起作用。
【解决方案2】:

我更新了如下代码,并且成功了:

Then(/^I verified all pages visible to logged in user$/, () => {

    var expVisibleNavPages = ["Home","Applications","Programs","Reports","Admin Tools","a"];

    let actVisibleNavPages =  element.all(by.css('ul.nav.navbar-nav')).get(0).all(by.css('a'));

     var promise = new Promise(function (resolve) {
        setTimeout(resolve, 200, actVisibleNavPages.getText());
    });


    return expect(promise).to.eventually.deep.equal(expVisibleNavPages);

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    相关资源
    最近更新 更多