在Chrome中执行时,量角器会在解析承诺时遇到问题

时间:2017-09-16 18:56:41

标签: google-chrome promise protractor

我的量角器测试昨天在Chrome浏览器上运行得非常好。 今天,它开始在我解决承诺的过程中始终失败。在进一步调试时,我发现如果我评论了这个promise语句,那么它将挂在下一个promise promise语句中。

昨天和今天之间的量角器脚本没有变化。开发人员在测试的Angular应用程序中进行了一些更改,但不是主要的。

任何人都可以帮我指出这里可能出现的问题吗?

以下是代码段。它挂在promise解析语句template.getTemplatesCount()。然后: -

mainMenu.clickTemplatesMenuOption();

templatePage.getTemplatesCount().then(count => {
  console.log("Count of template card is:-"+count.toString());
  templateCountBeforeInsert = count;

});

templatePage.openCreateTemplatePanel();
createTemplatePage.createTemplateWithoutDocument(templateName);

我的量角器conf.json看起来像这样: -

 exports.config = {
 allScriptsTimeout: 30000000,
 specs: [
 './e2e/TestPlan/*.ts'
 ],
 capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://10.37.1.86:81/',
getPageTimeout: 120000,
framework: 'jasmine2',
jasmineNodeOpts: {
 showColors: true,
 defaultTimeoutInterval: 120000,
 print: function () { }
 }

以下是我使用的工具版本: - 量角器: - 5.1.2 ChromeDriver: - `2.32 Chrome浏览器: - 61.x

2 个答案:

答案 0 :(得分:0)

你应该将一个函数传递给你的.then()块,它应该是这样的:

templatePage.getTemplatesCount().then((count) => {
    console.log("Count of template card is:-"+count.toString());
    templateCountBeforeInsert = count;
});

答案 1 :(得分:0)

一种简单的方法是添加catch(),如下所示:

templatePage.getTemplatesCount().then(count => {
  console.log("Count of template card is:-"+count.toString());
  templateCountBeforeInsert = count;
})
.catch(function(err){
  console.log('getTemplatesCount error: ' + err);
});

如果您收到错误日志,请检查里面的getTemplatesCount()。