获取 npm 错误! errno 199 when 运行 带有黄瓜框架的量角器
Getting npm ERR! errno 199 when running Protractor with cucumber framework
我是 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] default - TOTAL NAV LINKS ARE ARE:5
[2017-12-19T23:59:36.818] [INFO] default - ACTUAL PAGES:Home,Applications,Programs,Reports,Admin Tools,
[2017-12-19T23:59:36.821] [INFO] default - EXPECTED PAGES:Home,Applications,Programs,Reports,Admin Tools,a
[23:59:36] E/launcher - expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a'
[23:59:36] E/launcher - AssertionError: expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a'
at 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)
at ManagedPromise.invokeCallback_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:1376:14)
at TaskQueue.execute_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3084:14)
at TaskQueue.executeNext_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3067:27)
at asyncRun (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:2927:27)
at C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:668:7
at
at process._tickCallback (internal/process/next_tick.js:188:7)
[23:59:36] E/launcher - Process exited with error code 199
npm ERR! code ELIFECYCLE
npm ERR! errno 199
由于 npm errno 199,量角器进程正在终止并停止执行进一步的场景。
寻求帮助。
错误日志是不言自明的。您的脚本只找到 5 个 "NavLinks",包括 Home、Applications、Programs、Reports、Admin Tools,而预期值为 6,另一个对象名为 "a"。这将导致断言错误。
我更新了如下代码,它起作用了:
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);
});
我是 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] default - TOTAL NAV LINKS ARE ARE:5 [2017-12-19T23:59:36.818] [INFO] default - ACTUAL PAGES:Home,Applications,Programs,Reports,Admin Tools, [2017-12-19T23:59:36.821] [INFO] default - EXPECTED PAGES:Home,Applications,Programs,Reports,Admin Tools,a [23:59:36] E/launcher - expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a' [23:59:36] E/launcher - AssertionError: expected 'Home,Applications,Programs,Reports,Admin Tools,' to equal 'Home,Applications,Programs,Reports,Admin Tools,a' at 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) at ManagedPromise.invokeCallback_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:1376:14) at TaskQueue.execute_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3084:14) at TaskQueue.executeNext_ (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:3067:27) at asyncRun (C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:2927:27) at C:\HancockSoftwareAutomation\mdmf_automation_bdd\mdmf_e2e_gui_testing\node_modules\selenium-webdriver\lib\promise.js:668:7 at at process._tickCallback (internal/process/next_tick.js:188:7) [23:59:36] E/launcher - Process exited with error code 199 npm ERR! code ELIFECYCLE npm ERR! errno 199
由于 npm errno 199,量角器进程正在终止并停止执行进一步的场景。
寻求帮助。
错误日志是不言自明的。您的脚本只找到 5 个 "NavLinks",包括 Home、Applications、Programs、Reports、Admin Tools,而预期值为 6,另一个对象名为 "a"。这将导致断言错误。
我更新了如下代码,它起作用了:
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);
});