在我的应用程序中,我有一个控制器,其范围有一个模型,用于确定我视图中的条件。很标准。
控制器的
$scope.shouldShow = false;
$scope.seeCoal = true;
视图的
<div ng-controller="SomeController" ng-if="shouldShow">
<span id="coal" ng-show="seeCoal"></span>
</div>
足够公平。当我将此shouldShow
更改为真实的东西时,此div将呈现。
量角器如何解释这个并且它包含标记?如果我的测试不将shouldShow
模型设置为true,那么#coal
会认为element.isPresent()
元素是否存在?
另外,如果(在我的测试中)我不将shouldShow
设置为truthy(保持为假),并将seeCoal
设置为false - 我是否能够遍历到#coal
以确认ng-hide
类是否存在,即使它的父级具有评估为false的ng-if
条件?
在我尝试这项工作的项目中,我有太多的不确定因素,我无法确定在这些情况下量角器应该如何工作。
答案 0 :(得分:5)
Angular&#39; ng-if
将从DOM中删除受影响的元素。因此,它们及其子元素将不会以任何形式显示给量角器。如果shouldShow
为假,则“量角器”根本不会显示“煤炭”范围。
ng-show
会在DOM中留下一个元素,但会使其不可见。请参阅what is the difference between ng-if and ng-show/ng-hide。
量角器定位器应该能够找到ng-show
- 隐藏元素。其承诺的isDisplayed()
方法应该承诺返回false。见How to use protractor to check if an element is visible?