Angularjs 检查是否存在元素';s属性量角器
我对量角器和angularJS相当陌生,所以请帮我解决这个问题。当选择了Angularjs 检查是否存在元素';s属性量角器,angularjs,protractor,Angularjs,Protractor,我对量角器和angularJS相当陌生,所以请帮我解决这个问题。当选择了dayReport元素时,将设置class='active'属性,但当未选择该元素时,将完全删除该属性 我想确保当选择另一个元素时,dayReport没有class='active'属性,尽管元素本身仍然存在 我尝试了以下方法:expect(dayReport.getAttribute('class').isPresent()).toBe(false)和其他一些想法,但我似乎无法实现。有什么想法吗?我也有同样的问题,请尝试以
dayReport
元素时,将设置class='active'
属性,但当未选择该元素时,将完全删除该属性
我想确保当选择另一个元素时,dayReport
没有class='active'
属性,尽管元素本身仍然存在
我尝试了以下方法:
expect(dayReport.getAttribute('class').isPresent()).toBe(false)
和其他一些想法,但我似乎无法实现。有什么想法吗?我也有同样的问题,请尝试以下代码:
hasClass
将返回一个承诺,该承诺将由expect
语句立即解决,并返回true或false,无论元素是否具有class=“active”
属性
//hasClass will check if the first parameter (the element) has the following the second parameter(the class attribute)
expect(hasClass(dayReport, 'active')).toBe(true);
对于阅读本文并需要明确答案的人来说,@TomNijs的响应非常有用,但是应该创建
hasClass
函数才能使其工作。因此,定义dayReport
元素后的整个代码现在如下所示:
var hasClass = function (element, cls)
{
return element.getAttribute('class').then(function (classes)
{
return classes.split(' ').indexOf(cls) !== -1;
});
};
expect(hasClass(dayReport, 'active')).toBe(false);
还有很多其他元素带有
class=“active”
,但我有兴趣检查这个特定的dayReport
元素。由于该类中有许多其他元素,因此在您的代码中,对于isPresent()
,我将始终得到true
,尽管它对于我的元素不是特别正确的。@LiviuP感谢您的回复,我已经更新了答案,这要求您拥有一个包含所讨论元素的可变dayReport。这回答了你的问题吗?谢谢你的更新。它是有效的,但是对于那些阅读本文的人来说,您必须知道必须在运行expect语句之前创建hasClass
函数。因此,整个代码应该如下所示:var hasClass=function(element,cls){return element.getAttribute('class')。然后(function(classes){return classes.split('').indexOf(cls)!==-1;};};expect(hasClass(dayReport,'active')).toBe(false)@LiviuP您可以发布自己问题的答案,以向其他用户澄清这一点。