我想检查元素是否显示取决于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();
}
});
有更好的方法吗?如果条件为真,则检查其可用性!
答案 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
});