Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 检查是否存在元素';s属性量角器_Angularjs_Protractor - Fatal编程技术网

Angularjs 检查是否存在元素';s属性量角器

Angularjs 检查是否存在元素';s属性量角器,angularjs,protractor,Angularjs,Protractor,我对量角器和angularJS相当陌生,所以请帮我解决这个问题。当选择了dayReport元素时,将设置class='active'属性,但当未选择该元素时,将完全删除该属性 我想确保当选择另一个元素时,dayReport没有class='active'属性,尽管元素本身仍然存在 我尝试了以下方法:expect(dayReport.getAttribute('class').isPresent()).toBe(false)和其他一些想法,但我似乎无法实现。有什么想法吗?我也有同样的问题,请尝试以

我对量角器和angularJS相当陌生,所以请帮我解决这个问题。当选择了
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您可以发布自己问题的答案,以向其他用户澄清这一点。