如何从控制台日志中检索值并在量角器测试中断言它?



我想要一个函数返回将用于断言的值

请考虑以下功能:

function giveWrittenValue(x) {
var msg;
x.getAttribute('value').then(function (value) {
if (value) {
console.log(value);
var errorMsg = $('.invalid.error-msg');
errorMsg.isPresent().then(function (Present) {
if (Present) {
msg = errorMsg.getText();
}
else {
msg = 'Valid';
}
});
}
else {
msg = 'No input is provided';
}
return msg;
});
}

我的代码在这里:

it('Provider VAT number validation with invalid VAT number',function () {
ProviderVatNumber.sendKeys('IMEZ');
element(by.tagName("body")).click();
body.click();
browser.sleep(3000);
ccc = giveWrittenValue(ProviderVatNumber);
expect(ccc).toBe('Invalid VAT number');  
});

我认为该功能存在一些问题。请任何人在这方面帮助我。

您可以使用以下命令获取控制台日志,然后对其执行断言:

browser.manage().logs().get('browser').then(function(browserLog) {
// Replace the following with an Assert statement
console.log('log: ' + require('util').inspect(browserLog));
// expect(browserLog.length).toEqual(0);
});

https://github.com/angular/protractor/blob/master/docs/faq.md#how-can-i-get-hold-of-the-browsers-console

使用量角器检查浏览器控制台中没有错误

方法如下:

browser.manage().logs().get('browser').then(function(consoleLogs) {
// consoleLogs is an array of objects with level and message fields
// for example in the level property you can also check if it's an error through level.value > 900
});

但问题是:你为什么要这样做?测试控制台中显示的内容实际上是一种非常不寻常的做法(尤其是在 e2e 测试中(。 E2E 测试不应该测试这些东西。

p.s. 还请记住,chrome 提供了可用于直接测试日志的assert方法:

console.assert(1 > 2, {"message":"1 it's not greater than 2"});

相关内容

  • 没有找到相关文章

最新更新