检查元素属性的存在 - 量角器

时间:2015-04-24 08:41:58

标签: angularjs protractor

我对量角器和angularJS相当新,所以请帮助我。选择dayReport元素后,将设置class='active'属性,但如果未选择该元素,则会完全删除该属性。

我想确保在选择其他元素时,dayReport没有class='active'属性,尽管元素本身仍然存在。

我试过这个:expect(dayReport.getAttribute('class').isPresent()).toBe(false);以及其他一些想法,但我似乎并没有让它发挥作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

对于正在阅读此内容且需要明确答案的人,@ 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);

答案 1 :(得分:1)

我有同样的问题,请尝试以下代码: 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);