【问题标题】:Protractor check console for errors after action量角器在操作后检查控制台是否有错误
【发布时间】:2015-11-18 03:33:28
【问题描述】:

在我的测试中,我需要在单击按钮后检查控制台中是否有错误。但是我得到的唯一错误来自登录页面,然后是页面加载时。但是单击按钮后什么也没有,我知道发生了错误。如果没有错误,就会有日志。我的功能似乎也没有捕捉到这些。这很令人沮丧。这是我的代码。 (我的config.js 文件中有登录代码。)

function checkConsoleErrors() {
  browser.manage().logs().get('browser').then(function (browserLog) {
    if (browserLog.length) {
      browserLog.forEach(function(log){
        var error = log.level.value > 900;
        if(error) {
          console.error('ERROR: ', log.message);
          if (log.timestamp > timestamp) { 
            expect(error).toBeFalsy(); //only check for errors after the button click
          }
        }
      });
    }
  });
}

describe('Errors', function() {
  afterEach(function() {
    checkConsoleErrors();
  });
  it('should have no errors', function() {
    //code here
    btn.click();
    timestamp = moment().valueOf(); //capture the time the button was clicked
    browser.sleep(10000); //wait
  });
});

我错过了什么吗?有没有其他/更好的方法来做到这一点?

【问题讨论】:

  • 从这里尝试@alecxe 的答案-stackoverflow.com/questions/27415507/…
  • 我看不出从afterEach 更改为afterAll 会有什么不同的效果
  • 您是否尝试过使用量角器内置的控制台插件?谢谢。
  • @alecxe 是的,我有,我帮助不大。当出现错误时它会通过,即使将 failOnWarning 和 failOnError 标记为 true

标签: javascript angularjs protractor


【解决方案1】:

如果您只想在按钮点击事件之后检查错误,那么您可以在点击事件的承诺中编写checkConsoleErrors() 函数而不是afterEach()。方法如下 -

btn.click().then(function(){
    timestamp = moment().valueOf();
    browser.sleep(10000);
    checkConsoleErrors();
});

浏览器返回给控制台的error log level 值通常是800 (用于信息)900 (用于警告),因此您的代码不会'在检查900 以上的值时不打印任何内容。高于 900 的级别是在发生致命错误时显示的严重消息(例如,由于包问题、无效路径等而停止执行)。要查看您的执行创建的错误,请调整级别>=900 以显示所需的消息。希望这会有所帮助。

【讨论】:

  • 这似乎可行。但我认为它只是网站很奇怪。 :/我也忘了提到在检查非错误时我确实重写了它,所以它显示了所有消息。但除了警告和严厉之外,别无他法。它不检查常规的console.logs 吗?
  • 除了警告和信息之外,你没有别的意思。您的控制台错误是来自浏览器的警告。执行停止时会发生严重错误。我相信在您明确指定之前,它不会检查常规的console.log。浏览器在 selenium/protractor 发送给它的每个命令后返回日志。外部报告器可以帮助您将每个测试的错误打印到控制台。这是一个 - Jasmine-Spec-Reporter
  • 我明白了。我也有一个记者在使用。
猜你喜欢
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
相关资源
最近更新 更多