量角器 if else with expect(condition)

Protractor if else with expect(condition)

在我的脚本中,我需要包含 if-else 条件来验证 expected=actual.If 它们是否不匹配它应该转到 else 块并打印 "StepFailed"。但是,总是它执行 if 块并且 o/p 是 "step passed" 尽管预期≠Actual.Below 是我的代码:

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'+ '');
     }
});

下拉值是:'Select training program using Index'、'Selenium'、 'Appium'、'UFT/QTP'、'Loadrunner'。如果你观察到我给出的是 'A' 而不是“Appium”,因此该步骤应该会失败,但并没有发生。

请告诉我这怎么可能是你resolved.Thank。

首先,如果您正在检查条件值,则无需断言

你可以这样做 -

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 语法来更好地处理和提高承诺的可读性!