量角器ng-if条件和元素可用性

时间:2017-03-14 16:52:55

标签: angularjs protractor angular-ng-if evaluate

我想检查元素是否显示取决于ng-if条件,

<div id="discount_percent" ng-if="data.isDiscount">  
     <div id="dis_available"> Discount: {{data.discount}} % </div> 
</div> 

我想检查data.isDiscount is true是否div "discount_percent"&amp;应显示dis_available

  

注意: div&#34; discount_percent&#34;和&#34; dis_available&#34;如果data.isDiscount为false,则不会出现在DOM中。

我做了以下方式,但我对我的解决方案并不完全满意。

var discountPercentId = element(by.id('discount_percent'));
discountPercentId.isPresent().then(function (present){
   if(present){
      expect(discountPercentId.evaluate("data.isDiscount")).toBeTruthy();
      expect(discountPercentId.element(by.id("dis_available")).isDisplayed()).toBeTruthy();
   }
}); 

有更好的方法吗?如果条件为真,则检查其可用性!

1 个答案:

答案 0 :(得分:2)

试试这个:

var elem = element(by.css('[ng-if="data.isDiscount"]'));
elem.isPresent().then(function(fnct){
            if(fnct){
             //do whatever
             }
           else{
            //do something else
             }
        });

另外,我不确定,但您可能想先获取data.IsDiscount的值。您可以使用以下函数获取此值:

elem.getAttribute('value').then(function(value) { 
                                    //do something with the value
                                });