gpt4 book ai didi

node.js - Protractor - 每次运行后都会出现无法读取未定义的属性 'headerPrinter' 的异常

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:39 25 4
gpt4 key购买 nike

我真的不知道这个异常的原因是什么以及它的副作用是什么。但每次即使所有测试用例都通过了,它也会出现。请帮忙弄清楚如何解决这个问题 -

[launcher] Error: TypeError: Cannot read property 'headerPrinter' of undefined
at printHeader (C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:81:8)
at C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:56:19
at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20)
at [object Object].promise.Callback_.goog.defineClass.notify (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25)
at [object Object].promise.Promise.notify_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12)
at Array.forEach (native)
at Object.goog.array.forEach (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43)
at [object Object].promise.Promise.notifyAll_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16)
at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
at runMicrotasksCallback (node.js:337:7)
[launcher] Process exited with error code 100

enter image description here

Protractor 配置:

//-=-=-=- Packages -=-=-=-

var path = require('path');
var fs = require('fs');
var HtmlReporter = require('protractor-html-screenshot-reporter');
var util = require('util');
var Imap = require('imap'),
inspect = require('util').inspect;
var MailParser = require("mailparser").MailParser;
var MailListener = require("mail-listener2");
var log_file = fs.createWriteStream('c:\\automation\\tests\\' + '/emailResponses.log', {flags : 'w'});
// var log_exceptions = fs.createWriteStream('c:\\automation\\tests\\' + '/exceptions.log', {flags : 'w'});
var log_stdout = process.stdout;

//-=-=-=- Helpers -=-=-=-

captureScreen = function(name){
browser.driver.takeScreenshot().then(function(data){
var base64Data = data.replace(/^data:image\/png;base64,/,"");
return browser.getCapabilities().then(function (cap) {
var fname = name + "-" + cap.caps_.browserName + ".png";
fs.writeFile(fname, base64Data, 'base64', function(err) {
if(err) console.log(err);
});
});
});
}

waitPageToLoad = function(){
browser.driver.manage().timeouts().pageLoadTimeout(60000);
}

getLastEmail = function() {
var deferred = protractor.promise.defer();
console.log("Waiting for an email...");

mailListener.on("mail", function(mail){
deferred.fulfill(mail);
});
return deferred.promise;
};


// -=-=- Testing configuration -=-=-

exports.config = {

chromeDriver: 'npm/node_modules/protractor/selenium/chromedriver',
chromeOnly: false,
seleniumAddress: 'http://localhost:4444/wd/hub',

specs: ['c:\\automation\\tests\\frontageSanity.js'],

plugins: [{
package: 'C:\\automation\\tests\\node_modules\\protractor-console',
logLevels: ['severe', 'warning']
}],

// directConnect: true,

multiCapabilities: [{
// 'browserName': 'firefox',
// 'cli': {
// 'args': ['webdriver.firefox.useExisting=default', '-jsconsole', '-jsdebugger']
// }},
// }

// {
'browserName': 'chrome',
'chromeOptions': {
args: ['--no-sandbox','--test-type','--memory-metrics','--console','--crash-on-failure'],
// '--load-extension=' + 'C:\\Users\\idan\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\idgpnmonknjnojddfkpgkljpfnnfcklj\\1.2.4_0'
prefs: {
download: {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': 'C:\\automation\\tests\\downloaded\\'
}
}
}
// },

// {
// 'browserName': 'internet explorer',
// 'platform': 'ANY',
// 'version': '12'
}],

framework: "jasmine",

allScriptsTimeout: 90000,

getPageTimeout: 90000,


// -=-=- Pre-Conditions & Tools configurations -=-=-

onPrepare: function() {

//-=-=-=- HTML Reporter -=-=-=-
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: 'C:\\automation\\tests\\HtmlReporter\\',
// takeScreenShotsOnlyForFailedSpecs: true,
docTitle: 'vCita - Sanity testing report',
docName: 'Test_Report.html',
cssOverrideFile: 'htmlReporter_css.css'
}));

browser.driver.manage().window().maximize();

browser.getCapabilities().then(function (cap) {
browser.browserName = cap.caps_.browserName;
});

// -=-=-=- Email Listener - here goes your email connection configuration -=-=-=-
var mailListener = new MailListener({
username: "username",
password: "password",
host: "imap.gmail.com",
port: 993, // imap port
tls: true,
tlsOptions: { rejectUnauthorized: false },
mailbox: "INBOX", // mailbox to monitor
// searchFilter: ["UNSEEN", "FLAGGED"], // the search filter being used after an IDLE notification has been retrieved
markSeen: true, // all fetched email willbe marked as seen and not fetched next time
fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,
// mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib.
// attachments: true, // download attachments as they are encountered to the project directory
// attachmentOptions: { directory: "attachments/" } // specify a download directory for attachments
});

mailListener.start();

mailListener.on("server:connected", function(){
console.log("imapConnected");
});

mailListener.on("server:disconnected", function(){
console.log("imapDisconnected");
});

mailListener.on("mail", function(){
// console.log("GO IT!");
});

mailListener.on("mail", function(mail, seqno, attributes){
// do something with mail object including attachments
console.log("emailParsed", mail)
// mail processing code goes here
log_file.write(util.format(mail));
log_stdout.write(util.format(mail));
});

global.mailListener = mailListener;
},

// onCleanUp: function () {
// mailListener.stop();
// },

// -=-=- Node JS Settings -=-=-

jasmineNodeOpts: {
onComplete: function () {
mailListener.stop();
},
// If true, display spec names.
isVerbose: true,
// If true, print colors to the terminal.
showColors: true,
// If true, include stack traces in failures.
includeStackTrace: true,
// Default time to wait in ms before a test fails.
defaultTimeoutInterval: 9999999
}

}

最佳答案

您需要安装和使用的软件包名为 protractor-console-plugin ,而不是 Protractor 控制台

关于node.js - Protractor - 每次运行后都会出现无法读取未定义的属性 'headerPrinter' 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36037529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com