在验证元素是否存在时如何考虑 ng-if
How to account for ng-if when verifying if an element is present?
我的页面上有一个div,有时被ng-if隐藏。我想设计一个测试,只在应该存在时才检查元素是否存在。如果测试失败,ng-if 会从 DOM 中完全删除该元素。
我试图在量角器中编写一个 if 语句,该语句评估了我的 ng-if 正在评估的相同内容,然后只有在该值评估为 true 时才期望一个值,但看起来量角器不知道非 dom 元素,这是有道理的,但让我有点困惑该怎么做。 有什么想法吗?
有.isPresent()
方法可以检查 DOM 中是否存在元素:
expect(elm.isPresent()).toBe(false);
您还可以使用 .evaluate()
来评估ng-if
值:
expect(elm.evaluate("ng_if_value")).toBe(false);
对于此解决方案,我们需要首先检查元素是否存在
<div id="status" ng-if="data.isDeleted">
<span id="delete_status"> Deleted </span>
</div>
如果data.isDelete是真的,那么我们确实期望进一步
var statusId= element(by.id('status'));
statusId.isPresent().then(function (present){
if(present){
expect(statusId.evaluate("data.isDeleted")).toBeTruthy();
expect(statusId.element(by.id("delete_status")).getText()).toContain("Deleted");
}
});
相关文章:
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 在 ng-if 编译后访问指令中的 DOM 元素
- 通过ng-if设置隐藏文本框的值
- AngularJS ng-if指令在移除元素之前,即使条件为false,也会短暂呈现
- 使用 ng-if 时 ng 类的标记行为
- 为什么更改范围获胜'不能在ng if内部工作,而是通过函数调用AngularJS
- Angular2 ng if有什么问题
- 为什么myForm$提交的不适用于ng消息,但适用于ng if
- ng if不验证函数
- 将默认选项添加到ng-if
- 通过使用ng if更新ng repeat加载程序
- ng-if 连续执行方法
- 如何在使用$http缓存时重新触发ng-if/ng显示动画
- 从指令中向元素添加ng-if属性
- angularjs ng if中的无限循环
- Delete with ng-if?
- ng-if中的日期时间比较
- Angular isState-如何在ng if内部进行比较
- 在验证元素是否存在时如何考虑 ng-if