我正在测试混合AngularJS和非angularJS页面的网站。 我尝试做的一件事是查看是否由于用户提交的操作而触发了异常。 我这样做的方式是通过网络控制台。
要获得控制台输出,我的操作如下:
afterEach(function(){
browser.manage().logs().get('browser').then(function(browserLogs) {
browserLogs.forEach(function(log){
if (log.level.value > 900) {
// it's an error log
console.log('Browser console error!');
console.log(log.message);
}
});
});
});
应该触发异常的操作是在describe块的最后一个'it'语句中完成的。 在操作结束后,没有捕获到异常(来自控制台的其他消息),我注意到如果我在提到的'it'块之后添加一个'it'块(即使是空的那个也无效)异常被捕获。
at the mentioned 'it' block i do the following:
1. press a link that directs me to the wanted page
2. issue browser.waitForAngular() command
3. perform the operation
attached my conf file configurations:
framework: 'jasmine2',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['todo-spec.js'],
rootElement: '.keypressEvents.ng-scope',
allScriptsTimeout: 300000,
jasmineNodeOpts: {
onComplete: null,
isVerbose: false,
showColors: true,
includeStackTrace: true
},
onPrepare: function(){
jasmine.getEnv().addReporter(
new HtmlScreenshotReporter({
dest: '/protractor test/project/test/screenshots',
filename: 'my-report.html',
reportOnlyFailedSpecs: false,
captureOnlyFailedSpecs: true,
showQuickLinks: true
})
);
所以我的问题是为什么在最后一个'it'块上进行操作时没有抓住异常,我该怎么办才能抓住它。