得到npm ERR!使用黄瓜框架

时间:2017-12-19 18:37:07

标签: angularjs node.js protractor cucumberjs

我是JavaScript和Protractor的新手,我使用的是Protractor和cucmber 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] [信息]默认 - 实际页面:主页,应用程序,程序,报告,管理工具,   [2017-12-19T23:59:36.821] [信息]默认 - 预期页面:主页,应用程序,程序,报告,管理工具,a   [23:59:36] E / launcher - 预期'家庭,应用程序,程序,报告,管理工具',等于'家庭,应用程序,程序,报告,管理工具,'   [23:59:36] E / launcher - AssertionError:预期“家​​庭,应用程序,程序,报告,管理工具”等于'家庭,应用程序,程序,报告,管理工具,'       在C:/HancockSoftwareAutomation/mdmf_automation_bdd/mdmf_e2e_gui_testing/stepDefinitions/navaigation_bar_steps.js:74:49       at 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       是在       at process._tickCallback(internal / process / next_tick.js:188:7)   [23:59:36] E / launcher - 进程已退出,错误代码为199   错误的ERR!代码ELIFECYCLE   错误的ERR! errno 199

由于npm errno 199,量角器进程终止并停止执行其他方案。

寻求帮助。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我更新了下面的代码,它起作用了:

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);

});