在我的脚本中,我需要包含if-else条件,以验证期望的= actual.act。如果它们不匹配,则应转到else块并显示“ StepFailed”。但是,始终执行if块和o / p是“已通过步骤”,尽管预期≠Actual。以下是我的代码:
var expected = ['Select training program using Index', 'Selenium','A','UFT/QTP','Loadrunner'];
var els = element.all(by.xpath("//select[@id='dropdown1']/option"));
for (var i = 0; i < expected.length; ++i) {
if(expect(els.get(i).getText()).to.eventually.equals(expected[i])){
console.log('' +'Steppassed'+ '');
}else{
console.log('' +'Stepfailed'+ '');
}
});
下拉值包括:“使用索引选择培训计划”,“硒”, 'Appium','UFT / QTP','Loadrunner'。如果您会观察到,我给了'A'而不是'Appium',因此该步骤应该会失败,但是不会发生。
请建议我如何解决此问题。谢谢
答案 0 :(得分:1)
首先,如果要检查条件值,则无需断言
您可以做这样的事情-
var expected = ['Select training program using Index', 'Selenium',
'A','UFT/QTP','Loadrunner'];
var els = element.all(by.xpath("//select[@id='dropdown1']/option"));
for (var i = 0; i < expected.length; ++i) {
els.get(i).getText().then((text) => {
if(text === expected[i] ) {
console.log('' +'Steppassed'+ '');
} else {
console.log('' +'Stepfailed'+ '');
}
});
}
您还可以使用async / await语法来更好地处理Promise和Promise的可读性!