量角器是否带有期望(条件)

时间:2019-01-22 06:27:41

标签: typescript npm protractor cucumber

在我的脚本中,我需要包含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',因此该步骤应该会失败,但是不会发生。

请建议我如何解决此问题。谢谢

1 个答案:

答案 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的可读性!