我的页面上有一个div,有时会被ng-hidden隐藏。我想设计一个测试,检查元素是否仅存在时才存在。 ng-if如果测试失败,则从DOM中完全删除该元素。
我尝试在量角器中编写一个if语句来评估我的ng-if正在评估的相同的东西,然后只有在评估为true时才期望值,但看起来像量角器不知道非dom元素,这是有道理的,但让我有点难过该做什么。有什么想法吗?
答案 0 :(得分:0)
有.isPresent()
方法检查DOM中是否存在元素:
expect(elm.isPresent()).toBe(false);
您还可以使用.evaluate()
来评估ng-if
值:
expect(elm.evaluate("ng_if_value")).toBe(false);
答案 1 :(得分:0)
对于这个解决方案,我们需要首先检查,元素是否存在
<div id="status" ng-if="data.isDeleted">
<span id="delete_status"> Deleted </span>
</div>
如果data.isDeleted为真,那么我们预期会进一步
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");
}
});